aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-14 15:54:15 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-11-14 15:54:15 -0500
commit4d98d4bcd43c026ee7a74208dfc68e582bdfa122 (patch)
tree405e541018308cb7c1fd8594987f20696aaad301 /src
parentc21d39f35ed774dc7f2405d79acbc21086ee2ef1 (diff)
Update display logs and c files
Diffstat (limited to 'src')
-rw-r--r--src/Specific/solinas32_2e384m317_18limbs/femul.c134
-rw-r--r--src/Specific/solinas32_2e384m317_18limbs/femulDisplay.log84
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/femul.c134
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/femulDisplay.log84
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/fesquare.c116
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/fesquareDisplay.log84
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e468m17_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/feadd.c69
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/femul.c162
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/femulDisplay.log100
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/fesquare.c140
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/fesquareDisplay.log100
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/fesub.c69
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/freeze.c114
-rw-r--r--src/Specific/solinas32_2e511m187_22limbs/freezeDisplay.log74
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/feadd.c72
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/fesquare.c146
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/fesquareDisplay.log104
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/fesub.c72
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/freeze.c119
-rw-r--r--src/Specific/solinas32_2e511m187_23limbs/freezeDisplay.log77
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/feadd.c72
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/fesquare.c146
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/fesquareDisplay.log104
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/fesub.c72
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/freeze.c119
-rw-r--r--src/Specific/solinas32_2e511m481_23limbs/freezeDisplay.log77
-rw-r--r--src/Specific/solinas32_2e511m481_24limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m481_24limbs/fesquareDisplay.log108
-rw-r--r--src/Specific/solinas32_2e511m481_24limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e511m481_24limbs/freeze.c124
-rw-r--r--src/Specific/solinas32_2e511m481_24limbs/freezeDisplay.log80
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/feadd.c75
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/fesquare.c152
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/fesquareDisplay.log108
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/fesub.c75
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/freeze.c124
-rw-r--r--src/Specific/solinas32_2e512m569_24limbs/freezeDisplay.log80
-rw-r--r--src/Specific/solinas32_2e512m569_25limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e512m569_25limbs/fesquareDisplay.log112
-rw-r--r--src/Specific/solinas32_2e512m569_25limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e512m569_25limbs/freezeDisplay.log83
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/feadd.c63
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/femul.c148
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/femulDisplay.log92
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/fesquare.c128
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/fesquareDisplay.log92
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/fesub.c63
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/freeze.c104
-rw-r--r--src/Specific/solinas32_2e521m1_20limbs/freezeDisplay.log68
65 files changed, 4905 insertions, 0 deletions
diff --git a/src/Specific/solinas32_2e384m317_18limbs/femul.c b/src/Specific/solinas32_2e384m317_18limbs/femul.c
new file mode 100644
index 000000000..29a29e7f6
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_18limbs/femul.c
@@ -0,0 +1,134 @@
+static void femul(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ { uint64_t x72 = (((uint64_t)x5 * x70) + ((0x2 * ((uint64_t)x7 * x71)) + (((uint64_t)x9 * x69) + (((uint64_t)x11 * x67) + ((0x2 * ((uint64_t)x13 * x65)) + (((uint64_t)x15 * x63) + (((uint64_t)x17 * x61) + ((0x2 * ((uint64_t)x19 * x59)) + (((uint64_t)x21 * x57) + (((uint64_t)x23 * x55) + ((0x2 * ((uint64_t)x25 * x53)) + (((uint64_t)x27 * x51) + (((uint64_t)x29 * x49) + ((0x2 * ((uint64_t)x31 * x47)) + (((uint64_t)x33 * x45) + (((uint64_t)x35 * x43) + ((0x2 * ((uint64_t)x37 * x41)) + ((uint64_t)x36 * x39))))))))))))))))));
+ { uint64_t x73 = ((((uint64_t)x5 * x71) + (((uint64_t)x7 * x69) + (((uint64_t)x9 * x67) + (((uint64_t)x11 * x65) + (((uint64_t)x13 * x63) + (((uint64_t)x15 * x61) + (((uint64_t)x17 * x59) + (((uint64_t)x19 * x57) + (((uint64_t)x21 * x55) + (((uint64_t)x23 * x53) + (((uint64_t)x25 * x51) + (((uint64_t)x27 * x49) + (((uint64_t)x29 * x47) + (((uint64_t)x31 * x45) + (((uint64_t)x33 * x43) + (((uint64_t)x35 * x41) + ((uint64_t)x37 * x39))))))))))))))))) + (0x13d * ((uint64_t)x36 * x70)));
+ { uint64_t x74 = ((((uint64_t)x5 * x69) + ((0x2 * ((uint64_t)x7 * x67)) + ((0x2 * ((uint64_t)x9 * x65)) + (((uint64_t)x11 * x63) + ((0x2 * ((uint64_t)x13 * x61)) + ((0x2 * ((uint64_t)x15 * x59)) + (((uint64_t)x17 * x57) + ((0x2 * ((uint64_t)x19 * x55)) + ((0x2 * ((uint64_t)x21 * x53)) + (((uint64_t)x23 * x51) + ((0x2 * ((uint64_t)x25 * x49)) + ((0x2 * ((uint64_t)x27 * x47)) + (((uint64_t)x29 * x45) + ((0x2 * ((uint64_t)x31 * x43)) + ((0x2 * ((uint64_t)x33 * x41)) + ((uint64_t)x35 * x39)))))))))))))))) + (0x13d * ((0x2 * ((uint64_t)x37 * x70)) + (0x2 * ((uint64_t)x36 * x71)))));
+ { uint64_t x75 = ((((uint64_t)x5 * x67) + ((0x2 * ((uint64_t)x7 * x65)) + (((uint64_t)x9 * x63) + (((uint64_t)x11 * x61) + ((0x2 * ((uint64_t)x13 * x59)) + (((uint64_t)x15 * x57) + (((uint64_t)x17 * x55) + ((0x2 * ((uint64_t)x19 * x53)) + (((uint64_t)x21 * x51) + (((uint64_t)x23 * x49) + ((0x2 * ((uint64_t)x25 * x47)) + (((uint64_t)x27 * x45) + (((uint64_t)x29 * x43) + ((0x2 * ((uint64_t)x31 * x41)) + ((uint64_t)x33 * x39))))))))))))))) + (0x13d * (((uint64_t)x35 * x70) + ((0x2 * ((uint64_t)x37 * x71)) + ((uint64_t)x36 * x69)))));
+ { uint64_t x76 = ((((uint64_t)x5 * x65) + (((uint64_t)x7 * x63) + (((uint64_t)x9 * x61) + (((uint64_t)x11 * x59) + (((uint64_t)x13 * x57) + (((uint64_t)x15 * x55) + (((uint64_t)x17 * x53) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + (((uint64_t)x23 * x47) + (((uint64_t)x25 * x45) + (((uint64_t)x27 * x43) + (((uint64_t)x29 * x41) + ((uint64_t)x31 * x39)))))))))))))) + (0x13d * (((uint64_t)x33 * x70) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + ((uint64_t)x36 * x67))))));
+ { uint64_t x77 = ((((uint64_t)x5 * x63) + ((0x2 * ((uint64_t)x7 * x61)) + ((0x2 * ((uint64_t)x9 * x59)) + (((uint64_t)x11 * x57) + ((0x2 * ((uint64_t)x13 * x55)) + ((0x2 * ((uint64_t)x15 * x53)) + (((uint64_t)x17 * x51) + ((0x2 * ((uint64_t)x19 * x49)) + ((0x2 * ((uint64_t)x21 * x47)) + (((uint64_t)x23 * x45) + ((0x2 * ((uint64_t)x25 * x43)) + ((0x2 * ((uint64_t)x27 * x41)) + ((uint64_t)x29 * x39))))))))))))) + (0x13d * ((0x2 * ((uint64_t)x31 * x70)) + ((0x2 * ((uint64_t)x33 * x71)) + (((uint64_t)x35 * x69) + ((0x2 * ((uint64_t)x37 * x67)) + (0x2 * ((uint64_t)x36 * x65))))))));
+ { uint64_t x78 = ((((uint64_t)x5 * x61) + ((0x2 * ((uint64_t)x7 * x59)) + (((uint64_t)x9 * x57) + (((uint64_t)x11 * x55) + ((0x2 * ((uint64_t)x13 * x53)) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + ((0x2 * ((uint64_t)x19 * x47)) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + ((0x2 * ((uint64_t)x25 * x41)) + ((uint64_t)x27 * x39)))))))))))) + (0x13d * (((uint64_t)x29 * x70) + ((0x2 * ((uint64_t)x31 * x71)) + (((uint64_t)x33 * x69) + (((uint64_t)x35 * x67) + ((0x2 * ((uint64_t)x37 * x65)) + ((uint64_t)x36 * x63))))))));
+ { uint64_t x79 = ((((uint64_t)x5 * x59) + (((uint64_t)x7 * x57) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + (((uint64_t)x17 * x47) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + (((uint64_t)x23 * x41) + ((uint64_t)x25 * x39))))))))))) + (0x13d * (((uint64_t)x27 * x70) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + (((uint64_t)x33 * x67) + (((uint64_t)x35 * x65) + (((uint64_t)x37 * x63) + ((uint64_t)x36 * x61)))))))));
+ { uint64_t x80 = ((((uint64_t)x5 * x57) + ((0x2 * ((uint64_t)x7 * x55)) + ((0x2 * ((uint64_t)x9 * x53)) + (((uint64_t)x11 * x51) + ((0x2 * ((uint64_t)x13 * x49)) + ((0x2 * ((uint64_t)x15 * x47)) + (((uint64_t)x17 * x45) + ((0x2 * ((uint64_t)x19 * x43)) + ((0x2 * ((uint64_t)x21 * x41)) + ((uint64_t)x23 * x39)))))))))) + (0x13d * ((0x2 * ((uint64_t)x25 * x70)) + ((0x2 * ((uint64_t)x27 * x71)) + (((uint64_t)x29 * x69) + ((0x2 * ((uint64_t)x31 * x67)) + ((0x2 * ((uint64_t)x33 * x65)) + (((uint64_t)x35 * x63) + ((0x2 * ((uint64_t)x37 * x61)) + (0x2 * ((uint64_t)x36 * x59)))))))))));
+ { uint64_t x81 = ((((uint64_t)x5 * x55) + ((0x2 * ((uint64_t)x7 * x53)) + (((uint64_t)x9 * x51) + (((uint64_t)x11 * x49) + ((0x2 * ((uint64_t)x13 * x47)) + (((uint64_t)x15 * x45) + (((uint64_t)x17 * x43) + ((0x2 * ((uint64_t)x19 * x41)) + ((uint64_t)x21 * x39))))))))) + (0x13d * (((uint64_t)x23 * x70) + ((0x2 * ((uint64_t)x25 * x71)) + (((uint64_t)x27 * x69) + (((uint64_t)x29 * x67) + ((0x2 * ((uint64_t)x31 * x65)) + (((uint64_t)x33 * x63) + (((uint64_t)x35 * x61) + ((0x2 * ((uint64_t)x37 * x59)) + ((uint64_t)x36 * x57)))))))))));
+ { uint64_t x82 = ((((uint64_t)x5 * x53) + (((uint64_t)x7 * x51) + (((uint64_t)x9 * x49) + (((uint64_t)x11 * x47) + (((uint64_t)x13 * x45) + (((uint64_t)x15 * x43) + (((uint64_t)x17 * x41) + ((uint64_t)x19 * x39)))))))) + (0x13d * (((uint64_t)x21 * x70) + (((uint64_t)x23 * x71) + (((uint64_t)x25 * x69) + (((uint64_t)x27 * x67) + (((uint64_t)x29 * x65) + (((uint64_t)x31 * x63) + (((uint64_t)x33 * x61) + (((uint64_t)x35 * x59) + (((uint64_t)x37 * x57) + ((uint64_t)x36 * x55))))))))))));
+ { uint64_t x83 = ((((uint64_t)x5 * x51) + ((0x2 * ((uint64_t)x7 * x49)) + ((0x2 * ((uint64_t)x9 * x47)) + (((uint64_t)x11 * x45) + ((0x2 * ((uint64_t)x13 * x43)) + ((0x2 * ((uint64_t)x15 * x41)) + ((uint64_t)x17 * x39))))))) + (0x13d * ((0x2 * ((uint64_t)x19 * x70)) + ((0x2 * ((uint64_t)x21 * x71)) + (((uint64_t)x23 * x69) + ((0x2 * ((uint64_t)x25 * x67)) + ((0x2 * ((uint64_t)x27 * x65)) + (((uint64_t)x29 * x63) + ((0x2 * ((uint64_t)x31 * x61)) + ((0x2 * ((uint64_t)x33 * x59)) + (((uint64_t)x35 * x57) + ((0x2 * ((uint64_t)x37 * x55)) + (0x2 * ((uint64_t)x36 * x53))))))))))))));
+ { uint64_t x84 = ((((uint64_t)x5 * x49) + ((0x2 * ((uint64_t)x7 * x47)) + (((uint64_t)x9 * x45) + (((uint64_t)x11 * x43) + ((0x2 * ((uint64_t)x13 * x41)) + ((uint64_t)x15 * x39)))))) + (0x13d * (((uint64_t)x17 * x70) + ((0x2 * ((uint64_t)x19 * x71)) + (((uint64_t)x21 * x69) + (((uint64_t)x23 * x67) + ((0x2 * ((uint64_t)x25 * x65)) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + ((0x2 * ((uint64_t)x31 * x59)) + (((uint64_t)x33 * x57) + (((uint64_t)x35 * x55) + ((0x2 * ((uint64_t)x37 * x53)) + ((uint64_t)x36 * x51))))))))))))));
+ { uint64_t x85 = ((((uint64_t)x5 * x47) + (((uint64_t)x7 * x45) + (((uint64_t)x9 * x43) + (((uint64_t)x11 * x41) + ((uint64_t)x13 * x39))))) + (0x13d * (((uint64_t)x15 * x70) + (((uint64_t)x17 * x71) + (((uint64_t)x19 * x69) + (((uint64_t)x21 * x67) + (((uint64_t)x23 * x65) + (((uint64_t)x25 * x63) + (((uint64_t)x27 * x61) + (((uint64_t)x29 * x59) + (((uint64_t)x31 * x57) + (((uint64_t)x33 * x55) + (((uint64_t)x35 * x53) + (((uint64_t)x37 * x51) + ((uint64_t)x36 * x49)))))))))))))));
+ { uint64_t x86 = ((((uint64_t)x5 * x45) + ((0x2 * ((uint64_t)x7 * x43)) + ((0x2 * ((uint64_t)x9 * x41)) + ((uint64_t)x11 * x39)))) + (0x13d * ((0x2 * ((uint64_t)x13 * x70)) + ((0x2 * ((uint64_t)x15 * x71)) + (((uint64_t)x17 * x69) + ((0x2 * ((uint64_t)x19 * x67)) + ((0x2 * ((uint64_t)x21 * x65)) + (((uint64_t)x23 * x63) + ((0x2 * ((uint64_t)x25 * x61)) + ((0x2 * ((uint64_t)x27 * x59)) + (((uint64_t)x29 * x57) + ((0x2 * ((uint64_t)x31 * x55)) + ((0x2 * ((uint64_t)x33 * x53)) + (((uint64_t)x35 * x51) + ((0x2 * ((uint64_t)x37 * x49)) + (0x2 * ((uint64_t)x36 * x47)))))))))))))))));
+ { uint64_t x87 = ((((uint64_t)x5 * x43) + ((0x2 * ((uint64_t)x7 * x41)) + ((uint64_t)x9 * x39))) + (0x13d * (((uint64_t)x11 * x70) + ((0x2 * ((uint64_t)x13 * x71)) + (((uint64_t)x15 * x69) + (((uint64_t)x17 * x67) + ((0x2 * ((uint64_t)x19 * x65)) + (((uint64_t)x21 * x63) + (((uint64_t)x23 * x61) + ((0x2 * ((uint64_t)x25 * x59)) + (((uint64_t)x27 * x57) + (((uint64_t)x29 * x55) + ((0x2 * ((uint64_t)x31 * x53)) + (((uint64_t)x33 * x51) + (((uint64_t)x35 * x49) + ((0x2 * ((uint64_t)x37 * x47)) + ((uint64_t)x36 * x45)))))))))))))))));
+ { uint64_t x88 = ((((uint64_t)x5 * x41) + ((uint64_t)x7 * x39)) + (0x13d * (((uint64_t)x9 * x70) + (((uint64_t)x11 * x71) + (((uint64_t)x13 * x69) + (((uint64_t)x15 * x67) + (((uint64_t)x17 * x65) + (((uint64_t)x19 * x63) + (((uint64_t)x21 * x61) + (((uint64_t)x23 * x59) + (((uint64_t)x25 * x57) + (((uint64_t)x27 * x55) + (((uint64_t)x29 * x53) + (((uint64_t)x31 * x51) + (((uint64_t)x33 * x49) + (((uint64_t)x35 * x47) + (((uint64_t)x37 * x45) + ((uint64_t)x36 * x43))))))))))))))))));
+ { uint64_t x89 = (((uint64_t)x5 * x39) + (0x13d * ((0x2 * ((uint64_t)x7 * x70)) + ((0x2 * ((uint64_t)x9 * x71)) + (((uint64_t)x11 * x69) + ((0x2 * ((uint64_t)x13 * x67)) + ((0x2 * ((uint64_t)x15 * x65)) + (((uint64_t)x17 * x63) + ((0x2 * ((uint64_t)x19 * x61)) + ((0x2 * ((uint64_t)x21 * x59)) + (((uint64_t)x23 * x57) + ((0x2 * ((uint64_t)x25 * x55)) + ((0x2 * ((uint64_t)x27 * x53)) + (((uint64_t)x29 * x51) + ((0x2 * ((uint64_t)x31 * x49)) + ((0x2 * ((uint64_t)x33 * x47)) + (((uint64_t)x35 * x45) + ((0x2 * ((uint64_t)x37 * x43)) + (0x2 * ((uint64_t)x36 * x41))))))))))))))))))));
+ { uint64_t x90 = (x89 >> 0x16);
+ { uint32_t x91 = ((uint32_t)x89 & 0x3fffff);
+ { uint64_t x92 = (x90 + x88);
+ { uint64_t x93 = (x92 >> 0x15);
+ { uint32_t x94 = ((uint32_t)x92 & 0x1fffff);
+ { uint64_t x95 = (x93 + x87);
+ { uint64_t x96 = (x95 >> 0x15);
+ { uint32_t x97 = ((uint32_t)x95 & 0x1fffff);
+ { uint64_t x98 = (x96 + x86);
+ { uint64_t x99 = (x98 >> 0x16);
+ { uint32_t x100 = ((uint32_t)x98 & 0x3fffff);
+ { uint64_t x101 = (x99 + x85);
+ { uint64_t x102 = (x101 >> 0x15);
+ { uint32_t x103 = ((uint32_t)x101 & 0x1fffff);
+ { uint64_t x104 = (x102 + x84);
+ { uint64_t x105 = (x104 >> 0x15);
+ { uint32_t x106 = ((uint32_t)x104 & 0x1fffff);
+ { uint64_t x107 = (x105 + x83);
+ { uint64_t x108 = (x107 >> 0x16);
+ { uint32_t x109 = ((uint32_t)x107 & 0x3fffff);
+ { uint64_t x110 = (x108 + x82);
+ { uint64_t x111 = (x110 >> 0x15);
+ { uint32_t x112 = ((uint32_t)x110 & 0x1fffff);
+ { uint64_t x113 = (x111 + x81);
+ { uint64_t x114 = (x113 >> 0x15);
+ { uint32_t x115 = ((uint32_t)x113 & 0x1fffff);
+ { uint64_t x116 = (x114 + x80);
+ { uint64_t x117 = (x116 >> 0x16);
+ { uint32_t x118 = ((uint32_t)x116 & 0x3fffff);
+ { uint64_t x119 = (x117 + x79);
+ { uint64_t x120 = (x119 >> 0x15);
+ { uint32_t x121 = ((uint32_t)x119 & 0x1fffff);
+ { uint64_t x122 = (x120 + x78);
+ { uint64_t x123 = (x122 >> 0x15);
+ { uint32_t x124 = ((uint32_t)x122 & 0x1fffff);
+ { uint64_t x125 = (x123 + x77);
+ { uint64_t x126 = (x125 >> 0x16);
+ { uint32_t x127 = ((uint32_t)x125 & 0x3fffff);
+ { uint64_t x128 = (x126 + x76);
+ { uint64_t x129 = (x128 >> 0x15);
+ { uint32_t x130 = ((uint32_t)x128 & 0x1fffff);
+ { uint64_t x131 = (x129 + x75);
+ { uint64_t x132 = (x131 >> 0x15);
+ { uint32_t x133 = ((uint32_t)x131 & 0x1fffff);
+ { uint64_t x134 = (x132 + x74);
+ { uint64_t x135 = (x134 >> 0x16);
+ { uint32_t x136 = ((uint32_t)x134 & 0x3fffff);
+ { uint64_t x137 = (x135 + x73);
+ { uint64_t x138 = (x137 >> 0x15);
+ { uint32_t x139 = ((uint32_t)x137 & 0x1fffff);
+ { uint64_t x140 = (x138 + x72);
+ { uint32_t x141 = (uint32_t) (x140 >> 0x15);
+ { uint32_t x142 = ((uint32_t)x140 & 0x1fffff);
+ { uint64_t x143 = (x91 + ((uint64_t)0x13d * x141));
+ { uint32_t x144 = (uint32_t) (x143 >> 0x16);
+ { uint32_t x145 = ((uint32_t)x143 & 0x3fffff);
+ { uint32_t x146 = (x144 + x94);
+ { uint32_t x147 = (x146 >> 0x15);
+ { uint32_t x148 = (x146 & 0x1fffff);
+ out[0] = x145;
+ out[1] = x148;
+ out[2] = (x147 + x97);
+ out[3] = x100;
+ out[4] = x103;
+ out[5] = x106;
+ out[6] = x109;
+ out[7] = x112;
+ out[8] = x115;
+ out[9] = x118;
+ out[10] = x121;
+ out[11] = x124;
+ out[12] = x127;
+ out[13] = x130;
+ out[14] = x133;
+ out[15] = x136;
+ out[16] = x139;
+ out[17] = x142;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e384m317_18limbs/femulDisplay.log b/src/Specific/solinas32_2e384m317_18limbs/femulDisplay.log
new file mode 100644
index 000000000..9b4cb94ec
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_18limbs/femulDisplay.log
@@ -0,0 +1,84 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ uint64_t x72 = (((uint64_t)x5 * x70) + ((0x2 * ((uint64_t)x7 * x71)) + (((uint64_t)x9 * x69) + (((uint64_t)x11 * x67) + ((0x2 * ((uint64_t)x13 * x65)) + (((uint64_t)x15 * x63) + (((uint64_t)x17 * x61) + ((0x2 * ((uint64_t)x19 * x59)) + (((uint64_t)x21 * x57) + (((uint64_t)x23 * x55) + ((0x2 * ((uint64_t)x25 * x53)) + (((uint64_t)x27 * x51) + (((uint64_t)x29 * x49) + ((0x2 * ((uint64_t)x31 * x47)) + (((uint64_t)x33 * x45) + (((uint64_t)x35 * x43) + ((0x2 * ((uint64_t)x37 * x41)) + ((uint64_t)x36 * x39))))))))))))))))));
+ uint64_t x73 = ((((uint64_t)x5 * x71) + (((uint64_t)x7 * x69) + (((uint64_t)x9 * x67) + (((uint64_t)x11 * x65) + (((uint64_t)x13 * x63) + (((uint64_t)x15 * x61) + (((uint64_t)x17 * x59) + (((uint64_t)x19 * x57) + (((uint64_t)x21 * x55) + (((uint64_t)x23 * x53) + (((uint64_t)x25 * x51) + (((uint64_t)x27 * x49) + (((uint64_t)x29 * x47) + (((uint64_t)x31 * x45) + (((uint64_t)x33 * x43) + (((uint64_t)x35 * x41) + ((uint64_t)x37 * x39))))))))))))))))) + (0x13d * ((uint64_t)x36 * x70)));
+ uint64_t x74 = ((((uint64_t)x5 * x69) + ((0x2 * ((uint64_t)x7 * x67)) + ((0x2 * ((uint64_t)x9 * x65)) + (((uint64_t)x11 * x63) + ((0x2 * ((uint64_t)x13 * x61)) + ((0x2 * ((uint64_t)x15 * x59)) + (((uint64_t)x17 * x57) + ((0x2 * ((uint64_t)x19 * x55)) + ((0x2 * ((uint64_t)x21 * x53)) + (((uint64_t)x23 * x51) + ((0x2 * ((uint64_t)x25 * x49)) + ((0x2 * ((uint64_t)x27 * x47)) + (((uint64_t)x29 * x45) + ((0x2 * ((uint64_t)x31 * x43)) + ((0x2 * ((uint64_t)x33 * x41)) + ((uint64_t)x35 * x39)))))))))))))))) + (0x13d * ((0x2 * ((uint64_t)x37 * x70)) + (0x2 * ((uint64_t)x36 * x71)))));
+ uint64_t x75 = ((((uint64_t)x5 * x67) + ((0x2 * ((uint64_t)x7 * x65)) + (((uint64_t)x9 * x63) + (((uint64_t)x11 * x61) + ((0x2 * ((uint64_t)x13 * x59)) + (((uint64_t)x15 * x57) + (((uint64_t)x17 * x55) + ((0x2 * ((uint64_t)x19 * x53)) + (((uint64_t)x21 * x51) + (((uint64_t)x23 * x49) + ((0x2 * ((uint64_t)x25 * x47)) + (((uint64_t)x27 * x45) + (((uint64_t)x29 * x43) + ((0x2 * ((uint64_t)x31 * x41)) + ((uint64_t)x33 * x39))))))))))))))) + (0x13d * (((uint64_t)x35 * x70) + ((0x2 * ((uint64_t)x37 * x71)) + ((uint64_t)x36 * x69)))));
+ uint64_t x76 = ((((uint64_t)x5 * x65) + (((uint64_t)x7 * x63) + (((uint64_t)x9 * x61) + (((uint64_t)x11 * x59) + (((uint64_t)x13 * x57) + (((uint64_t)x15 * x55) + (((uint64_t)x17 * x53) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + (((uint64_t)x23 * x47) + (((uint64_t)x25 * x45) + (((uint64_t)x27 * x43) + (((uint64_t)x29 * x41) + ((uint64_t)x31 * x39)))))))))))))) + (0x13d * (((uint64_t)x33 * x70) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + ((uint64_t)x36 * x67))))));
+ uint64_t x77 = ((((uint64_t)x5 * x63) + ((0x2 * ((uint64_t)x7 * x61)) + ((0x2 * ((uint64_t)x9 * x59)) + (((uint64_t)x11 * x57) + ((0x2 * ((uint64_t)x13 * x55)) + ((0x2 * ((uint64_t)x15 * x53)) + (((uint64_t)x17 * x51) + ((0x2 * ((uint64_t)x19 * x49)) + ((0x2 * ((uint64_t)x21 * x47)) + (((uint64_t)x23 * x45) + ((0x2 * ((uint64_t)x25 * x43)) + ((0x2 * ((uint64_t)x27 * x41)) + ((uint64_t)x29 * x39))))))))))))) + (0x13d * ((0x2 * ((uint64_t)x31 * x70)) + ((0x2 * ((uint64_t)x33 * x71)) + (((uint64_t)x35 * x69) + ((0x2 * ((uint64_t)x37 * x67)) + (0x2 * ((uint64_t)x36 * x65))))))));
+ uint64_t x78 = ((((uint64_t)x5 * x61) + ((0x2 * ((uint64_t)x7 * x59)) + (((uint64_t)x9 * x57) + (((uint64_t)x11 * x55) + ((0x2 * ((uint64_t)x13 * x53)) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + ((0x2 * ((uint64_t)x19 * x47)) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + ((0x2 * ((uint64_t)x25 * x41)) + ((uint64_t)x27 * x39)))))))))))) + (0x13d * (((uint64_t)x29 * x70) + ((0x2 * ((uint64_t)x31 * x71)) + (((uint64_t)x33 * x69) + (((uint64_t)x35 * x67) + ((0x2 * ((uint64_t)x37 * x65)) + ((uint64_t)x36 * x63))))))));
+ uint64_t x79 = ((((uint64_t)x5 * x59) + (((uint64_t)x7 * x57) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + (((uint64_t)x17 * x47) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + (((uint64_t)x23 * x41) + ((uint64_t)x25 * x39))))))))))) + (0x13d * (((uint64_t)x27 * x70) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + (((uint64_t)x33 * x67) + (((uint64_t)x35 * x65) + (((uint64_t)x37 * x63) + ((uint64_t)x36 * x61)))))))));
+ uint64_t x80 = ((((uint64_t)x5 * x57) + ((0x2 * ((uint64_t)x7 * x55)) + ((0x2 * ((uint64_t)x9 * x53)) + (((uint64_t)x11 * x51) + ((0x2 * ((uint64_t)x13 * x49)) + ((0x2 * ((uint64_t)x15 * x47)) + (((uint64_t)x17 * x45) + ((0x2 * ((uint64_t)x19 * x43)) + ((0x2 * ((uint64_t)x21 * x41)) + ((uint64_t)x23 * x39)))))))))) + (0x13d * ((0x2 * ((uint64_t)x25 * x70)) + ((0x2 * ((uint64_t)x27 * x71)) + (((uint64_t)x29 * x69) + ((0x2 * ((uint64_t)x31 * x67)) + ((0x2 * ((uint64_t)x33 * x65)) + (((uint64_t)x35 * x63) + ((0x2 * ((uint64_t)x37 * x61)) + (0x2 * ((uint64_t)x36 * x59)))))))))));
+ uint64_t x81 = ((((uint64_t)x5 * x55) + ((0x2 * ((uint64_t)x7 * x53)) + (((uint64_t)x9 * x51) + (((uint64_t)x11 * x49) + ((0x2 * ((uint64_t)x13 * x47)) + (((uint64_t)x15 * x45) + (((uint64_t)x17 * x43) + ((0x2 * ((uint64_t)x19 * x41)) + ((uint64_t)x21 * x39))))))))) + (0x13d * (((uint64_t)x23 * x70) + ((0x2 * ((uint64_t)x25 * x71)) + (((uint64_t)x27 * x69) + (((uint64_t)x29 * x67) + ((0x2 * ((uint64_t)x31 * x65)) + (((uint64_t)x33 * x63) + (((uint64_t)x35 * x61) + ((0x2 * ((uint64_t)x37 * x59)) + ((uint64_t)x36 * x57)))))))))));
+ uint64_t x82 = ((((uint64_t)x5 * x53) + (((uint64_t)x7 * x51) + (((uint64_t)x9 * x49) + (((uint64_t)x11 * x47) + (((uint64_t)x13 * x45) + (((uint64_t)x15 * x43) + (((uint64_t)x17 * x41) + ((uint64_t)x19 * x39)))))))) + (0x13d * (((uint64_t)x21 * x70) + (((uint64_t)x23 * x71) + (((uint64_t)x25 * x69) + (((uint64_t)x27 * x67) + (((uint64_t)x29 * x65) + (((uint64_t)x31 * x63) + (((uint64_t)x33 * x61) + (((uint64_t)x35 * x59) + (((uint64_t)x37 * x57) + ((uint64_t)x36 * x55))))))))))));
+ uint64_t x83 = ((((uint64_t)x5 * x51) + ((0x2 * ((uint64_t)x7 * x49)) + ((0x2 * ((uint64_t)x9 * x47)) + (((uint64_t)x11 * x45) + ((0x2 * ((uint64_t)x13 * x43)) + ((0x2 * ((uint64_t)x15 * x41)) + ((uint64_t)x17 * x39))))))) + (0x13d * ((0x2 * ((uint64_t)x19 * x70)) + ((0x2 * ((uint64_t)x21 * x71)) + (((uint64_t)x23 * x69) + ((0x2 * ((uint64_t)x25 * x67)) + ((0x2 * ((uint64_t)x27 * x65)) + (((uint64_t)x29 * x63) + ((0x2 * ((uint64_t)x31 * x61)) + ((0x2 * ((uint64_t)x33 * x59)) + (((uint64_t)x35 * x57) + ((0x2 * ((uint64_t)x37 * x55)) + (0x2 * ((uint64_t)x36 * x53))))))))))))));
+ uint64_t x84 = ((((uint64_t)x5 * x49) + ((0x2 * ((uint64_t)x7 * x47)) + (((uint64_t)x9 * x45) + (((uint64_t)x11 * x43) + ((0x2 * ((uint64_t)x13 * x41)) + ((uint64_t)x15 * x39)))))) + (0x13d * (((uint64_t)x17 * x70) + ((0x2 * ((uint64_t)x19 * x71)) + (((uint64_t)x21 * x69) + (((uint64_t)x23 * x67) + ((0x2 * ((uint64_t)x25 * x65)) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + ((0x2 * ((uint64_t)x31 * x59)) + (((uint64_t)x33 * x57) + (((uint64_t)x35 * x55) + ((0x2 * ((uint64_t)x37 * x53)) + ((uint64_t)x36 * x51))))))))))))));
+ uint64_t x85 = ((((uint64_t)x5 * x47) + (((uint64_t)x7 * x45) + (((uint64_t)x9 * x43) + (((uint64_t)x11 * x41) + ((uint64_t)x13 * x39))))) + (0x13d * (((uint64_t)x15 * x70) + (((uint64_t)x17 * x71) + (((uint64_t)x19 * x69) + (((uint64_t)x21 * x67) + (((uint64_t)x23 * x65) + (((uint64_t)x25 * x63) + (((uint64_t)x27 * x61) + (((uint64_t)x29 * x59) + (((uint64_t)x31 * x57) + (((uint64_t)x33 * x55) + (((uint64_t)x35 * x53) + (((uint64_t)x37 * x51) + ((uint64_t)x36 * x49)))))))))))))));
+ uint64_t x86 = ((((uint64_t)x5 * x45) + ((0x2 * ((uint64_t)x7 * x43)) + ((0x2 * ((uint64_t)x9 * x41)) + ((uint64_t)x11 * x39)))) + (0x13d * ((0x2 * ((uint64_t)x13 * x70)) + ((0x2 * ((uint64_t)x15 * x71)) + (((uint64_t)x17 * x69) + ((0x2 * ((uint64_t)x19 * x67)) + ((0x2 * ((uint64_t)x21 * x65)) + (((uint64_t)x23 * x63) + ((0x2 * ((uint64_t)x25 * x61)) + ((0x2 * ((uint64_t)x27 * x59)) + (((uint64_t)x29 * x57) + ((0x2 * ((uint64_t)x31 * x55)) + ((0x2 * ((uint64_t)x33 * x53)) + (((uint64_t)x35 * x51) + ((0x2 * ((uint64_t)x37 * x49)) + (0x2 * ((uint64_t)x36 * x47)))))))))))))))));
+ uint64_t x87 = ((((uint64_t)x5 * x43) + ((0x2 * ((uint64_t)x7 * x41)) + ((uint64_t)x9 * x39))) + (0x13d * (((uint64_t)x11 * x70) + ((0x2 * ((uint64_t)x13 * x71)) + (((uint64_t)x15 * x69) + (((uint64_t)x17 * x67) + ((0x2 * ((uint64_t)x19 * x65)) + (((uint64_t)x21 * x63) + (((uint64_t)x23 * x61) + ((0x2 * ((uint64_t)x25 * x59)) + (((uint64_t)x27 * x57) + (((uint64_t)x29 * x55) + ((0x2 * ((uint64_t)x31 * x53)) + (((uint64_t)x33 * x51) + (((uint64_t)x35 * x49) + ((0x2 * ((uint64_t)x37 * x47)) + ((uint64_t)x36 * x45)))))))))))))))));
+ uint64_t x88 = ((((uint64_t)x5 * x41) + ((uint64_t)x7 * x39)) + (0x13d * (((uint64_t)x9 * x70) + (((uint64_t)x11 * x71) + (((uint64_t)x13 * x69) + (((uint64_t)x15 * x67) + (((uint64_t)x17 * x65) + (((uint64_t)x19 * x63) + (((uint64_t)x21 * x61) + (((uint64_t)x23 * x59) + (((uint64_t)x25 * x57) + (((uint64_t)x27 * x55) + (((uint64_t)x29 * x53) + (((uint64_t)x31 * x51) + (((uint64_t)x33 * x49) + (((uint64_t)x35 * x47) + (((uint64_t)x37 * x45) + ((uint64_t)x36 * x43))))))))))))))))));
+ uint64_t x89 = (((uint64_t)x5 * x39) + (0x13d * ((0x2 * ((uint64_t)x7 * x70)) + ((0x2 * ((uint64_t)x9 * x71)) + (((uint64_t)x11 * x69) + ((0x2 * ((uint64_t)x13 * x67)) + ((0x2 * ((uint64_t)x15 * x65)) + (((uint64_t)x17 * x63) + ((0x2 * ((uint64_t)x19 * x61)) + ((0x2 * ((uint64_t)x21 * x59)) + (((uint64_t)x23 * x57) + ((0x2 * ((uint64_t)x25 * x55)) + ((0x2 * ((uint64_t)x27 * x53)) + (((uint64_t)x29 * x51) + ((0x2 * ((uint64_t)x31 * x49)) + ((0x2 * ((uint64_t)x33 * x47)) + (((uint64_t)x35 * x45) + ((0x2 * ((uint64_t)x37 * x43)) + (0x2 * ((uint64_t)x36 * x41))))))))))))))))))));
+ uint64_t x90 = (x89 >> 0x16);
+ uint32_t x91 = ((uint32_t)x89 & 0x3fffff);
+ uint64_t x92 = (x90 + x88);
+ uint64_t x93 = (x92 >> 0x15);
+ uint32_t x94 = ((uint32_t)x92 & 0x1fffff);
+ uint64_t x95 = (x93 + x87);
+ uint64_t x96 = (x95 >> 0x15);
+ uint32_t x97 = ((uint32_t)x95 & 0x1fffff);
+ uint64_t x98 = (x96 + x86);
+ uint64_t x99 = (x98 >> 0x16);
+ uint32_t x100 = ((uint32_t)x98 & 0x3fffff);
+ uint64_t x101 = (x99 + x85);
+ uint64_t x102 = (x101 >> 0x15);
+ uint32_t x103 = ((uint32_t)x101 & 0x1fffff);
+ uint64_t x104 = (x102 + x84);
+ uint64_t x105 = (x104 >> 0x15);
+ uint32_t x106 = ((uint32_t)x104 & 0x1fffff);
+ uint64_t x107 = (x105 + x83);
+ uint64_t x108 = (x107 >> 0x16);
+ uint32_t x109 = ((uint32_t)x107 & 0x3fffff);
+ uint64_t x110 = (x108 + x82);
+ uint64_t x111 = (x110 >> 0x15);
+ uint32_t x112 = ((uint32_t)x110 & 0x1fffff);
+ uint64_t x113 = (x111 + x81);
+ uint64_t x114 = (x113 >> 0x15);
+ uint32_t x115 = ((uint32_t)x113 & 0x1fffff);
+ uint64_t x116 = (x114 + x80);
+ uint64_t x117 = (x116 >> 0x16);
+ uint32_t x118 = ((uint32_t)x116 & 0x3fffff);
+ uint64_t x119 = (x117 + x79);
+ uint64_t x120 = (x119 >> 0x15);
+ uint32_t x121 = ((uint32_t)x119 & 0x1fffff);
+ uint64_t x122 = (x120 + x78);
+ uint64_t x123 = (x122 >> 0x15);
+ uint32_t x124 = ((uint32_t)x122 & 0x1fffff);
+ uint64_t x125 = (x123 + x77);
+ uint64_t x126 = (x125 >> 0x16);
+ uint32_t x127 = ((uint32_t)x125 & 0x3fffff);
+ uint64_t x128 = (x126 + x76);
+ uint64_t x129 = (x128 >> 0x15);
+ uint32_t x130 = ((uint32_t)x128 & 0x1fffff);
+ uint64_t x131 = (x129 + x75);
+ uint64_t x132 = (x131 >> 0x15);
+ uint32_t x133 = ((uint32_t)x131 & 0x1fffff);
+ uint64_t x134 = (x132 + x74);
+ uint64_t x135 = (x134 >> 0x16);
+ uint32_t x136 = ((uint32_t)x134 & 0x3fffff);
+ uint64_t x137 = (x135 + x73);
+ uint64_t x138 = (x137 >> 0x15);
+ uint32_t x139 = ((uint32_t)x137 & 0x1fffff);
+ uint64_t x140 = (x138 + x72);
+ uint32_t x141 = (uint32_t) (x140 >> 0x15);
+ uint32_t x142 = ((uint32_t)x140 & 0x1fffff);
+ uint64_t x143 = (x91 + ((uint64_t)0x13d * x141));
+ uint32_t x144 = (uint32_t) (x143 >> 0x16);
+ uint32_t x145 = ((uint32_t)x143 & 0x3fffff);
+ uint32_t x146 = (x144 + x94);
+ uint32_t x147 = (x146 >> 0x15);
+ uint32_t x148 = (x146 & 0x1fffff);
+ return (Return x142, Return x139, Return x136, Return x133, Return x130, Return x127, Return x124, Return x121, Return x118, Return x115, Return x112, Return x109, Return x106, Return x103, Return x100, (x147 + x97), Return x148, Return x145))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_18limbs/feadd.c b/src/Specific/solinas32_2e468m17_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e468m17_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_18limbs/femul.c b/src/Specific/solinas32_2e468m17_18limbs/femul.c
new file mode 100644
index 000000000..fb91e4e45
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/femul.c
@@ -0,0 +1,134 @@
+static void femul(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ { uint64_t x72 = (((uint64_t)x5 * x70) + (((uint64_t)x7 * x71) + (((uint64_t)x9 * x69) + (((uint64_t)x11 * x67) + (((uint64_t)x13 * x65) + (((uint64_t)x15 * x63) + (((uint64_t)x17 * x61) + (((uint64_t)x19 * x59) + (((uint64_t)x21 * x57) + (((uint64_t)x23 * x55) + (((uint64_t)x25 * x53) + (((uint64_t)x27 * x51) + (((uint64_t)x29 * x49) + (((uint64_t)x31 * x47) + (((uint64_t)x33 * x45) + (((uint64_t)x35 * x43) + (((uint64_t)x37 * x41) + ((uint64_t)x36 * x39))))))))))))))))));
+ { uint64_t x73 = ((((uint64_t)x5 * x71) + (((uint64_t)x7 * x69) + (((uint64_t)x9 * x67) + (((uint64_t)x11 * x65) + (((uint64_t)x13 * x63) + (((uint64_t)x15 * x61) + (((uint64_t)x17 * x59) + (((uint64_t)x19 * x57) + (((uint64_t)x21 * x55) + (((uint64_t)x23 * x53) + (((uint64_t)x25 * x51) + (((uint64_t)x27 * x49) + (((uint64_t)x29 * x47) + (((uint64_t)x31 * x45) + (((uint64_t)x33 * x43) + (((uint64_t)x35 * x41) + ((uint64_t)x37 * x39))))))))))))))))) + (0x11 * ((uint64_t)x36 * x70)));
+ { uint64_t x74 = ((((uint64_t)x5 * x69) + (((uint64_t)x7 * x67) + (((uint64_t)x9 * x65) + (((uint64_t)x11 * x63) + (((uint64_t)x13 * x61) + (((uint64_t)x15 * x59) + (((uint64_t)x17 * x57) + (((uint64_t)x19 * x55) + (((uint64_t)x21 * x53) + (((uint64_t)x23 * x51) + (((uint64_t)x25 * x49) + (((uint64_t)x27 * x47) + (((uint64_t)x29 * x45) + (((uint64_t)x31 * x43) + (((uint64_t)x33 * x41) + ((uint64_t)x35 * x39)))))))))))))))) + (0x11 * (((uint64_t)x37 * x70) + ((uint64_t)x36 * x71))));
+ { uint64_t x75 = ((((uint64_t)x5 * x67) + (((uint64_t)x7 * x65) + (((uint64_t)x9 * x63) + (((uint64_t)x11 * x61) + (((uint64_t)x13 * x59) + (((uint64_t)x15 * x57) + (((uint64_t)x17 * x55) + (((uint64_t)x19 * x53) + (((uint64_t)x21 * x51) + (((uint64_t)x23 * x49) + (((uint64_t)x25 * x47) + (((uint64_t)x27 * x45) + (((uint64_t)x29 * x43) + (((uint64_t)x31 * x41) + ((uint64_t)x33 * x39))))))))))))))) + (0x11 * (((uint64_t)x35 * x70) + (((uint64_t)x37 * x71) + ((uint64_t)x36 * x69)))));
+ { uint64_t x76 = ((((uint64_t)x5 * x65) + (((uint64_t)x7 * x63) + (((uint64_t)x9 * x61) + (((uint64_t)x11 * x59) + (((uint64_t)x13 * x57) + (((uint64_t)x15 * x55) + (((uint64_t)x17 * x53) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + (((uint64_t)x23 * x47) + (((uint64_t)x25 * x45) + (((uint64_t)x27 * x43) + (((uint64_t)x29 * x41) + ((uint64_t)x31 * x39)))))))))))))) + (0x11 * (((uint64_t)x33 * x70) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + ((uint64_t)x36 * x67))))));
+ { uint64_t x77 = ((((uint64_t)x5 * x63) + (((uint64_t)x7 * x61) + (((uint64_t)x9 * x59) + (((uint64_t)x11 * x57) + (((uint64_t)x13 * x55) + (((uint64_t)x15 * x53) + (((uint64_t)x17 * x51) + (((uint64_t)x19 * x49) + (((uint64_t)x21 * x47) + (((uint64_t)x23 * x45) + (((uint64_t)x25 * x43) + (((uint64_t)x27 * x41) + ((uint64_t)x29 * x39))))))))))))) + (0x11 * (((uint64_t)x31 * x70) + (((uint64_t)x33 * x71) + (((uint64_t)x35 * x69) + (((uint64_t)x37 * x67) + ((uint64_t)x36 * x65)))))));
+ { uint64_t x78 = ((((uint64_t)x5 * x61) + (((uint64_t)x7 * x59) + (((uint64_t)x9 * x57) + (((uint64_t)x11 * x55) + (((uint64_t)x13 * x53) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + (((uint64_t)x19 * x47) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + (((uint64_t)x25 * x41) + ((uint64_t)x27 * x39)))))))))))) + (0x11 * (((uint64_t)x29 * x70) + (((uint64_t)x31 * x71) + (((uint64_t)x33 * x69) + (((uint64_t)x35 * x67) + (((uint64_t)x37 * x65) + ((uint64_t)x36 * x63))))))));
+ { uint64_t x79 = ((((uint64_t)x5 * x59) + (((uint64_t)x7 * x57) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + (((uint64_t)x17 * x47) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + (((uint64_t)x23 * x41) + ((uint64_t)x25 * x39))))))))))) + (0x11 * (((uint64_t)x27 * x70) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + (((uint64_t)x33 * x67) + (((uint64_t)x35 * x65) + (((uint64_t)x37 * x63) + ((uint64_t)x36 * x61)))))))));
+ { uint64_t x80 = ((((uint64_t)x5 * x57) + (((uint64_t)x7 * x55) + (((uint64_t)x9 * x53) + (((uint64_t)x11 * x51) + (((uint64_t)x13 * x49) + (((uint64_t)x15 * x47) + (((uint64_t)x17 * x45) + (((uint64_t)x19 * x43) + (((uint64_t)x21 * x41) + ((uint64_t)x23 * x39)))))))))) + (0x11 * (((uint64_t)x25 * x70) + (((uint64_t)x27 * x71) + (((uint64_t)x29 * x69) + (((uint64_t)x31 * x67) + (((uint64_t)x33 * x65) + (((uint64_t)x35 * x63) + (((uint64_t)x37 * x61) + ((uint64_t)x36 * x59))))))))));
+ { uint64_t x81 = ((((uint64_t)x5 * x55) + (((uint64_t)x7 * x53) + (((uint64_t)x9 * x51) + (((uint64_t)x11 * x49) + (((uint64_t)x13 * x47) + (((uint64_t)x15 * x45) + (((uint64_t)x17 * x43) + (((uint64_t)x19 * x41) + ((uint64_t)x21 * x39))))))))) + (0x11 * (((uint64_t)x23 * x70) + (((uint64_t)x25 * x71) + (((uint64_t)x27 * x69) + (((uint64_t)x29 * x67) + (((uint64_t)x31 * x65) + (((uint64_t)x33 * x63) + (((uint64_t)x35 * x61) + (((uint64_t)x37 * x59) + ((uint64_t)x36 * x57)))))))))));
+ { uint64_t x82 = ((((uint64_t)x5 * x53) + (((uint64_t)x7 * x51) + (((uint64_t)x9 * x49) + (((uint64_t)x11 * x47) + (((uint64_t)x13 * x45) + (((uint64_t)x15 * x43) + (((uint64_t)x17 * x41) + ((uint64_t)x19 * x39)))))))) + (0x11 * (((uint64_t)x21 * x70) + (((uint64_t)x23 * x71) + (((uint64_t)x25 * x69) + (((uint64_t)x27 * x67) + (((uint64_t)x29 * x65) + (((uint64_t)x31 * x63) + (((uint64_t)x33 * x61) + (((uint64_t)x35 * x59) + (((uint64_t)x37 * x57) + ((uint64_t)x36 * x55))))))))))));
+ { uint64_t x83 = ((((uint64_t)x5 * x51) + (((uint64_t)x7 * x49) + (((uint64_t)x9 * x47) + (((uint64_t)x11 * x45) + (((uint64_t)x13 * x43) + (((uint64_t)x15 * x41) + ((uint64_t)x17 * x39))))))) + (0x11 * (((uint64_t)x19 * x70) + (((uint64_t)x21 * x71) + (((uint64_t)x23 * x69) + (((uint64_t)x25 * x67) + (((uint64_t)x27 * x65) + (((uint64_t)x29 * x63) + (((uint64_t)x31 * x61) + (((uint64_t)x33 * x59) + (((uint64_t)x35 * x57) + (((uint64_t)x37 * x55) + ((uint64_t)x36 * x53)))))))))))));
+ { uint64_t x84 = ((((uint64_t)x5 * x49) + (((uint64_t)x7 * x47) + (((uint64_t)x9 * x45) + (((uint64_t)x11 * x43) + (((uint64_t)x13 * x41) + ((uint64_t)x15 * x39)))))) + (0x11 * (((uint64_t)x17 * x70) + (((uint64_t)x19 * x71) + (((uint64_t)x21 * x69) + (((uint64_t)x23 * x67) + (((uint64_t)x25 * x65) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + (((uint64_t)x31 * x59) + (((uint64_t)x33 * x57) + (((uint64_t)x35 * x55) + (((uint64_t)x37 * x53) + ((uint64_t)x36 * x51))))))))))))));
+ { uint64_t x85 = ((((uint64_t)x5 * x47) + (((uint64_t)x7 * x45) + (((uint64_t)x9 * x43) + (((uint64_t)x11 * x41) + ((uint64_t)x13 * x39))))) + (0x11 * (((uint64_t)x15 * x70) + (((uint64_t)x17 * x71) + (((uint64_t)x19 * x69) + (((uint64_t)x21 * x67) + (((uint64_t)x23 * x65) + (((uint64_t)x25 * x63) + (((uint64_t)x27 * x61) + (((uint64_t)x29 * x59) + (((uint64_t)x31 * x57) + (((uint64_t)x33 * x55) + (((uint64_t)x35 * x53) + (((uint64_t)x37 * x51) + ((uint64_t)x36 * x49)))))))))))))));
+ { uint64_t x86 = ((((uint64_t)x5 * x45) + (((uint64_t)x7 * x43) + (((uint64_t)x9 * x41) + ((uint64_t)x11 * x39)))) + (0x11 * (((uint64_t)x13 * x70) + (((uint64_t)x15 * x71) + (((uint64_t)x17 * x69) + (((uint64_t)x19 * x67) + (((uint64_t)x21 * x65) + (((uint64_t)x23 * x63) + (((uint64_t)x25 * x61) + (((uint64_t)x27 * x59) + (((uint64_t)x29 * x57) + (((uint64_t)x31 * x55) + (((uint64_t)x33 * x53) + (((uint64_t)x35 * x51) + (((uint64_t)x37 * x49) + ((uint64_t)x36 * x47))))))))))))))));
+ { uint64_t x87 = ((((uint64_t)x5 * x43) + (((uint64_t)x7 * x41) + ((uint64_t)x9 * x39))) + (0x11 * (((uint64_t)x11 * x70) + (((uint64_t)x13 * x71) + (((uint64_t)x15 * x69) + (((uint64_t)x17 * x67) + (((uint64_t)x19 * x65) + (((uint64_t)x21 * x63) + (((uint64_t)x23 * x61) + (((uint64_t)x25 * x59) + (((uint64_t)x27 * x57) + (((uint64_t)x29 * x55) + (((uint64_t)x31 * x53) + (((uint64_t)x33 * x51) + (((uint64_t)x35 * x49) + (((uint64_t)x37 * x47) + ((uint64_t)x36 * x45)))))))))))))))));
+ { uint64_t x88 = ((((uint64_t)x5 * x41) + ((uint64_t)x7 * x39)) + (0x11 * (((uint64_t)x9 * x70) + (((uint64_t)x11 * x71) + (((uint64_t)x13 * x69) + (((uint64_t)x15 * x67) + (((uint64_t)x17 * x65) + (((uint64_t)x19 * x63) + (((uint64_t)x21 * x61) + (((uint64_t)x23 * x59) + (((uint64_t)x25 * x57) + (((uint64_t)x27 * x55) + (((uint64_t)x29 * x53) + (((uint64_t)x31 * x51) + (((uint64_t)x33 * x49) + (((uint64_t)x35 * x47) + (((uint64_t)x37 * x45) + ((uint64_t)x36 * x43))))))))))))))))));
+ { uint64_t x89 = (((uint64_t)x5 * x39) + (0x11 * (((uint64_t)x7 * x70) + (((uint64_t)x9 * x71) + (((uint64_t)x11 * x69) + (((uint64_t)x13 * x67) + (((uint64_t)x15 * x65) + (((uint64_t)x17 * x63) + (((uint64_t)x19 * x61) + (((uint64_t)x21 * x59) + (((uint64_t)x23 * x57) + (((uint64_t)x25 * x55) + (((uint64_t)x27 * x53) + (((uint64_t)x29 * x51) + (((uint64_t)x31 * x49) + (((uint64_t)x33 * x47) + (((uint64_t)x35 * x45) + (((uint64_t)x37 * x43) + ((uint64_t)x36 * x41)))))))))))))))))));
+ { uint64_t x90 = (x89 >> 0x1a);
+ { uint32_t x91 = ((uint32_t)x89 & 0x3ffffff);
+ { uint64_t x92 = (x90 + x88);
+ { uint64_t x93 = (x92 >> 0x1a);
+ { uint32_t x94 = ((uint32_t)x92 & 0x3ffffff);
+ { uint64_t x95 = (x93 + x87);
+ { uint64_t x96 = (x95 >> 0x1a);
+ { uint32_t x97 = ((uint32_t)x95 & 0x3ffffff);
+ { uint64_t x98 = (x96 + x86);
+ { uint64_t x99 = (x98 >> 0x1a);
+ { uint32_t x100 = ((uint32_t)x98 & 0x3ffffff);
+ { uint64_t x101 = (x99 + x85);
+ { uint64_t x102 = (x101 >> 0x1a);
+ { uint32_t x103 = ((uint32_t)x101 & 0x3ffffff);
+ { uint64_t x104 = (x102 + x84);
+ { uint64_t x105 = (x104 >> 0x1a);
+ { uint32_t x106 = ((uint32_t)x104 & 0x3ffffff);
+ { uint64_t x107 = (x105 + x83);
+ { uint64_t x108 = (x107 >> 0x1a);
+ { uint32_t x109 = ((uint32_t)x107 & 0x3ffffff);
+ { uint64_t x110 = (x108 + x82);
+ { uint64_t x111 = (x110 >> 0x1a);
+ { uint32_t x112 = ((uint32_t)x110 & 0x3ffffff);
+ { uint64_t x113 = (x111 + x81);
+ { uint64_t x114 = (x113 >> 0x1a);
+ { uint32_t x115 = ((uint32_t)x113 & 0x3ffffff);
+ { uint64_t x116 = (x114 + x80);
+ { uint64_t x117 = (x116 >> 0x1a);
+ { uint32_t x118 = ((uint32_t)x116 & 0x3ffffff);
+ { uint64_t x119 = (x117 + x79);
+ { uint64_t x120 = (x119 >> 0x1a);
+ { uint32_t x121 = ((uint32_t)x119 & 0x3ffffff);
+ { uint64_t x122 = (x120 + x78);
+ { uint64_t x123 = (x122 >> 0x1a);
+ { uint32_t x124 = ((uint32_t)x122 & 0x3ffffff);
+ { uint64_t x125 = (x123 + x77);
+ { uint64_t x126 = (x125 >> 0x1a);
+ { uint32_t x127 = ((uint32_t)x125 & 0x3ffffff);
+ { uint64_t x128 = (x126 + x76);
+ { uint64_t x129 = (x128 >> 0x1a);
+ { uint32_t x130 = ((uint32_t)x128 & 0x3ffffff);
+ { uint64_t x131 = (x129 + x75);
+ { uint64_t x132 = (x131 >> 0x1a);
+ { uint32_t x133 = ((uint32_t)x131 & 0x3ffffff);
+ { uint64_t x134 = (x132 + x74);
+ { uint64_t x135 = (x134 >> 0x1a);
+ { uint32_t x136 = ((uint32_t)x134 & 0x3ffffff);
+ { uint64_t x137 = (x135 + x73);
+ { uint64_t x138 = (x137 >> 0x1a);
+ { uint32_t x139 = ((uint32_t)x137 & 0x3ffffff);
+ { uint64_t x140 = (x138 + x72);
+ { uint64_t x141 = (x140 >> 0x1a);
+ { uint32_t x142 = ((uint32_t)x140 & 0x3ffffff);
+ { uint64_t x143 = (x91 + (0x11 * x141));
+ { uint32_t x144 = (uint32_t) (x143 >> 0x1a);
+ { uint32_t x145 = ((uint32_t)x143 & 0x3ffffff);
+ { uint32_t x146 = (x144 + x94);
+ { uint32_t x147 = (x146 >> 0x1a);
+ { uint32_t x148 = (x146 & 0x3ffffff);
+ out[0] = x145;
+ out[1] = x148;
+ out[2] = (x147 + x97);
+ out[3] = x100;
+ out[4] = x103;
+ out[5] = x106;
+ out[6] = x109;
+ out[7] = x112;
+ out[8] = x115;
+ out[9] = x118;
+ out[10] = x121;
+ out[11] = x124;
+ out[12] = x127;
+ out[13] = x130;
+ out[14] = x133;
+ out[15] = x136;
+ out[16] = x139;
+ out[17] = x142;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_18limbs/femulDisplay.log b/src/Specific/solinas32_2e468m17_18limbs/femulDisplay.log
new file mode 100644
index 000000000..4785b2fac
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/femulDisplay.log
@@ -0,0 +1,84 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ uint64_t x72 = (((uint64_t)x5 * x70) + (((uint64_t)x7 * x71) + (((uint64_t)x9 * x69) + (((uint64_t)x11 * x67) + (((uint64_t)x13 * x65) + (((uint64_t)x15 * x63) + (((uint64_t)x17 * x61) + (((uint64_t)x19 * x59) + (((uint64_t)x21 * x57) + (((uint64_t)x23 * x55) + (((uint64_t)x25 * x53) + (((uint64_t)x27 * x51) + (((uint64_t)x29 * x49) + (((uint64_t)x31 * x47) + (((uint64_t)x33 * x45) + (((uint64_t)x35 * x43) + (((uint64_t)x37 * x41) + ((uint64_t)x36 * x39))))))))))))))))));
+ uint64_t x73 = ((((uint64_t)x5 * x71) + (((uint64_t)x7 * x69) + (((uint64_t)x9 * x67) + (((uint64_t)x11 * x65) + (((uint64_t)x13 * x63) + (((uint64_t)x15 * x61) + (((uint64_t)x17 * x59) + (((uint64_t)x19 * x57) + (((uint64_t)x21 * x55) + (((uint64_t)x23 * x53) + (((uint64_t)x25 * x51) + (((uint64_t)x27 * x49) + (((uint64_t)x29 * x47) + (((uint64_t)x31 * x45) + (((uint64_t)x33 * x43) + (((uint64_t)x35 * x41) + ((uint64_t)x37 * x39))))))))))))))))) + (0x11 * ((uint64_t)x36 * x70)));
+ uint64_t x74 = ((((uint64_t)x5 * x69) + (((uint64_t)x7 * x67) + (((uint64_t)x9 * x65) + (((uint64_t)x11 * x63) + (((uint64_t)x13 * x61) + (((uint64_t)x15 * x59) + (((uint64_t)x17 * x57) + (((uint64_t)x19 * x55) + (((uint64_t)x21 * x53) + (((uint64_t)x23 * x51) + (((uint64_t)x25 * x49) + (((uint64_t)x27 * x47) + (((uint64_t)x29 * x45) + (((uint64_t)x31 * x43) + (((uint64_t)x33 * x41) + ((uint64_t)x35 * x39)))))))))))))))) + (0x11 * (((uint64_t)x37 * x70) + ((uint64_t)x36 * x71))));
+ uint64_t x75 = ((((uint64_t)x5 * x67) + (((uint64_t)x7 * x65) + (((uint64_t)x9 * x63) + (((uint64_t)x11 * x61) + (((uint64_t)x13 * x59) + (((uint64_t)x15 * x57) + (((uint64_t)x17 * x55) + (((uint64_t)x19 * x53) + (((uint64_t)x21 * x51) + (((uint64_t)x23 * x49) + (((uint64_t)x25 * x47) + (((uint64_t)x27 * x45) + (((uint64_t)x29 * x43) + (((uint64_t)x31 * x41) + ((uint64_t)x33 * x39))))))))))))))) + (0x11 * (((uint64_t)x35 * x70) + (((uint64_t)x37 * x71) + ((uint64_t)x36 * x69)))));
+ uint64_t x76 = ((((uint64_t)x5 * x65) + (((uint64_t)x7 * x63) + (((uint64_t)x9 * x61) + (((uint64_t)x11 * x59) + (((uint64_t)x13 * x57) + (((uint64_t)x15 * x55) + (((uint64_t)x17 * x53) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + (((uint64_t)x23 * x47) + (((uint64_t)x25 * x45) + (((uint64_t)x27 * x43) + (((uint64_t)x29 * x41) + ((uint64_t)x31 * x39)))))))))))))) + (0x11 * (((uint64_t)x33 * x70) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + ((uint64_t)x36 * x67))))));
+ uint64_t x77 = ((((uint64_t)x5 * x63) + (((uint64_t)x7 * x61) + (((uint64_t)x9 * x59) + (((uint64_t)x11 * x57) + (((uint64_t)x13 * x55) + (((uint64_t)x15 * x53) + (((uint64_t)x17 * x51) + (((uint64_t)x19 * x49) + (((uint64_t)x21 * x47) + (((uint64_t)x23 * x45) + (((uint64_t)x25 * x43) + (((uint64_t)x27 * x41) + ((uint64_t)x29 * x39))))))))))))) + (0x11 * (((uint64_t)x31 * x70) + (((uint64_t)x33 * x71) + (((uint64_t)x35 * x69) + (((uint64_t)x37 * x67) + ((uint64_t)x36 * x65)))))));
+ uint64_t x78 = ((((uint64_t)x5 * x61) + (((uint64_t)x7 * x59) + (((uint64_t)x9 * x57) + (((uint64_t)x11 * x55) + (((uint64_t)x13 * x53) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + (((uint64_t)x19 * x47) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + (((uint64_t)x25 * x41) + ((uint64_t)x27 * x39)))))))))))) + (0x11 * (((uint64_t)x29 * x70) + (((uint64_t)x31 * x71) + (((uint64_t)x33 * x69) + (((uint64_t)x35 * x67) + (((uint64_t)x37 * x65) + ((uint64_t)x36 * x63))))))));
+ uint64_t x79 = ((((uint64_t)x5 * x59) + (((uint64_t)x7 * x57) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + (((uint64_t)x17 * x47) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + (((uint64_t)x23 * x41) + ((uint64_t)x25 * x39))))))))))) + (0x11 * (((uint64_t)x27 * x70) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + (((uint64_t)x33 * x67) + (((uint64_t)x35 * x65) + (((uint64_t)x37 * x63) + ((uint64_t)x36 * x61)))))))));
+ uint64_t x80 = ((((uint64_t)x5 * x57) + (((uint64_t)x7 * x55) + (((uint64_t)x9 * x53) + (((uint64_t)x11 * x51) + (((uint64_t)x13 * x49) + (((uint64_t)x15 * x47) + (((uint64_t)x17 * x45) + (((uint64_t)x19 * x43) + (((uint64_t)x21 * x41) + ((uint64_t)x23 * x39)))))))))) + (0x11 * (((uint64_t)x25 * x70) + (((uint64_t)x27 * x71) + (((uint64_t)x29 * x69) + (((uint64_t)x31 * x67) + (((uint64_t)x33 * x65) + (((uint64_t)x35 * x63) + (((uint64_t)x37 * x61) + ((uint64_t)x36 * x59))))))))));
+ uint64_t x81 = ((((uint64_t)x5 * x55) + (((uint64_t)x7 * x53) + (((uint64_t)x9 * x51) + (((uint64_t)x11 * x49) + (((uint64_t)x13 * x47) + (((uint64_t)x15 * x45) + (((uint64_t)x17 * x43) + (((uint64_t)x19 * x41) + ((uint64_t)x21 * x39))))))))) + (0x11 * (((uint64_t)x23 * x70) + (((uint64_t)x25 * x71) + (((uint64_t)x27 * x69) + (((uint64_t)x29 * x67) + (((uint64_t)x31 * x65) + (((uint64_t)x33 * x63) + (((uint64_t)x35 * x61) + (((uint64_t)x37 * x59) + ((uint64_t)x36 * x57)))))))))));
+ uint64_t x82 = ((((uint64_t)x5 * x53) + (((uint64_t)x7 * x51) + (((uint64_t)x9 * x49) + (((uint64_t)x11 * x47) + (((uint64_t)x13 * x45) + (((uint64_t)x15 * x43) + (((uint64_t)x17 * x41) + ((uint64_t)x19 * x39)))))))) + (0x11 * (((uint64_t)x21 * x70) + (((uint64_t)x23 * x71) + (((uint64_t)x25 * x69) + (((uint64_t)x27 * x67) + (((uint64_t)x29 * x65) + (((uint64_t)x31 * x63) + (((uint64_t)x33 * x61) + (((uint64_t)x35 * x59) + (((uint64_t)x37 * x57) + ((uint64_t)x36 * x55))))))))))));
+ uint64_t x83 = ((((uint64_t)x5 * x51) + (((uint64_t)x7 * x49) + (((uint64_t)x9 * x47) + (((uint64_t)x11 * x45) + (((uint64_t)x13 * x43) + (((uint64_t)x15 * x41) + ((uint64_t)x17 * x39))))))) + (0x11 * (((uint64_t)x19 * x70) + (((uint64_t)x21 * x71) + (((uint64_t)x23 * x69) + (((uint64_t)x25 * x67) + (((uint64_t)x27 * x65) + (((uint64_t)x29 * x63) + (((uint64_t)x31 * x61) + (((uint64_t)x33 * x59) + (((uint64_t)x35 * x57) + (((uint64_t)x37 * x55) + ((uint64_t)x36 * x53)))))))))))));
+ uint64_t x84 = ((((uint64_t)x5 * x49) + (((uint64_t)x7 * x47) + (((uint64_t)x9 * x45) + (((uint64_t)x11 * x43) + (((uint64_t)x13 * x41) + ((uint64_t)x15 * x39)))))) + (0x11 * (((uint64_t)x17 * x70) + (((uint64_t)x19 * x71) + (((uint64_t)x21 * x69) + (((uint64_t)x23 * x67) + (((uint64_t)x25 * x65) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + (((uint64_t)x31 * x59) + (((uint64_t)x33 * x57) + (((uint64_t)x35 * x55) + (((uint64_t)x37 * x53) + ((uint64_t)x36 * x51))))))))))))));
+ uint64_t x85 = ((((uint64_t)x5 * x47) + (((uint64_t)x7 * x45) + (((uint64_t)x9 * x43) + (((uint64_t)x11 * x41) + ((uint64_t)x13 * x39))))) + (0x11 * (((uint64_t)x15 * x70) + (((uint64_t)x17 * x71) + (((uint64_t)x19 * x69) + (((uint64_t)x21 * x67) + (((uint64_t)x23 * x65) + (((uint64_t)x25 * x63) + (((uint64_t)x27 * x61) + (((uint64_t)x29 * x59) + (((uint64_t)x31 * x57) + (((uint64_t)x33 * x55) + (((uint64_t)x35 * x53) + (((uint64_t)x37 * x51) + ((uint64_t)x36 * x49)))))))))))))));
+ uint64_t x86 = ((((uint64_t)x5 * x45) + (((uint64_t)x7 * x43) + (((uint64_t)x9 * x41) + ((uint64_t)x11 * x39)))) + (0x11 * (((uint64_t)x13 * x70) + (((uint64_t)x15 * x71) + (((uint64_t)x17 * x69) + (((uint64_t)x19 * x67) + (((uint64_t)x21 * x65) + (((uint64_t)x23 * x63) + (((uint64_t)x25 * x61) + (((uint64_t)x27 * x59) + (((uint64_t)x29 * x57) + (((uint64_t)x31 * x55) + (((uint64_t)x33 * x53) + (((uint64_t)x35 * x51) + (((uint64_t)x37 * x49) + ((uint64_t)x36 * x47))))))))))))))));
+ uint64_t x87 = ((((uint64_t)x5 * x43) + (((uint64_t)x7 * x41) + ((uint64_t)x9 * x39))) + (0x11 * (((uint64_t)x11 * x70) + (((uint64_t)x13 * x71) + (((uint64_t)x15 * x69) + (((uint64_t)x17 * x67) + (((uint64_t)x19 * x65) + (((uint64_t)x21 * x63) + (((uint64_t)x23 * x61) + (((uint64_t)x25 * x59) + (((uint64_t)x27 * x57) + (((uint64_t)x29 * x55) + (((uint64_t)x31 * x53) + (((uint64_t)x33 * x51) + (((uint64_t)x35 * x49) + (((uint64_t)x37 * x47) + ((uint64_t)x36 * x45)))))))))))))))));
+ uint64_t x88 = ((((uint64_t)x5 * x41) + ((uint64_t)x7 * x39)) + (0x11 * (((uint64_t)x9 * x70) + (((uint64_t)x11 * x71) + (((uint64_t)x13 * x69) + (((uint64_t)x15 * x67) + (((uint64_t)x17 * x65) + (((uint64_t)x19 * x63) + (((uint64_t)x21 * x61) + (((uint64_t)x23 * x59) + (((uint64_t)x25 * x57) + (((uint64_t)x27 * x55) + (((uint64_t)x29 * x53) + (((uint64_t)x31 * x51) + (((uint64_t)x33 * x49) + (((uint64_t)x35 * x47) + (((uint64_t)x37 * x45) + ((uint64_t)x36 * x43))))))))))))))))));
+ uint64_t x89 = (((uint64_t)x5 * x39) + (0x11 * (((uint64_t)x7 * x70) + (((uint64_t)x9 * x71) + (((uint64_t)x11 * x69) + (((uint64_t)x13 * x67) + (((uint64_t)x15 * x65) + (((uint64_t)x17 * x63) + (((uint64_t)x19 * x61) + (((uint64_t)x21 * x59) + (((uint64_t)x23 * x57) + (((uint64_t)x25 * x55) + (((uint64_t)x27 * x53) + (((uint64_t)x29 * x51) + (((uint64_t)x31 * x49) + (((uint64_t)x33 * x47) + (((uint64_t)x35 * x45) + (((uint64_t)x37 * x43) + ((uint64_t)x36 * x41)))))))))))))))))));
+ uint64_t x90 = (x89 >> 0x1a);
+ uint32_t x91 = ((uint32_t)x89 & 0x3ffffff);
+ uint64_t x92 = (x90 + x88);
+ uint64_t x93 = (x92 >> 0x1a);
+ uint32_t x94 = ((uint32_t)x92 & 0x3ffffff);
+ uint64_t x95 = (x93 + x87);
+ uint64_t x96 = (x95 >> 0x1a);
+ uint32_t x97 = ((uint32_t)x95 & 0x3ffffff);
+ uint64_t x98 = (x96 + x86);
+ uint64_t x99 = (x98 >> 0x1a);
+ uint32_t x100 = ((uint32_t)x98 & 0x3ffffff);
+ uint64_t x101 = (x99 + x85);
+ uint64_t x102 = (x101 >> 0x1a);
+ uint32_t x103 = ((uint32_t)x101 & 0x3ffffff);
+ uint64_t x104 = (x102 + x84);
+ uint64_t x105 = (x104 >> 0x1a);
+ uint32_t x106 = ((uint32_t)x104 & 0x3ffffff);
+ uint64_t x107 = (x105 + x83);
+ uint64_t x108 = (x107 >> 0x1a);
+ uint32_t x109 = ((uint32_t)x107 & 0x3ffffff);
+ uint64_t x110 = (x108 + x82);
+ uint64_t x111 = (x110 >> 0x1a);
+ uint32_t x112 = ((uint32_t)x110 & 0x3ffffff);
+ uint64_t x113 = (x111 + x81);
+ uint64_t x114 = (x113 >> 0x1a);
+ uint32_t x115 = ((uint32_t)x113 & 0x3ffffff);
+ uint64_t x116 = (x114 + x80);
+ uint64_t x117 = (x116 >> 0x1a);
+ uint32_t x118 = ((uint32_t)x116 & 0x3ffffff);
+ uint64_t x119 = (x117 + x79);
+ uint64_t x120 = (x119 >> 0x1a);
+ uint32_t x121 = ((uint32_t)x119 & 0x3ffffff);
+ uint64_t x122 = (x120 + x78);
+ uint64_t x123 = (x122 >> 0x1a);
+ uint32_t x124 = ((uint32_t)x122 & 0x3ffffff);
+ uint64_t x125 = (x123 + x77);
+ uint64_t x126 = (x125 >> 0x1a);
+ uint32_t x127 = ((uint32_t)x125 & 0x3ffffff);
+ uint64_t x128 = (x126 + x76);
+ uint64_t x129 = (x128 >> 0x1a);
+ uint32_t x130 = ((uint32_t)x128 & 0x3ffffff);
+ uint64_t x131 = (x129 + x75);
+ uint64_t x132 = (x131 >> 0x1a);
+ uint32_t x133 = ((uint32_t)x131 & 0x3ffffff);
+ uint64_t x134 = (x132 + x74);
+ uint64_t x135 = (x134 >> 0x1a);
+ uint32_t x136 = ((uint32_t)x134 & 0x3ffffff);
+ uint64_t x137 = (x135 + x73);
+ uint64_t x138 = (x137 >> 0x1a);
+ uint32_t x139 = ((uint32_t)x137 & 0x3ffffff);
+ uint64_t x140 = (x138 + x72);
+ uint64_t x141 = (x140 >> 0x1a);
+ uint32_t x142 = ((uint32_t)x140 & 0x3ffffff);
+ uint64_t x143 = (x91 + (0x11 * x141));
+ uint32_t x144 = (uint32_t) (x143 >> 0x1a);
+ uint32_t x145 = ((uint32_t)x143 & 0x3ffffff);
+ uint32_t x146 = (x144 + x94);
+ uint32_t x147 = (x146 >> 0x1a);
+ uint32_t x148 = (x146 & 0x3ffffff);
+ return (Return x142, Return x139, Return x136, Return x133, Return x130, Return x127, Return x124, Return x121, Return x118, Return x115, Return x112, Return x109, Return x106, Return x103, Return x100, (x147 + x97), Return x148, Return x145))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_18limbs/fesquare.c b/src/Specific/solinas32_2e468m17_18limbs/fesquare.c
new file mode 100644
index 000000000..d7eb27dd4
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/fesquare.c
@@ -0,0 +1,116 @@
+static void fesquare(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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 x35 = (((uint64_t)x2 * x33) + (((uint64_t)x4 * x34) + (((uint64_t)x6 * x32) + (((uint64_t)x8 * x30) + (((uint64_t)x10 * x28) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + (((uint64_t)x16 * x22) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + (((uint64_t)x22 * x16) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + (((uint64_t)x28 * x10) + (((uint64_t)x30 * x8) + (((uint64_t)x32 * x6) + (((uint64_t)x34 * x4) + ((uint64_t)x33 * x2))))))))))))))))));
+ { uint64_t x36 = ((((uint64_t)x2 * x34) + (((uint64_t)x4 * x32) + (((uint64_t)x6 * x30) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + (((uint64_t)x30 * x6) + (((uint64_t)x32 * x4) + ((uint64_t)x34 * x2))))))))))))))))) + (0x11 * ((uint64_t)x33 * x33)));
+ { uint64_t x37 = ((((uint64_t)x2 * x32) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x32 * x2)))))))))))))))) + (0x11 * (((uint64_t)x34 * x33) + ((uint64_t)x33 * x34))));
+ { uint64_t x38 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x11 * (((uint64_t)x32 * x33) + (((uint64_t)x34 * x34) + ((uint64_t)x33 * x32)))));
+ { uint64_t x39 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((uint64_t)x8 * x22) + (((uint64_t)x10 * x20) + (((uint64_t)x12 * x18) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + (((uint64_t)x18 * x12) + (((uint64_t)x20 * x10) + (((uint64_t)x22 * x8) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x11 * (((uint64_t)x30 * x33) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + ((uint64_t)x33 * x30))))));
+ { uint64_t x40 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + (((uint64_t)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x11 * (((uint64_t)x28 * x33) + (((uint64_t)x30 * x34) + (((uint64_t)x32 * x32) + (((uint64_t)x34 * x30) + ((uint64_t)x33 * x28)))))));
+ { uint64_t x41 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x11 * (((uint64_t)x26 * x33) + (((uint64_t)x28 * x34) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + (((uint64_t)x34 * x28) + ((uint64_t)x33 * x26))))))));
+ { uint64_t x42 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x11 * (((uint64_t)x24 * x33) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + ((uint64_t)x33 * x24)))))))));
+ { uint64_t x43 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x11 * (((uint64_t)x22 * x33) + (((uint64_t)x24 * x34) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + (((uint64_t)x34 * x24) + ((uint64_t)x33 * x22))))))))));
+ { uint64_t x44 = ((((uint64_t)x2 * x18) + (((uint64_t)x4 * x16) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + (((uint64_t)x10 * x10) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + (((uint64_t)x16 * x4) + ((uint64_t)x18 * x2))))))))) + (0x11 * (((uint64_t)x20 * x33) + (((uint64_t)x22 * x34) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + (((uint64_t)x34 * x22) + ((uint64_t)x33 * x20)))))))))));
+ { uint64_t x45 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x11 * (((uint64_t)x18 * x33) + (((uint64_t)x20 * x34) + (((uint64_t)x22 * x32) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (((uint64_t)x32 * x22) + (((uint64_t)x34 * x20) + ((uint64_t)x33 * x18))))))))))));
+ { uint64_t x46 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x11 * (((uint64_t)x16 * x33) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + ((uint64_t)x33 * x16)))))))))))));
+ { uint64_t x47 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x11 * (((uint64_t)x14 * x33) + (((uint64_t)x16 * x34) + (((uint64_t)x18 * x32) + (((uint64_t)x20 * x30) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + (((uint64_t)x30 * x20) + (((uint64_t)x32 * x18) + (((uint64_t)x34 * x16) + ((uint64_t)x33 * x14))))))))))))));
+ { uint64_t x48 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x11 * (((uint64_t)x12 * x33) + (((uint64_t)x14 * x34) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + (((uint64_t)x34 * x14) + ((uint64_t)x33 * x12)))))))))))))));
+ { uint64_t x49 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x11 * (((uint64_t)x10 * x33) + (((uint64_t)x12 * x34) + (((uint64_t)x14 * x32) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + (((uint64_t)x32 * x14) + (((uint64_t)x34 * x12) + ((uint64_t)x33 * x10))))))))))))))));
+ { uint64_t x50 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x11 * (((uint64_t)x8 * x33) + (((uint64_t)x10 * x34) + (((uint64_t)x12 * x32) + (((uint64_t)x14 * x30) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + (((uint64_t)x22 * x22) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + (((uint64_t)x30 * x14) + (((uint64_t)x32 * x12) + (((uint64_t)x34 * x10) + ((uint64_t)x33 * x8)))))))))))))))));
+ { uint64_t x51 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x11 * (((uint64_t)x6 * x33) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + ((uint64_t)x33 * x6))))))))))))))))));
+ { uint64_t x52 = (((uint64_t)x2 * x2) + (0x11 * (((uint64_t)x4 * x33) + (((uint64_t)x6 * x34) + (((uint64_t)x8 * x32) + (((uint64_t)x10 * x30) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + (((uint64_t)x20 * x20) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + (((uint64_t)x30 * x10) + (((uint64_t)x32 * x8) + (((uint64_t)x34 * x6) + ((uint64_t)x33 * x4)))))))))))))))))));
+ { uint64_t x53 = (x52 >> 0x1a);
+ { uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ { uint64_t x55 = (x53 + x51);
+ { uint64_t x56 = (x55 >> 0x1a);
+ { uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ { uint64_t x58 = (x56 + x50);
+ { uint64_t x59 = (x58 >> 0x1a);
+ { uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ { uint64_t x61 = (x59 + x49);
+ { uint64_t x62 = (x61 >> 0x1a);
+ { uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ { uint64_t x64 = (x62 + x48);
+ { uint64_t x65 = (x64 >> 0x1a);
+ { uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ { uint64_t x67 = (x65 + x47);
+ { uint64_t x68 = (x67 >> 0x1a);
+ { uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ { uint64_t x70 = (x68 + x46);
+ { uint64_t x71 = (x70 >> 0x1a);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ { uint64_t x73 = (x71 + x45);
+ { uint64_t x74 = (x73 >> 0x1a);
+ { uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ { uint64_t x76 = (x74 + x44);
+ { uint64_t x77 = (x76 >> 0x1a);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ { uint64_t x79 = (x77 + x43);
+ { uint64_t x80 = (x79 >> 0x1a);
+ { uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ { uint64_t x82 = (x80 + x42);
+ { uint64_t x83 = (x82 >> 0x1a);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ { uint64_t x85 = (x83 + x41);
+ { uint64_t x86 = (x85 >> 0x1a);
+ { uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ { uint64_t x88 = (x86 + x40);
+ { uint64_t x89 = (x88 >> 0x1a);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ { uint64_t x91 = (x89 + x39);
+ { uint64_t x92 = (x91 >> 0x1a);
+ { uint32_t x93 = ((uint32_t)x91 & 0x3ffffff);
+ { uint64_t x94 = (x92 + x38);
+ { uint64_t x95 = (x94 >> 0x1a);
+ { uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ { uint64_t x97 = (x95 + x37);
+ { uint64_t x98 = (x97 >> 0x1a);
+ { uint32_t x99 = ((uint32_t)x97 & 0x3ffffff);
+ { uint64_t x100 = (x98 + x36);
+ { uint64_t x101 = (x100 >> 0x1a);
+ { uint32_t x102 = ((uint32_t)x100 & 0x3ffffff);
+ { uint64_t x103 = (x101 + x35);
+ { uint64_t x104 = (x103 >> 0x1a);
+ { uint32_t x105 = ((uint32_t)x103 & 0x3ffffff);
+ { uint64_t x106 = (x54 + (0x11 * x104));
+ { uint32_t x107 = (uint32_t) (x106 >> 0x1a);
+ { uint32_t x108 = ((uint32_t)x106 & 0x3ffffff);
+ { uint32_t x109 = (x107 + x57);
+ { uint32_t x110 = (x109 >> 0x1a);
+ { uint32_t x111 = (x109 & 0x3ffffff);
+ out[0] = x108;
+ out[1] = x111;
+ out[2] = (x110 + x60);
+ out[3] = x63;
+ out[4] = x66;
+ out[5] = x69;
+ out[6] = x72;
+ out[7] = x75;
+ out[8] = x78;
+ out[9] = x81;
+ out[10] = x84;
+ out[11] = x87;
+ out[12] = x90;
+ out[13] = x93;
+ out[14] = x96;
+ out[15] = x99;
+ out[16] = x102;
+ out[17] = x105;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_18limbs/fesquareDisplay.log b/src/Specific/solinas32_2e468m17_18limbs/fesquareDisplay.log
new file mode 100644
index 000000000..ce059ed76
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/fesquareDisplay.log
@@ -0,0 +1,84 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x35 = (((uint64_t)x2 * x33) + (((uint64_t)x4 * x34) + (((uint64_t)x6 * x32) + (((uint64_t)x8 * x30) + (((uint64_t)x10 * x28) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + (((uint64_t)x16 * x22) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + (((uint64_t)x22 * x16) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + (((uint64_t)x28 * x10) + (((uint64_t)x30 * x8) + (((uint64_t)x32 * x6) + (((uint64_t)x34 * x4) + ((uint64_t)x33 * x2))))))))))))))))));
+ uint64_t x36 = ((((uint64_t)x2 * x34) + (((uint64_t)x4 * x32) + (((uint64_t)x6 * x30) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + (((uint64_t)x30 * x6) + (((uint64_t)x32 * x4) + ((uint64_t)x34 * x2))))))))))))))))) + (0x11 * ((uint64_t)x33 * x33)));
+ uint64_t x37 = ((((uint64_t)x2 * x32) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x32 * x2)))))))))))))))) + (0x11 * (((uint64_t)x34 * x33) + ((uint64_t)x33 * x34))));
+ uint64_t x38 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x11 * (((uint64_t)x32 * x33) + (((uint64_t)x34 * x34) + ((uint64_t)x33 * x32)))));
+ uint64_t x39 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((uint64_t)x8 * x22) + (((uint64_t)x10 * x20) + (((uint64_t)x12 * x18) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + (((uint64_t)x18 * x12) + (((uint64_t)x20 * x10) + (((uint64_t)x22 * x8) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x11 * (((uint64_t)x30 * x33) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + ((uint64_t)x33 * x30))))));
+ uint64_t x40 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + (((uint64_t)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x11 * (((uint64_t)x28 * x33) + (((uint64_t)x30 * x34) + (((uint64_t)x32 * x32) + (((uint64_t)x34 * x30) + ((uint64_t)x33 * x28)))))));
+ uint64_t x41 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x11 * (((uint64_t)x26 * x33) + (((uint64_t)x28 * x34) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + (((uint64_t)x34 * x28) + ((uint64_t)x33 * x26))))))));
+ uint64_t x42 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x11 * (((uint64_t)x24 * x33) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + ((uint64_t)x33 * x24)))))))));
+ uint64_t x43 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x11 * (((uint64_t)x22 * x33) + (((uint64_t)x24 * x34) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + (((uint64_t)x34 * x24) + ((uint64_t)x33 * x22))))))))));
+ uint64_t x44 = ((((uint64_t)x2 * x18) + (((uint64_t)x4 * x16) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + (((uint64_t)x10 * x10) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + (((uint64_t)x16 * x4) + ((uint64_t)x18 * x2))))))))) + (0x11 * (((uint64_t)x20 * x33) + (((uint64_t)x22 * x34) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + (((uint64_t)x34 * x22) + ((uint64_t)x33 * x20)))))))))));
+ uint64_t x45 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x11 * (((uint64_t)x18 * x33) + (((uint64_t)x20 * x34) + (((uint64_t)x22 * x32) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (((uint64_t)x32 * x22) + (((uint64_t)x34 * x20) + ((uint64_t)x33 * x18))))))))))));
+ uint64_t x46 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x11 * (((uint64_t)x16 * x33) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + ((uint64_t)x33 * x16)))))))))))));
+ uint64_t x47 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x11 * (((uint64_t)x14 * x33) + (((uint64_t)x16 * x34) + (((uint64_t)x18 * x32) + (((uint64_t)x20 * x30) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + (((uint64_t)x30 * x20) + (((uint64_t)x32 * x18) + (((uint64_t)x34 * x16) + ((uint64_t)x33 * x14))))))))))))));
+ uint64_t x48 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x11 * (((uint64_t)x12 * x33) + (((uint64_t)x14 * x34) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + (((uint64_t)x34 * x14) + ((uint64_t)x33 * x12)))))))))))))));
+ uint64_t x49 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x11 * (((uint64_t)x10 * x33) + (((uint64_t)x12 * x34) + (((uint64_t)x14 * x32) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + (((uint64_t)x32 * x14) + (((uint64_t)x34 * x12) + ((uint64_t)x33 * x10))))))))))))))));
+ uint64_t x50 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x11 * (((uint64_t)x8 * x33) + (((uint64_t)x10 * x34) + (((uint64_t)x12 * x32) + (((uint64_t)x14 * x30) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + (((uint64_t)x22 * x22) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + (((uint64_t)x30 * x14) + (((uint64_t)x32 * x12) + (((uint64_t)x34 * x10) + ((uint64_t)x33 * x8)))))))))))))))));
+ uint64_t x51 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x11 * (((uint64_t)x6 * x33) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + ((uint64_t)x33 * x6))))))))))))))))));
+ uint64_t x52 = (((uint64_t)x2 * x2) + (0x11 * (((uint64_t)x4 * x33) + (((uint64_t)x6 * x34) + (((uint64_t)x8 * x32) + (((uint64_t)x10 * x30) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + (((uint64_t)x20 * x20) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + (((uint64_t)x30 * x10) + (((uint64_t)x32 * x8) + (((uint64_t)x34 * x6) + ((uint64_t)x33 * x4)))))))))))))))))));
+ uint64_t x53 = (x52 >> 0x1a);
+ uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ uint64_t x55 = (x53 + x51);
+ uint64_t x56 = (x55 >> 0x1a);
+ uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ uint64_t x58 = (x56 + x50);
+ uint64_t x59 = (x58 >> 0x1a);
+ uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ uint64_t x61 = (x59 + x49);
+ uint64_t x62 = (x61 >> 0x1a);
+ uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ uint64_t x64 = (x62 + x48);
+ uint64_t x65 = (x64 >> 0x1a);
+ uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ uint64_t x67 = (x65 + x47);
+ uint64_t x68 = (x67 >> 0x1a);
+ uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ uint64_t x70 = (x68 + x46);
+ uint64_t x71 = (x70 >> 0x1a);
+ uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ uint64_t x73 = (x71 + x45);
+ uint64_t x74 = (x73 >> 0x1a);
+ uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ uint64_t x76 = (x74 + x44);
+ uint64_t x77 = (x76 >> 0x1a);
+ uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ uint64_t x79 = (x77 + x43);
+ uint64_t x80 = (x79 >> 0x1a);
+ uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ uint64_t x82 = (x80 + x42);
+ uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ uint64_t x85 = (x83 + x41);
+ uint64_t x86 = (x85 >> 0x1a);
+ uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ uint64_t x88 = (x86 + x40);
+ uint64_t x89 = (x88 >> 0x1a);
+ uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ uint64_t x91 = (x89 + x39);
+ uint64_t x92 = (x91 >> 0x1a);
+ uint32_t x93 = ((uint32_t)x91 & 0x3ffffff);
+ uint64_t x94 = (x92 + x38);
+ uint64_t x95 = (x94 >> 0x1a);
+ uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ uint64_t x97 = (x95 + x37);
+ uint64_t x98 = (x97 >> 0x1a);
+ uint32_t x99 = ((uint32_t)x97 & 0x3ffffff);
+ uint64_t x100 = (x98 + x36);
+ uint64_t x101 = (x100 >> 0x1a);
+ uint32_t x102 = ((uint32_t)x100 & 0x3ffffff);
+ uint64_t x103 = (x101 + x35);
+ uint64_t x104 = (x103 >> 0x1a);
+ uint32_t x105 = ((uint32_t)x103 & 0x3ffffff);
+ uint64_t x106 = (x54 + (0x11 * x104));
+ uint32_t x107 = (uint32_t) (x106 >> 0x1a);
+ uint32_t x108 = ((uint32_t)x106 & 0x3ffffff);
+ uint32_t x109 = (x107 + x57);
+ uint32_t x110 = (x109 >> 0x1a);
+ uint32_t x111 = (x109 & 0x3ffffff);
+ return (Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, (x110 + x60), Return x111, Return x108))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_18limbs/fesub.c b/src/Specific/solinas32_2e468m17_18limbs/fesub.c
new file mode 100644
index 000000000..033df9f0f
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((0x7ffffde + x5) - x39);
+ out[1] = ((0x7fffffe + x7) - x41);
+ out[2] = ((0x7fffffe + x9) - x43);
+ out[3] = ((0x7fffffe + x11) - x45);
+ out[4] = ((0x7fffffe + x13) - x47);
+ out[5] = ((0x7fffffe + x15) - x49);
+ out[6] = ((0x7fffffe + x17) - x51);
+ out[7] = ((0x7fffffe + x19) - x53);
+ out[8] = ((0x7fffffe + x21) - x55);
+ out[9] = ((0x7fffffe + x23) - x57);
+ out[10] = ((0x7fffffe + x25) - x59);
+ out[11] = ((0x7fffffe + x27) - x61);
+ out[12] = ((0x7fffffe + x29) - x63);
+ out[13] = ((0x7fffffe + x31) - x65);
+ out[14] = ((0x7fffffe + x33) - x67);
+ out[15] = ((0x7fffffe + x35) - x69);
+ out[16] = ((0x7fffffe + x37) - x71);
+ out[17] = ((0x7fffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e468m17_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..0224e108e
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0x7fffffe + x36) - x70), ((0x7fffffe + x37) - x71), ((0x7fffffe + x35) - x69), ((0x7fffffe + x33) - x67), ((0x7fffffe + x31) - x65), ((0x7fffffe + x29) - x63), ((0x7fffffe + x27) - x61), ((0x7fffffe + x25) - x59), ((0x7fffffe + x23) - x57), ((0x7fffffe + x21) - x55), ((0x7fffffe + x19) - x53), ((0x7fffffe + x17) - x51), ((0x7fffffe + x15) - x49), ((0x7fffffe + x13) - x47), ((0x7fffffe + x11) - x45), ((0x7fffffe + x9) - x43), ((0x7fffffe + x7) - x41), ((0x7ffffde + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_18limbs/freeze.c b/src/Specific/solinas32_2e468m17_18limbs/freeze.c
new file mode 100644
index 000000000..625fba05e
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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];
+ { uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffef);
+ { uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x4, 0x3ffffff);
+ { uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0x3ffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x3ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x3ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x3ffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x3ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x3ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x3ffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x3ffffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x3ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x3ffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x3ffffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x3ffffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x3ffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x3ffffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x3ffffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x3ffffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & 0x3ffffef);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x3ffffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0x3ffffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x3ffffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x3ffffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0x3ffffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x3ffffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x3ffffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0x3ffffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0x3ffffff);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x3ffffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0x3ffffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x3ffffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x3ffffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0x3ffffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x3ffffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x3ffffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0x3ffffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e468m17_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..b2480f2df
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffef);
+ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x4, 0x3ffffff);
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0x3ffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x3ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x3ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x3ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x3ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x3ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x3ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x3ffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x3ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x3ffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x3ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x3ffffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x3ffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x3ffffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x3ffffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x3ffffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0x3ffffef);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x3ffffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0x3ffffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x3ffffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x3ffffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0x3ffffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x3ffffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x3ffffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0x3ffffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0x3ffffff);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x3ffffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0x3ffffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x3ffffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x3ffffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0x3ffffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x3ffffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x3ffffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0x3ffffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_22limbs/feadd.c b/src/Specific/solinas32_2e511m187_22limbs/feadd.c
new file mode 100644
index 000000000..3d8fcaced
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/feadd.c
@@ -0,0 +1,69 @@
+static void feadd(uint32_t out[22], const uint32_t in1[22], const uint32_t in2[22]) {
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x86 = in2[21];
+ { const uint32_t x87 = in2[20];
+ { const uint32_t x85 = in2[19];
+ { const uint32_t x83 = in2[18];
+ { const uint32_t x81 = in2[17];
+ { const uint32_t x79 = in2[16];
+ { const uint32_t x77 = in2[15];
+ { const uint32_t x75 = in2[14];
+ { const uint32_t x73 = in2[13];
+ { const uint32_t x71 = in2[12];
+ { const uint32_t x69 = in2[11];
+ { const uint32_t x67 = in2[10];
+ { const uint32_t x65 = in2[9];
+ { const uint32_t x63 = in2[8];
+ { const uint32_t x61 = in2[7];
+ { const uint32_t x59 = in2[6];
+ { const uint32_t x57 = in2[5];
+ { const uint32_t x55 = in2[4];
+ { const uint32_t x53 = in2[3];
+ { const uint32_t x51 = in2[2];
+ { const uint32_t x49 = in2[1];
+ { const uint32_t x47 = in2[0];
+ out[0] = (x5 + x47);
+ out[1] = (x7 + x49);
+ out[2] = (x9 + x51);
+ out[3] = (x11 + x53);
+ out[4] = (x13 + x55);
+ out[5] = (x15 + x57);
+ out[6] = (x17 + x59);
+ out[7] = (x19 + x61);
+ out[8] = (x21 + x63);
+ out[9] = (x23 + x65);
+ out[10] = (x25 + x67);
+ out[11] = (x27 + x69);
+ out[12] = (x29 + x71);
+ out[13] = (x31 + x73);
+ out[14] = (x33 + x75);
+ out[15] = (x35 + x77);
+ out[16] = (x37 + x79);
+ out[17] = (x39 + x81);
+ out[18] = (x41 + x83);
+ out[19] = (x43 + x85);
+ out[20] = (x45 + x87);
+ out[21] = (x44 + x86);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_22limbs/feaddDisplay.log b/src/Specific/solinas32_2e511m187_22limbs/feaddDisplay.log
new file mode 100644
index 000000000..721ed2e79
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x44, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x86, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47))%core,
+ ((x44 + x86), (x45 + x87), (x43 + x85), (x41 + x83), (x39 + x81), (x37 + x79), (x35 + x77), (x33 + x75), (x31 + x73), (x29 + x71), (x27 + x69), (x25 + x67), (x23 + x65), (x21 + x63), (x19 + x61), (x17 + x59), (x15 + x57), (x13 + x55), (x11 + x53), (x9 + x51), (x7 + x49), (x5 + x47)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_22limbs/femul.c b/src/Specific/solinas32_2e511m187_22limbs/femul.c
new file mode 100644
index 000000000..ea126d46e
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/femul.c
@@ -0,0 +1,162 @@
+static void femul(uint32_t out[22], const uint32_t in1[22], const uint32_t in2[22]) {
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x86 = in2[21];
+ { const uint32_t x87 = in2[20];
+ { const uint32_t x85 = in2[19];
+ { const uint32_t x83 = in2[18];
+ { const uint32_t x81 = in2[17];
+ { const uint32_t x79 = in2[16];
+ { const uint32_t x77 = in2[15];
+ { const uint32_t x75 = in2[14];
+ { const uint32_t x73 = in2[13];
+ { const uint32_t x71 = in2[12];
+ { const uint32_t x69 = in2[11];
+ { const uint32_t x67 = in2[10];
+ { const uint32_t x65 = in2[9];
+ { const uint32_t x63 = in2[8];
+ { const uint32_t x61 = in2[7];
+ { const uint32_t x59 = in2[6];
+ { const uint32_t x57 = in2[5];
+ { const uint32_t x55 = in2[4];
+ { const uint32_t x53 = in2[3];
+ { const uint32_t x51 = in2[2];
+ { const uint32_t x49 = in2[1];
+ { const uint32_t x47 = in2[0];
+ { uint64_t x88 = (((uint64_t)x5 * x86) + ((0x2 * ((uint64_t)x7 * x87)) + ((0x2 * ((uint64_t)x9 * x85)) + ((0x2 * ((uint64_t)x11 * x83)) + (((uint64_t)x13 * x81) + ((0x2 * ((uint64_t)x15 * x79)) + ((0x2 * ((uint64_t)x17 * x77)) + ((0x2 * ((uint64_t)x19 * x75)) + (((uint64_t)x21 * x73) + ((0x2 * ((uint64_t)x23 * x71)) + ((0x2 * ((uint64_t)x25 * x69)) + ((0x2 * ((uint64_t)x27 * x67)) + ((0x2 * ((uint64_t)x29 * x65)) + (((uint64_t)x31 * x63) + ((0x2 * ((uint64_t)x33 * x61)) + ((0x2 * ((uint64_t)x35 * x59)) + ((0x2 * ((uint64_t)x37 * x57)) + (((uint64_t)x39 * x55) + ((0x2 * ((uint64_t)x41 * x53)) + ((0x2 * ((uint64_t)x43 * x51)) + ((0x2 * ((uint64_t)x45 * x49)) + ((uint64_t)x44 * x47))))))))))))))))))))));
+ { uint64_t x89 = ((((uint64_t)x5 * x87) + ((0x2 * ((uint64_t)x7 * x85)) + ((0x2 * ((uint64_t)x9 * x83)) + (((uint64_t)x11 * x81) + (((uint64_t)x13 * x79) + ((0x2 * ((uint64_t)x15 * x77)) + ((0x2 * ((uint64_t)x17 * x75)) + (((uint64_t)x19 * x73) + (((uint64_t)x21 * x71) + ((0x2 * ((uint64_t)x23 * x69)) + ((0x2 * ((uint64_t)x25 * x67)) + ((0x2 * ((uint64_t)x27 * x65)) + (((uint64_t)x29 * x63) + (((uint64_t)x31 * x61) + ((0x2 * ((uint64_t)x33 * x59)) + ((0x2 * ((uint64_t)x35 * x57)) + (((uint64_t)x37 * x55) + (((uint64_t)x39 * x53) + ((0x2 * ((uint64_t)x41 * x51)) + ((0x2 * ((uint64_t)x43 * x49)) + ((uint64_t)x45 * x47))))))))))))))))))))) + (0xbb * ((uint64_t)x44 * x86)));
+ { uint64_t x90 = ((((uint64_t)x5 * x85) + ((0x2 * ((uint64_t)x7 * x83)) + (((uint64_t)x9 * x81) + (((uint64_t)x11 * x79) + (((uint64_t)x13 * x77) + ((0x2 * ((uint64_t)x15 * x75)) + (((uint64_t)x17 * x73) + (((uint64_t)x19 * x71) + (((uint64_t)x21 * x69) + ((0x2 * ((uint64_t)x23 * x67)) + ((0x2 * ((uint64_t)x25 * x65)) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + (((uint64_t)x31 * x59) + ((0x2 * ((uint64_t)x33 * x57)) + (((uint64_t)x35 * x55) + (((uint64_t)x37 * x53) + (((uint64_t)x39 * x51) + ((0x2 * ((uint64_t)x41 * x49)) + ((uint64_t)x43 * x47)))))))))))))))))))) + (0xbb * (((uint64_t)x45 * x86) + ((uint64_t)x44 * x87))));
+ { uint64_t x91 = ((((uint64_t)x5 * x83) + (((uint64_t)x7 * x81) + (((uint64_t)x9 * x79) + (((uint64_t)x11 * x77) + (((uint64_t)x13 * x75) + (((uint64_t)x15 * x73) + (((uint64_t)x17 * x71) + (((uint64_t)x19 * x69) + (((uint64_t)x21 * x67) + ((0x2 * ((uint64_t)x23 * x65)) + (((uint64_t)x25 * x63) + (((uint64_t)x27 * x61) + (((uint64_t)x29 * x59) + (((uint64_t)x31 * x57) + (((uint64_t)x33 * x55) + (((uint64_t)x35 * x53) + (((uint64_t)x37 * x51) + (((uint64_t)x39 * x49) + ((uint64_t)x41 * x47))))))))))))))))))) + (0xbb * (((uint64_t)x43 * x86) + (((uint64_t)x45 * x87) + ((uint64_t)x44 * x85)))));
+ { uint64_t x92 = ((((uint64_t)x5 * x81) + ((0x2 * ((uint64_t)x7 * x79)) + ((0x2 * ((uint64_t)x9 * x77)) + ((0x2 * ((uint64_t)x11 * x75)) + (((uint64_t)x13 * x73) + ((0x2 * ((uint64_t)x15 * x71)) + ((0x2 * ((uint64_t)x17 * x69)) + ((0x2 * ((uint64_t)x19 * x67)) + ((0x2 * ((uint64_t)x21 * x65)) + ((0x2 * ((uint64_t)x23 * x63)) + ((0x2 * ((uint64_t)x25 * x61)) + ((0x2 * ((uint64_t)x27 * x59)) + ((0x2 * ((uint64_t)x29 * x57)) + (((uint64_t)x31 * x55) + ((0x2 * ((uint64_t)x33 * x53)) + ((0x2 * ((uint64_t)x35 * x51)) + ((0x2 * ((uint64_t)x37 * x49)) + ((uint64_t)x39 * x47)))))))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x41 * x86)) + ((0x2 * ((uint64_t)x43 * x87)) + ((0x2 * ((uint64_t)x45 * x85)) + (0x2 * ((uint64_t)x44 * x83)))))));
+ { uint64_t x93 = ((((uint64_t)x5 * x79) + ((0x2 * ((uint64_t)x7 * x77)) + ((0x2 * ((uint64_t)x9 * x75)) + (((uint64_t)x11 * x73) + (((uint64_t)x13 * x71) + ((0x2 * ((uint64_t)x15 * x69)) + ((0x2 * ((uint64_t)x17 * x67)) + ((0x2 * ((uint64_t)x19 * x65)) + (((uint64_t)x21 * x63) + ((0x2 * ((uint64_t)x23 * x61)) + ((0x2 * ((uint64_t)x25 * x59)) + ((0x2 * ((uint64_t)x27 * x57)) + (((uint64_t)x29 * x55) + (((uint64_t)x31 * x53) + ((0x2 * ((uint64_t)x33 * x51)) + ((0x2 * ((uint64_t)x35 * x49)) + ((uint64_t)x37 * x47))))))))))))))))) + (0xbb * (((uint64_t)x39 * x86) + ((0x2 * ((uint64_t)x41 * x87)) + ((0x2 * ((uint64_t)x43 * x85)) + ((0x2 * ((uint64_t)x45 * x83)) + ((uint64_t)x44 * x81)))))));
+ { uint64_t x94 = ((((uint64_t)x5 * x77) + ((0x2 * ((uint64_t)x7 * x75)) + (((uint64_t)x9 * x73) + (((uint64_t)x11 * x71) + (((uint64_t)x13 * x69) + ((0x2 * ((uint64_t)x15 * x67)) + ((0x2 * ((uint64_t)x17 * x65)) + (((uint64_t)x19 * x63) + (((uint64_t)x21 * x61) + ((0x2 * ((uint64_t)x23 * x59)) + ((0x2 * ((uint64_t)x25 * x57)) + (((uint64_t)x27 * x55) + (((uint64_t)x29 * x53) + (((uint64_t)x31 * x51) + ((0x2 * ((uint64_t)x33 * x49)) + ((uint64_t)x35 * x47)))))))))))))))) + (0xbb * (((uint64_t)x37 * x86) + (((uint64_t)x39 * x87) + ((0x2 * ((uint64_t)x41 * x85)) + ((0x2 * ((uint64_t)x43 * x83)) + (((uint64_t)x45 * x81) + ((uint64_t)x44 * x79))))))));
+ { uint64_t x95 = ((((uint64_t)x5 * x75) + (((uint64_t)x7 * x73) + (((uint64_t)x9 * x71) + (((uint64_t)x11 * x69) + (((uint64_t)x13 * x67) + ((0x2 * ((uint64_t)x15 * x65)) + (((uint64_t)x17 * x63) + (((uint64_t)x19 * x61) + (((uint64_t)x21 * x59) + ((0x2 * ((uint64_t)x23 * x57)) + (((uint64_t)x25 * x55) + (((uint64_t)x27 * x53) + (((uint64_t)x29 * x51) + (((uint64_t)x31 * x49) + ((uint64_t)x33 * x47))))))))))))))) + (0xbb * (((uint64_t)x35 * x86) + (((uint64_t)x37 * x87) + (((uint64_t)x39 * x85) + ((0x2 * ((uint64_t)x41 * x83)) + (((uint64_t)x43 * x81) + (((uint64_t)x45 * x79) + ((uint64_t)x44 * x77)))))))));
+ { uint64_t x96 = ((((uint64_t)x5 * x73) + ((0x2 * ((uint64_t)x7 * x71)) + ((0x2 * ((uint64_t)x9 * x69)) + ((0x2 * ((uint64_t)x11 * x67)) + ((0x2 * ((uint64_t)x13 * x65)) + ((0x2 * ((uint64_t)x15 * x63)) + ((0x2 * ((uint64_t)x17 * x61)) + ((0x2 * ((uint64_t)x19 * x59)) + ((0x2 * ((uint64_t)x21 * x57)) + ((0x2 * ((uint64_t)x23 * x55)) + ((0x2 * ((uint64_t)x25 * x53)) + ((0x2 * ((uint64_t)x27 * x51)) + ((0x2 * ((uint64_t)x29 * x49)) + ((uint64_t)x31 * x47)))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x33 * x86)) + ((0x2 * ((uint64_t)x35 * x87)) + ((0x2 * ((uint64_t)x37 * x85)) + ((0x2 * ((uint64_t)x39 * x83)) + ((0x2 * ((uint64_t)x41 * x81)) + ((0x2 * ((uint64_t)x43 * x79)) + ((0x2 * ((uint64_t)x45 * x77)) + (0x2 * ((uint64_t)x44 * x75)))))))))));
+ { uint64_t x97 = ((((uint64_t)x5 * x71) + ((0x2 * ((uint64_t)x7 * x69)) + ((0x2 * ((uint64_t)x9 * x67)) + ((0x2 * ((uint64_t)x11 * x65)) + (((uint64_t)x13 * x63) + ((0x2 * ((uint64_t)x15 * x61)) + ((0x2 * ((uint64_t)x17 * x59)) + ((0x2 * ((uint64_t)x19 * x57)) + (((uint64_t)x21 * x55) + ((0x2 * ((uint64_t)x23 * x53)) + ((0x2 * ((uint64_t)x25 * x51)) + ((0x2 * ((uint64_t)x27 * x49)) + ((uint64_t)x29 * x47))))))))))))) + (0xbb * (((uint64_t)x31 * x86) + ((0x2 * ((uint64_t)x33 * x87)) + ((0x2 * ((uint64_t)x35 * x85)) + ((0x2 * ((uint64_t)x37 * x83)) + (((uint64_t)x39 * x81) + ((0x2 * ((uint64_t)x41 * x79)) + ((0x2 * ((uint64_t)x43 * x77)) + ((0x2 * ((uint64_t)x45 * x75)) + ((uint64_t)x44 * x73)))))))))));
+ { uint64_t x98 = ((((uint64_t)x5 * x69) + ((0x2 * ((uint64_t)x7 * x67)) + ((0x2 * ((uint64_t)x9 * x65)) + (((uint64_t)x11 * x63) + (((uint64_t)x13 * x61) + ((0x2 * ((uint64_t)x15 * x59)) + ((0x2 * ((uint64_t)x17 * x57)) + (((uint64_t)x19 * x55) + (((uint64_t)x21 * x53) + ((0x2 * ((uint64_t)x23 * x51)) + ((0x2 * ((uint64_t)x25 * x49)) + ((uint64_t)x27 * x47)))))))))))) + (0xbb * (((uint64_t)x29 * x86) + (((uint64_t)x31 * x87) + ((0x2 * ((uint64_t)x33 * x85)) + ((0x2 * ((uint64_t)x35 * x83)) + (((uint64_t)x37 * x81) + (((uint64_t)x39 * x79) + ((0x2 * ((uint64_t)x41 * x77)) + ((0x2 * ((uint64_t)x43 * x75)) + (((uint64_t)x45 * x73) + ((uint64_t)x44 * x71))))))))))));
+ { uint64_t x99 = ((((uint64_t)x5 * x67) + ((0x2 * ((uint64_t)x7 * x65)) + (((uint64_t)x9 * x63) + (((uint64_t)x11 * x61) + (((uint64_t)x13 * x59) + ((0x2 * ((uint64_t)x15 * x57)) + (((uint64_t)x17 * x55) + (((uint64_t)x19 * x53) + (((uint64_t)x21 * x51) + ((0x2 * ((uint64_t)x23 * x49)) + ((uint64_t)x25 * x47))))))))))) + (0xbb * (((uint64_t)x27 * x86) + (((uint64_t)x29 * x87) + (((uint64_t)x31 * x85) + ((0x2 * ((uint64_t)x33 * x83)) + (((uint64_t)x35 * x81) + (((uint64_t)x37 * x79) + (((uint64_t)x39 * x77) + ((0x2 * ((uint64_t)x41 * x75)) + (((uint64_t)x43 * x73) + (((uint64_t)x45 * x71) + ((uint64_t)x44 * x69)))))))))))));
+ { uint64_t x100 = ((((uint64_t)x5 * x65) + (((uint64_t)x7 * x63) + (((uint64_t)x9 * x61) + (((uint64_t)x11 * x59) + (((uint64_t)x13 * x57) + (((uint64_t)x15 * x55) + (((uint64_t)x17 * x53) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + ((uint64_t)x23 * x47)))))))))) + (0xbb * (((uint64_t)x25 * x86) + (((uint64_t)x27 * x87) + (((uint64_t)x29 * x85) + (((uint64_t)x31 * x83) + (((uint64_t)x33 * x81) + (((uint64_t)x35 * x79) + (((uint64_t)x37 * x77) + (((uint64_t)x39 * x75) + (((uint64_t)x41 * x73) + (((uint64_t)x43 * x71) + (((uint64_t)x45 * x69) + ((uint64_t)x44 * x67))))))))))))));
+ { uint64_t x101 = ((((uint64_t)x5 * x63) + ((0x2 * ((uint64_t)x7 * x61)) + ((0x2 * ((uint64_t)x9 * x59)) + ((0x2 * ((uint64_t)x11 * x57)) + (((uint64_t)x13 * x55) + ((0x2 * ((uint64_t)x15 * x53)) + ((0x2 * ((uint64_t)x17 * x51)) + ((0x2 * ((uint64_t)x19 * x49)) + ((uint64_t)x21 * x47))))))))) + (0xbb * ((0x2 * ((uint64_t)x23 * x86)) + ((0x2 * ((uint64_t)x25 * x87)) + ((0x2 * ((uint64_t)x27 * x85)) + ((0x2 * ((uint64_t)x29 * x83)) + (((uint64_t)x31 * x81) + ((0x2 * ((uint64_t)x33 * x79)) + ((0x2 * ((uint64_t)x35 * x77)) + ((0x2 * ((uint64_t)x37 * x75)) + (((uint64_t)x39 * x73) + ((0x2 * ((uint64_t)x41 * x71)) + ((0x2 * ((uint64_t)x43 * x69)) + ((0x2 * ((uint64_t)x45 * x67)) + (0x2 * ((uint64_t)x44 * x65))))))))))))))));
+ { uint64_t x102 = ((((uint64_t)x5 * x61) + ((0x2 * ((uint64_t)x7 * x59)) + ((0x2 * ((uint64_t)x9 * x57)) + (((uint64_t)x11 * x55) + (((uint64_t)x13 * x53) + ((0x2 * ((uint64_t)x15 * x51)) + ((0x2 * ((uint64_t)x17 * x49)) + ((uint64_t)x19 * x47)))))))) + (0xbb * (((uint64_t)x21 * x86) + ((0x2 * ((uint64_t)x23 * x87)) + ((0x2 * ((uint64_t)x25 * x85)) + ((0x2 * ((uint64_t)x27 * x83)) + (((uint64_t)x29 * x81) + (((uint64_t)x31 * x79) + ((0x2 * ((uint64_t)x33 * x77)) + ((0x2 * ((uint64_t)x35 * x75)) + (((uint64_t)x37 * x73) + (((uint64_t)x39 * x71) + ((0x2 * ((uint64_t)x41 * x69)) + ((0x2 * ((uint64_t)x43 * x67)) + ((0x2 * ((uint64_t)x45 * x65)) + ((uint64_t)x44 * x63))))))))))))))));
+ { uint64_t x103 = ((((uint64_t)x5 * x59) + ((0x2 * ((uint64_t)x7 * x57)) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + ((0x2 * ((uint64_t)x15 * x49)) + ((uint64_t)x17 * x47))))))) + (0xbb * (((uint64_t)x19 * x86) + (((uint64_t)x21 * x87) + ((0x2 * ((uint64_t)x23 * x85)) + ((0x2 * ((uint64_t)x25 * x83)) + (((uint64_t)x27 * x81) + (((uint64_t)x29 * x79) + (((uint64_t)x31 * x77) + ((0x2 * ((uint64_t)x33 * x75)) + (((uint64_t)x35 * x73) + (((uint64_t)x37 * x71) + (((uint64_t)x39 * x69) + ((0x2 * ((uint64_t)x41 * x67)) + ((0x2 * ((uint64_t)x43 * x65)) + (((uint64_t)x45 * x63) + ((uint64_t)x44 * x61)))))))))))))))));
+ { uint64_t x104 = ((((uint64_t)x5 * x57) + (((uint64_t)x7 * x55) + (((uint64_t)x9 * x53) + (((uint64_t)x11 * x51) + (((uint64_t)x13 * x49) + ((uint64_t)x15 * x47)))))) + (0xbb * (((uint64_t)x17 * x86) + (((uint64_t)x19 * x87) + (((uint64_t)x21 * x85) + ((0x2 * ((uint64_t)x23 * x83)) + (((uint64_t)x25 * x81) + (((uint64_t)x27 * x79) + (((uint64_t)x29 * x77) + (((uint64_t)x31 * x75) + (((uint64_t)x33 * x73) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + (((uint64_t)x39 * x67) + ((0x2 * ((uint64_t)x41 * x65)) + (((uint64_t)x43 * x63) + (((uint64_t)x45 * x61) + ((uint64_t)x44 * x59))))))))))))))))));
+ { uint64_t x105 = ((((uint64_t)x5 * x55) + ((0x2 * ((uint64_t)x7 * x53)) + ((0x2 * ((uint64_t)x9 * x51)) + ((0x2 * ((uint64_t)x11 * x49)) + ((uint64_t)x13 * x47))))) + (0xbb * ((0x2 * ((uint64_t)x15 * x86)) + ((0x2 * ((uint64_t)x17 * x87)) + ((0x2 * ((uint64_t)x19 * x85)) + ((0x2 * ((uint64_t)x21 * x83)) + ((0x2 * ((uint64_t)x23 * x81)) + ((0x2 * ((uint64_t)x25 * x79)) + ((0x2 * ((uint64_t)x27 * x77)) + ((0x2 * ((uint64_t)x29 * x75)) + (((uint64_t)x31 * x73) + ((0x2 * ((uint64_t)x33 * x71)) + ((0x2 * ((uint64_t)x35 * x69)) + ((0x2 * ((uint64_t)x37 * x67)) + ((0x2 * ((uint64_t)x39 * x65)) + ((0x2 * ((uint64_t)x41 * x63)) + ((0x2 * ((uint64_t)x43 * x61)) + ((0x2 * ((uint64_t)x45 * x59)) + (0x2 * ((uint64_t)x44 * x57))))))))))))))))))));
+ { uint64_t x106 = ((((uint64_t)x5 * x53) + ((0x2 * ((uint64_t)x7 * x51)) + ((0x2 * ((uint64_t)x9 * x49)) + ((uint64_t)x11 * x47)))) + (0xbb * (((uint64_t)x13 * x86) + ((0x2 * ((uint64_t)x15 * x87)) + ((0x2 * ((uint64_t)x17 * x85)) + ((0x2 * ((uint64_t)x19 * x83)) + (((uint64_t)x21 * x81) + ((0x2 * ((uint64_t)x23 * x79)) + ((0x2 * ((uint64_t)x25 * x77)) + ((0x2 * ((uint64_t)x27 * x75)) + (((uint64_t)x29 * x73) + (((uint64_t)x31 * x71) + ((0x2 * ((uint64_t)x33 * x69)) + ((0x2 * ((uint64_t)x35 * x67)) + ((0x2 * ((uint64_t)x37 * x65)) + (((uint64_t)x39 * x63) + ((0x2 * ((uint64_t)x41 * x61)) + ((0x2 * ((uint64_t)x43 * x59)) + ((0x2 * ((uint64_t)x45 * x57)) + ((uint64_t)x44 * x55))))))))))))))))))));
+ { uint64_t x107 = ((((uint64_t)x5 * x51) + ((0x2 * ((uint64_t)x7 * x49)) + ((uint64_t)x9 * x47))) + (0xbb * (((uint64_t)x11 * x86) + (((uint64_t)x13 * x87) + ((0x2 * ((uint64_t)x15 * x85)) + ((0x2 * ((uint64_t)x17 * x83)) + (((uint64_t)x19 * x81) + (((uint64_t)x21 * x79) + ((0x2 * ((uint64_t)x23 * x77)) + ((0x2 * ((uint64_t)x25 * x75)) + (((uint64_t)x27 * x73) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + ((0x2 * ((uint64_t)x33 * x67)) + ((0x2 * ((uint64_t)x35 * x65)) + (((uint64_t)x37 * x63) + (((uint64_t)x39 * x61) + ((0x2 * ((uint64_t)x41 * x59)) + ((0x2 * ((uint64_t)x43 * x57)) + (((uint64_t)x45 * x55) + ((uint64_t)x44 * x53)))))))))))))))))))));
+ { uint64_t x108 = ((((uint64_t)x5 * x49) + ((uint64_t)x7 * x47)) + (0xbb * (((uint64_t)x9 * x86) + (((uint64_t)x11 * x87) + (((uint64_t)x13 * x85) + ((0x2 * ((uint64_t)x15 * x83)) + (((uint64_t)x17 * x81) + (((uint64_t)x19 * x79) + (((uint64_t)x21 * x77) + ((0x2 * ((uint64_t)x23 * x75)) + (((uint64_t)x25 * x73) + (((uint64_t)x27 * x71) + (((uint64_t)x29 * x69) + (((uint64_t)x31 * x67) + ((0x2 * ((uint64_t)x33 * x65)) + (((uint64_t)x35 * x63) + (((uint64_t)x37 * x61) + (((uint64_t)x39 * x59) + ((0x2 * ((uint64_t)x41 * x57)) + (((uint64_t)x43 * x55) + (((uint64_t)x45 * x53) + ((uint64_t)x44 * x51))))))))))))))))))))));
+ { uint64_t x109 = (((uint64_t)x5 * x47) + (0xbb * ((0x2 * ((uint64_t)x7 * x86)) + ((0x2 * ((uint64_t)x9 * x87)) + ((0x2 * ((uint64_t)x11 * x85)) + ((0x2 * ((uint64_t)x13 * x83)) + ((0x2 * ((uint64_t)x15 * x81)) + ((0x2 * ((uint64_t)x17 * x79)) + ((0x2 * ((uint64_t)x19 * x77)) + ((0x2 * ((uint64_t)x21 * x75)) + ((0x2 * ((uint64_t)x23 * x73)) + ((0x2 * ((uint64_t)x25 * x71)) + ((0x2 * ((uint64_t)x27 * x69)) + ((0x2 * ((uint64_t)x29 * x67)) + ((0x2 * ((uint64_t)x31 * x65)) + ((0x2 * ((uint64_t)x33 * x63)) + ((0x2 * ((uint64_t)x35 * x61)) + ((0x2 * ((uint64_t)x37 * x59)) + ((0x2 * ((uint64_t)x39 * x57)) + ((0x2 * ((uint64_t)x41 * x55)) + ((0x2 * ((uint64_t)x43 * x53)) + ((0x2 * ((uint64_t)x45 * x51)) + (0x2 * ((uint64_t)x44 * x49))))))))))))))))))))))));
+ { uint64_t x110 = (x109 >> 0x18);
+ { uint32_t x111 = ((uint32_t)x109 & 0xffffff);
+ { uint64_t x112 = (x110 + x108);
+ { uint64_t x113 = (x112 >> 0x17);
+ { uint32_t x114 = ((uint32_t)x112 & 0x7fffff);
+ { uint64_t x115 = (x113 + x107);
+ { uint64_t x116 = (x115 >> 0x17);
+ { uint32_t x117 = ((uint32_t)x115 & 0x7fffff);
+ { uint64_t x118 = (x116 + x106);
+ { uint64_t x119 = (x118 >> 0x17);
+ { uint32_t x120 = ((uint32_t)x118 & 0x7fffff);
+ { uint64_t x121 = (x119 + x105);
+ { uint64_t x122 = (x121 >> 0x18);
+ { uint32_t x123 = ((uint32_t)x121 & 0xffffff);
+ { uint64_t x124 = (x122 + x104);
+ { uint64_t x125 = (x124 >> 0x17);
+ { uint32_t x126 = ((uint32_t)x124 & 0x7fffff);
+ { uint64_t x127 = (x125 + x103);
+ { uint64_t x128 = (x127 >> 0x17);
+ { uint32_t x129 = ((uint32_t)x127 & 0x7fffff);
+ { uint64_t x130 = (x128 + x102);
+ { uint64_t x131 = (x130 >> 0x17);
+ { uint32_t x132 = ((uint32_t)x130 & 0x7fffff);
+ { uint64_t x133 = (x131 + x101);
+ { uint64_t x134 = (x133 >> 0x18);
+ { uint32_t x135 = ((uint32_t)x133 & 0xffffff);
+ { uint64_t x136 = (x134 + x100);
+ { uint64_t x137 = (x136 >> 0x17);
+ { uint32_t x138 = ((uint32_t)x136 & 0x7fffff);
+ { uint64_t x139 = (x137 + x99);
+ { uint64_t x140 = (x139 >> 0x17);
+ { uint32_t x141 = ((uint32_t)x139 & 0x7fffff);
+ { uint64_t x142 = (x140 + x98);
+ { uint64_t x143 = (x142 >> 0x17);
+ { uint32_t x144 = ((uint32_t)x142 & 0x7fffff);
+ { uint64_t x145 = (x143 + x97);
+ { uint64_t x146 = (x145 >> 0x17);
+ { uint32_t x147 = ((uint32_t)x145 & 0x7fffff);
+ { uint64_t x148 = (x146 + x96);
+ { uint64_t x149 = (x148 >> 0x18);
+ { uint32_t x150 = ((uint32_t)x148 & 0xffffff);
+ { uint64_t x151 = (x149 + x95);
+ { uint64_t x152 = (x151 >> 0x17);
+ { uint32_t x153 = ((uint32_t)x151 & 0x7fffff);
+ { uint64_t x154 = (x152 + x94);
+ { uint64_t x155 = (x154 >> 0x17);
+ { uint32_t x156 = ((uint32_t)x154 & 0x7fffff);
+ { uint64_t x157 = (x155 + x93);
+ { uint64_t x158 = (x157 >> 0x17);
+ { uint32_t x159 = ((uint32_t)x157 & 0x7fffff);
+ { uint64_t x160 = (x158 + x92);
+ { uint64_t x161 = (x160 >> 0x18);
+ { uint32_t x162 = ((uint32_t)x160 & 0xffffff);
+ { uint64_t x163 = (x161 + x91);
+ { uint64_t x164 = (x163 >> 0x17);
+ { uint32_t x165 = ((uint32_t)x163 & 0x7fffff);
+ { uint64_t x166 = (x164 + x90);
+ { uint64_t x167 = (x166 >> 0x17);
+ { uint32_t x168 = ((uint32_t)x166 & 0x7fffff);
+ { uint64_t x169 = (x167 + x89);
+ { uint64_t x170 = (x169 >> 0x17);
+ { uint32_t x171 = ((uint32_t)x169 & 0x7fffff);
+ { uint64_t x172 = (x170 + x88);
+ { uint64_t x173 = (x172 >> 0x17);
+ { uint32_t x174 = ((uint32_t)x172 & 0x7fffff);
+ { uint64_t x175 = (x111 + (0xbb * x173));
+ { uint32_t x176 = (uint32_t) (x175 >> 0x18);
+ { uint32_t x177 = ((uint32_t)x175 & 0xffffff);
+ { uint32_t x178 = (x176 + x114);
+ { uint32_t x179 = (x178 >> 0x17);
+ { uint32_t x180 = (x178 & 0x7fffff);
+ out[0] = x177;
+ out[1] = x180;
+ out[2] = (x179 + x117);
+ out[3] = x120;
+ out[4] = x123;
+ out[5] = x126;
+ out[6] = x129;
+ out[7] = x132;
+ out[8] = x135;
+ out[9] = x138;
+ out[10] = x141;
+ out[11] = x144;
+ out[12] = x147;
+ out[13] = x150;
+ out[14] = x153;
+ out[15] = x156;
+ out[16] = x159;
+ out[17] = x162;
+ out[18] = x165;
+ out[19] = x168;
+ out[20] = x171;
+ out[21] = x174;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_22limbs/femulDisplay.log b/src/Specific/solinas32_2e511m187_22limbs/femulDisplay.log
new file mode 100644
index 000000000..ae153fcc0
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/femulDisplay.log
@@ -0,0 +1,100 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x44, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x86, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47))%core,
+ uint64_t x88 = (((uint64_t)x5 * x86) + ((0x2 * ((uint64_t)x7 * x87)) + ((0x2 * ((uint64_t)x9 * x85)) + ((0x2 * ((uint64_t)x11 * x83)) + (((uint64_t)x13 * x81) + ((0x2 * ((uint64_t)x15 * x79)) + ((0x2 * ((uint64_t)x17 * x77)) + ((0x2 * ((uint64_t)x19 * x75)) + (((uint64_t)x21 * x73) + ((0x2 * ((uint64_t)x23 * x71)) + ((0x2 * ((uint64_t)x25 * x69)) + ((0x2 * ((uint64_t)x27 * x67)) + ((0x2 * ((uint64_t)x29 * x65)) + (((uint64_t)x31 * x63) + ((0x2 * ((uint64_t)x33 * x61)) + ((0x2 * ((uint64_t)x35 * x59)) + ((0x2 * ((uint64_t)x37 * x57)) + (((uint64_t)x39 * x55) + ((0x2 * ((uint64_t)x41 * x53)) + ((0x2 * ((uint64_t)x43 * x51)) + ((0x2 * ((uint64_t)x45 * x49)) + ((uint64_t)x44 * x47))))))))))))))))))))));
+ uint64_t x89 = ((((uint64_t)x5 * x87) + ((0x2 * ((uint64_t)x7 * x85)) + ((0x2 * ((uint64_t)x9 * x83)) + (((uint64_t)x11 * x81) + (((uint64_t)x13 * x79) + ((0x2 * ((uint64_t)x15 * x77)) + ((0x2 * ((uint64_t)x17 * x75)) + (((uint64_t)x19 * x73) + (((uint64_t)x21 * x71) + ((0x2 * ((uint64_t)x23 * x69)) + ((0x2 * ((uint64_t)x25 * x67)) + ((0x2 * ((uint64_t)x27 * x65)) + (((uint64_t)x29 * x63) + (((uint64_t)x31 * x61) + ((0x2 * ((uint64_t)x33 * x59)) + ((0x2 * ((uint64_t)x35 * x57)) + (((uint64_t)x37 * x55) + (((uint64_t)x39 * x53) + ((0x2 * ((uint64_t)x41 * x51)) + ((0x2 * ((uint64_t)x43 * x49)) + ((uint64_t)x45 * x47))))))))))))))))))))) + (0xbb * ((uint64_t)x44 * x86)));
+ uint64_t x90 = ((((uint64_t)x5 * x85) + ((0x2 * ((uint64_t)x7 * x83)) + (((uint64_t)x9 * x81) + (((uint64_t)x11 * x79) + (((uint64_t)x13 * x77) + ((0x2 * ((uint64_t)x15 * x75)) + (((uint64_t)x17 * x73) + (((uint64_t)x19 * x71) + (((uint64_t)x21 * x69) + ((0x2 * ((uint64_t)x23 * x67)) + ((0x2 * ((uint64_t)x25 * x65)) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + (((uint64_t)x31 * x59) + ((0x2 * ((uint64_t)x33 * x57)) + (((uint64_t)x35 * x55) + (((uint64_t)x37 * x53) + (((uint64_t)x39 * x51) + ((0x2 * ((uint64_t)x41 * x49)) + ((uint64_t)x43 * x47)))))))))))))))))))) + (0xbb * (((uint64_t)x45 * x86) + ((uint64_t)x44 * x87))));
+ uint64_t x91 = ((((uint64_t)x5 * x83) + (((uint64_t)x7 * x81) + (((uint64_t)x9 * x79) + (((uint64_t)x11 * x77) + (((uint64_t)x13 * x75) + (((uint64_t)x15 * x73) + (((uint64_t)x17 * x71) + (((uint64_t)x19 * x69) + (((uint64_t)x21 * x67) + ((0x2 * ((uint64_t)x23 * x65)) + (((uint64_t)x25 * x63) + (((uint64_t)x27 * x61) + (((uint64_t)x29 * x59) + (((uint64_t)x31 * x57) + (((uint64_t)x33 * x55) + (((uint64_t)x35 * x53) + (((uint64_t)x37 * x51) + (((uint64_t)x39 * x49) + ((uint64_t)x41 * x47))))))))))))))))))) + (0xbb * (((uint64_t)x43 * x86) + (((uint64_t)x45 * x87) + ((uint64_t)x44 * x85)))));
+ uint64_t x92 = ((((uint64_t)x5 * x81) + ((0x2 * ((uint64_t)x7 * x79)) + ((0x2 * ((uint64_t)x9 * x77)) + ((0x2 * ((uint64_t)x11 * x75)) + (((uint64_t)x13 * x73) + ((0x2 * ((uint64_t)x15 * x71)) + ((0x2 * ((uint64_t)x17 * x69)) + ((0x2 * ((uint64_t)x19 * x67)) + ((0x2 * ((uint64_t)x21 * x65)) + ((0x2 * ((uint64_t)x23 * x63)) + ((0x2 * ((uint64_t)x25 * x61)) + ((0x2 * ((uint64_t)x27 * x59)) + ((0x2 * ((uint64_t)x29 * x57)) + (((uint64_t)x31 * x55) + ((0x2 * ((uint64_t)x33 * x53)) + ((0x2 * ((uint64_t)x35 * x51)) + ((0x2 * ((uint64_t)x37 * x49)) + ((uint64_t)x39 * x47)))))))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x41 * x86)) + ((0x2 * ((uint64_t)x43 * x87)) + ((0x2 * ((uint64_t)x45 * x85)) + (0x2 * ((uint64_t)x44 * x83)))))));
+ uint64_t x93 = ((((uint64_t)x5 * x79) + ((0x2 * ((uint64_t)x7 * x77)) + ((0x2 * ((uint64_t)x9 * x75)) + (((uint64_t)x11 * x73) + (((uint64_t)x13 * x71) + ((0x2 * ((uint64_t)x15 * x69)) + ((0x2 * ((uint64_t)x17 * x67)) + ((0x2 * ((uint64_t)x19 * x65)) + (((uint64_t)x21 * x63) + ((0x2 * ((uint64_t)x23 * x61)) + ((0x2 * ((uint64_t)x25 * x59)) + ((0x2 * ((uint64_t)x27 * x57)) + (((uint64_t)x29 * x55) + (((uint64_t)x31 * x53) + ((0x2 * ((uint64_t)x33 * x51)) + ((0x2 * ((uint64_t)x35 * x49)) + ((uint64_t)x37 * x47))))))))))))))))) + (0xbb * (((uint64_t)x39 * x86) + ((0x2 * ((uint64_t)x41 * x87)) + ((0x2 * ((uint64_t)x43 * x85)) + ((0x2 * ((uint64_t)x45 * x83)) + ((uint64_t)x44 * x81)))))));
+ uint64_t x94 = ((((uint64_t)x5 * x77) + ((0x2 * ((uint64_t)x7 * x75)) + (((uint64_t)x9 * x73) + (((uint64_t)x11 * x71) + (((uint64_t)x13 * x69) + ((0x2 * ((uint64_t)x15 * x67)) + ((0x2 * ((uint64_t)x17 * x65)) + (((uint64_t)x19 * x63) + (((uint64_t)x21 * x61) + ((0x2 * ((uint64_t)x23 * x59)) + ((0x2 * ((uint64_t)x25 * x57)) + (((uint64_t)x27 * x55) + (((uint64_t)x29 * x53) + (((uint64_t)x31 * x51) + ((0x2 * ((uint64_t)x33 * x49)) + ((uint64_t)x35 * x47)))))))))))))))) + (0xbb * (((uint64_t)x37 * x86) + (((uint64_t)x39 * x87) + ((0x2 * ((uint64_t)x41 * x85)) + ((0x2 * ((uint64_t)x43 * x83)) + (((uint64_t)x45 * x81) + ((uint64_t)x44 * x79))))))));
+ uint64_t x95 = ((((uint64_t)x5 * x75) + (((uint64_t)x7 * x73) + (((uint64_t)x9 * x71) + (((uint64_t)x11 * x69) + (((uint64_t)x13 * x67) + ((0x2 * ((uint64_t)x15 * x65)) + (((uint64_t)x17 * x63) + (((uint64_t)x19 * x61) + (((uint64_t)x21 * x59) + ((0x2 * ((uint64_t)x23 * x57)) + (((uint64_t)x25 * x55) + (((uint64_t)x27 * x53) + (((uint64_t)x29 * x51) + (((uint64_t)x31 * x49) + ((uint64_t)x33 * x47))))))))))))))) + (0xbb * (((uint64_t)x35 * x86) + (((uint64_t)x37 * x87) + (((uint64_t)x39 * x85) + ((0x2 * ((uint64_t)x41 * x83)) + (((uint64_t)x43 * x81) + (((uint64_t)x45 * x79) + ((uint64_t)x44 * x77)))))))));
+ uint64_t x96 = ((((uint64_t)x5 * x73) + ((0x2 * ((uint64_t)x7 * x71)) + ((0x2 * ((uint64_t)x9 * x69)) + ((0x2 * ((uint64_t)x11 * x67)) + ((0x2 * ((uint64_t)x13 * x65)) + ((0x2 * ((uint64_t)x15 * x63)) + ((0x2 * ((uint64_t)x17 * x61)) + ((0x2 * ((uint64_t)x19 * x59)) + ((0x2 * ((uint64_t)x21 * x57)) + ((0x2 * ((uint64_t)x23 * x55)) + ((0x2 * ((uint64_t)x25 * x53)) + ((0x2 * ((uint64_t)x27 * x51)) + ((0x2 * ((uint64_t)x29 * x49)) + ((uint64_t)x31 * x47)))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x33 * x86)) + ((0x2 * ((uint64_t)x35 * x87)) + ((0x2 * ((uint64_t)x37 * x85)) + ((0x2 * ((uint64_t)x39 * x83)) + ((0x2 * ((uint64_t)x41 * x81)) + ((0x2 * ((uint64_t)x43 * x79)) + ((0x2 * ((uint64_t)x45 * x77)) + (0x2 * ((uint64_t)x44 * x75)))))))))));
+ uint64_t x97 = ((((uint64_t)x5 * x71) + ((0x2 * ((uint64_t)x7 * x69)) + ((0x2 * ((uint64_t)x9 * x67)) + ((0x2 * ((uint64_t)x11 * x65)) + (((uint64_t)x13 * x63) + ((0x2 * ((uint64_t)x15 * x61)) + ((0x2 * ((uint64_t)x17 * x59)) + ((0x2 * ((uint64_t)x19 * x57)) + (((uint64_t)x21 * x55) + ((0x2 * ((uint64_t)x23 * x53)) + ((0x2 * ((uint64_t)x25 * x51)) + ((0x2 * ((uint64_t)x27 * x49)) + ((uint64_t)x29 * x47))))))))))))) + (0xbb * (((uint64_t)x31 * x86) + ((0x2 * ((uint64_t)x33 * x87)) + ((0x2 * ((uint64_t)x35 * x85)) + ((0x2 * ((uint64_t)x37 * x83)) + (((uint64_t)x39 * x81) + ((0x2 * ((uint64_t)x41 * x79)) + ((0x2 * ((uint64_t)x43 * x77)) + ((0x2 * ((uint64_t)x45 * x75)) + ((uint64_t)x44 * x73)))))))))));
+ uint64_t x98 = ((((uint64_t)x5 * x69) + ((0x2 * ((uint64_t)x7 * x67)) + ((0x2 * ((uint64_t)x9 * x65)) + (((uint64_t)x11 * x63) + (((uint64_t)x13 * x61) + ((0x2 * ((uint64_t)x15 * x59)) + ((0x2 * ((uint64_t)x17 * x57)) + (((uint64_t)x19 * x55) + (((uint64_t)x21 * x53) + ((0x2 * ((uint64_t)x23 * x51)) + ((0x2 * ((uint64_t)x25 * x49)) + ((uint64_t)x27 * x47)))))))))))) + (0xbb * (((uint64_t)x29 * x86) + (((uint64_t)x31 * x87) + ((0x2 * ((uint64_t)x33 * x85)) + ((0x2 * ((uint64_t)x35 * x83)) + (((uint64_t)x37 * x81) + (((uint64_t)x39 * x79) + ((0x2 * ((uint64_t)x41 * x77)) + ((0x2 * ((uint64_t)x43 * x75)) + (((uint64_t)x45 * x73) + ((uint64_t)x44 * x71))))))))))));
+ uint64_t x99 = ((((uint64_t)x5 * x67) + ((0x2 * ((uint64_t)x7 * x65)) + (((uint64_t)x9 * x63) + (((uint64_t)x11 * x61) + (((uint64_t)x13 * x59) + ((0x2 * ((uint64_t)x15 * x57)) + (((uint64_t)x17 * x55) + (((uint64_t)x19 * x53) + (((uint64_t)x21 * x51) + ((0x2 * ((uint64_t)x23 * x49)) + ((uint64_t)x25 * x47))))))))))) + (0xbb * (((uint64_t)x27 * x86) + (((uint64_t)x29 * x87) + (((uint64_t)x31 * x85) + ((0x2 * ((uint64_t)x33 * x83)) + (((uint64_t)x35 * x81) + (((uint64_t)x37 * x79) + (((uint64_t)x39 * x77) + ((0x2 * ((uint64_t)x41 * x75)) + (((uint64_t)x43 * x73) + (((uint64_t)x45 * x71) + ((uint64_t)x44 * x69)))))))))))));
+ uint64_t x100 = ((((uint64_t)x5 * x65) + (((uint64_t)x7 * x63) + (((uint64_t)x9 * x61) + (((uint64_t)x11 * x59) + (((uint64_t)x13 * x57) + (((uint64_t)x15 * x55) + (((uint64_t)x17 * x53) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + ((uint64_t)x23 * x47)))))))))) + (0xbb * (((uint64_t)x25 * x86) + (((uint64_t)x27 * x87) + (((uint64_t)x29 * x85) + (((uint64_t)x31 * x83) + (((uint64_t)x33 * x81) + (((uint64_t)x35 * x79) + (((uint64_t)x37 * x77) + (((uint64_t)x39 * x75) + (((uint64_t)x41 * x73) + (((uint64_t)x43 * x71) + (((uint64_t)x45 * x69) + ((uint64_t)x44 * x67))))))))))))));
+ uint64_t x101 = ((((uint64_t)x5 * x63) + ((0x2 * ((uint64_t)x7 * x61)) + ((0x2 * ((uint64_t)x9 * x59)) + ((0x2 * ((uint64_t)x11 * x57)) + (((uint64_t)x13 * x55) + ((0x2 * ((uint64_t)x15 * x53)) + ((0x2 * ((uint64_t)x17 * x51)) + ((0x2 * ((uint64_t)x19 * x49)) + ((uint64_t)x21 * x47))))))))) + (0xbb * ((0x2 * ((uint64_t)x23 * x86)) + ((0x2 * ((uint64_t)x25 * x87)) + ((0x2 * ((uint64_t)x27 * x85)) + ((0x2 * ((uint64_t)x29 * x83)) + (((uint64_t)x31 * x81) + ((0x2 * ((uint64_t)x33 * x79)) + ((0x2 * ((uint64_t)x35 * x77)) + ((0x2 * ((uint64_t)x37 * x75)) + (((uint64_t)x39 * x73) + ((0x2 * ((uint64_t)x41 * x71)) + ((0x2 * ((uint64_t)x43 * x69)) + ((0x2 * ((uint64_t)x45 * x67)) + (0x2 * ((uint64_t)x44 * x65))))))))))))))));
+ uint64_t x102 = ((((uint64_t)x5 * x61) + ((0x2 * ((uint64_t)x7 * x59)) + ((0x2 * ((uint64_t)x9 * x57)) + (((uint64_t)x11 * x55) + (((uint64_t)x13 * x53) + ((0x2 * ((uint64_t)x15 * x51)) + ((0x2 * ((uint64_t)x17 * x49)) + ((uint64_t)x19 * x47)))))))) + (0xbb * (((uint64_t)x21 * x86) + ((0x2 * ((uint64_t)x23 * x87)) + ((0x2 * ((uint64_t)x25 * x85)) + ((0x2 * ((uint64_t)x27 * x83)) + (((uint64_t)x29 * x81) + (((uint64_t)x31 * x79) + ((0x2 * ((uint64_t)x33 * x77)) + ((0x2 * ((uint64_t)x35 * x75)) + (((uint64_t)x37 * x73) + (((uint64_t)x39 * x71) + ((0x2 * ((uint64_t)x41 * x69)) + ((0x2 * ((uint64_t)x43 * x67)) + ((0x2 * ((uint64_t)x45 * x65)) + ((uint64_t)x44 * x63))))))))))))))));
+ uint64_t x103 = ((((uint64_t)x5 * x59) + ((0x2 * ((uint64_t)x7 * x57)) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + ((0x2 * ((uint64_t)x15 * x49)) + ((uint64_t)x17 * x47))))))) + (0xbb * (((uint64_t)x19 * x86) + (((uint64_t)x21 * x87) + ((0x2 * ((uint64_t)x23 * x85)) + ((0x2 * ((uint64_t)x25 * x83)) + (((uint64_t)x27 * x81) + (((uint64_t)x29 * x79) + (((uint64_t)x31 * x77) + ((0x2 * ((uint64_t)x33 * x75)) + (((uint64_t)x35 * x73) + (((uint64_t)x37 * x71) + (((uint64_t)x39 * x69) + ((0x2 * ((uint64_t)x41 * x67)) + ((0x2 * ((uint64_t)x43 * x65)) + (((uint64_t)x45 * x63) + ((uint64_t)x44 * x61)))))))))))))))));
+ uint64_t x104 = ((((uint64_t)x5 * x57) + (((uint64_t)x7 * x55) + (((uint64_t)x9 * x53) + (((uint64_t)x11 * x51) + (((uint64_t)x13 * x49) + ((uint64_t)x15 * x47)))))) + (0xbb * (((uint64_t)x17 * x86) + (((uint64_t)x19 * x87) + (((uint64_t)x21 * x85) + ((0x2 * ((uint64_t)x23 * x83)) + (((uint64_t)x25 * x81) + (((uint64_t)x27 * x79) + (((uint64_t)x29 * x77) + (((uint64_t)x31 * x75) + (((uint64_t)x33 * x73) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + (((uint64_t)x39 * x67) + ((0x2 * ((uint64_t)x41 * x65)) + (((uint64_t)x43 * x63) + (((uint64_t)x45 * x61) + ((uint64_t)x44 * x59))))))))))))))))));
+ uint64_t x105 = ((((uint64_t)x5 * x55) + ((0x2 * ((uint64_t)x7 * x53)) + ((0x2 * ((uint64_t)x9 * x51)) + ((0x2 * ((uint64_t)x11 * x49)) + ((uint64_t)x13 * x47))))) + (0xbb * ((0x2 * ((uint64_t)x15 * x86)) + ((0x2 * ((uint64_t)x17 * x87)) + ((0x2 * ((uint64_t)x19 * x85)) + ((0x2 * ((uint64_t)x21 * x83)) + ((0x2 * ((uint64_t)x23 * x81)) + ((0x2 * ((uint64_t)x25 * x79)) + ((0x2 * ((uint64_t)x27 * x77)) + ((0x2 * ((uint64_t)x29 * x75)) + (((uint64_t)x31 * x73) + ((0x2 * ((uint64_t)x33 * x71)) + ((0x2 * ((uint64_t)x35 * x69)) + ((0x2 * ((uint64_t)x37 * x67)) + ((0x2 * ((uint64_t)x39 * x65)) + ((0x2 * ((uint64_t)x41 * x63)) + ((0x2 * ((uint64_t)x43 * x61)) + ((0x2 * ((uint64_t)x45 * x59)) + (0x2 * ((uint64_t)x44 * x57))))))))))))))))))));
+ uint64_t x106 = ((((uint64_t)x5 * x53) + ((0x2 * ((uint64_t)x7 * x51)) + ((0x2 * ((uint64_t)x9 * x49)) + ((uint64_t)x11 * x47)))) + (0xbb * (((uint64_t)x13 * x86) + ((0x2 * ((uint64_t)x15 * x87)) + ((0x2 * ((uint64_t)x17 * x85)) + ((0x2 * ((uint64_t)x19 * x83)) + (((uint64_t)x21 * x81) + ((0x2 * ((uint64_t)x23 * x79)) + ((0x2 * ((uint64_t)x25 * x77)) + ((0x2 * ((uint64_t)x27 * x75)) + (((uint64_t)x29 * x73) + (((uint64_t)x31 * x71) + ((0x2 * ((uint64_t)x33 * x69)) + ((0x2 * ((uint64_t)x35 * x67)) + ((0x2 * ((uint64_t)x37 * x65)) + (((uint64_t)x39 * x63) + ((0x2 * ((uint64_t)x41 * x61)) + ((0x2 * ((uint64_t)x43 * x59)) + ((0x2 * ((uint64_t)x45 * x57)) + ((uint64_t)x44 * x55))))))))))))))))))));
+ uint64_t x107 = ((((uint64_t)x5 * x51) + ((0x2 * ((uint64_t)x7 * x49)) + ((uint64_t)x9 * x47))) + (0xbb * (((uint64_t)x11 * x86) + (((uint64_t)x13 * x87) + ((0x2 * ((uint64_t)x15 * x85)) + ((0x2 * ((uint64_t)x17 * x83)) + (((uint64_t)x19 * x81) + (((uint64_t)x21 * x79) + ((0x2 * ((uint64_t)x23 * x77)) + ((0x2 * ((uint64_t)x25 * x75)) + (((uint64_t)x27 * x73) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + ((0x2 * ((uint64_t)x33 * x67)) + ((0x2 * ((uint64_t)x35 * x65)) + (((uint64_t)x37 * x63) + (((uint64_t)x39 * x61) + ((0x2 * ((uint64_t)x41 * x59)) + ((0x2 * ((uint64_t)x43 * x57)) + (((uint64_t)x45 * x55) + ((uint64_t)x44 * x53)))))))))))))))))))));
+ uint64_t x108 = ((((uint64_t)x5 * x49) + ((uint64_t)x7 * x47)) + (0xbb * (((uint64_t)x9 * x86) + (((uint64_t)x11 * x87) + (((uint64_t)x13 * x85) + ((0x2 * ((uint64_t)x15 * x83)) + (((uint64_t)x17 * x81) + (((uint64_t)x19 * x79) + (((uint64_t)x21 * x77) + ((0x2 * ((uint64_t)x23 * x75)) + (((uint64_t)x25 * x73) + (((uint64_t)x27 * x71) + (((uint64_t)x29 * x69) + (((uint64_t)x31 * x67) + ((0x2 * ((uint64_t)x33 * x65)) + (((uint64_t)x35 * x63) + (((uint64_t)x37 * x61) + (((uint64_t)x39 * x59) + ((0x2 * ((uint64_t)x41 * x57)) + (((uint64_t)x43 * x55) + (((uint64_t)x45 * x53) + ((uint64_t)x44 * x51))))))))))))))))))))));
+ uint64_t x109 = (((uint64_t)x5 * x47) + (0xbb * ((0x2 * ((uint64_t)x7 * x86)) + ((0x2 * ((uint64_t)x9 * x87)) + ((0x2 * ((uint64_t)x11 * x85)) + ((0x2 * ((uint64_t)x13 * x83)) + ((0x2 * ((uint64_t)x15 * x81)) + ((0x2 * ((uint64_t)x17 * x79)) + ((0x2 * ((uint64_t)x19 * x77)) + ((0x2 * ((uint64_t)x21 * x75)) + ((0x2 * ((uint64_t)x23 * x73)) + ((0x2 * ((uint64_t)x25 * x71)) + ((0x2 * ((uint64_t)x27 * x69)) + ((0x2 * ((uint64_t)x29 * x67)) + ((0x2 * ((uint64_t)x31 * x65)) + ((0x2 * ((uint64_t)x33 * x63)) + ((0x2 * ((uint64_t)x35 * x61)) + ((0x2 * ((uint64_t)x37 * x59)) + ((0x2 * ((uint64_t)x39 * x57)) + ((0x2 * ((uint64_t)x41 * x55)) + ((0x2 * ((uint64_t)x43 * x53)) + ((0x2 * ((uint64_t)x45 * x51)) + (0x2 * ((uint64_t)x44 * x49))))))))))))))))))))))));
+ uint64_t x110 = (x109 >> 0x18);
+ uint32_t x111 = ((uint32_t)x109 & 0xffffff);
+ uint64_t x112 = (x110 + x108);
+ uint64_t x113 = (x112 >> 0x17);
+ uint32_t x114 = ((uint32_t)x112 & 0x7fffff);
+ uint64_t x115 = (x113 + x107);
+ uint64_t x116 = (x115 >> 0x17);
+ uint32_t x117 = ((uint32_t)x115 & 0x7fffff);
+ uint64_t x118 = (x116 + x106);
+ uint64_t x119 = (x118 >> 0x17);
+ uint32_t x120 = ((uint32_t)x118 & 0x7fffff);
+ uint64_t x121 = (x119 + x105);
+ uint64_t x122 = (x121 >> 0x18);
+ uint32_t x123 = ((uint32_t)x121 & 0xffffff);
+ uint64_t x124 = (x122 + x104);
+ uint64_t x125 = (x124 >> 0x17);
+ uint32_t x126 = ((uint32_t)x124 & 0x7fffff);
+ uint64_t x127 = (x125 + x103);
+ uint64_t x128 = (x127 >> 0x17);
+ uint32_t x129 = ((uint32_t)x127 & 0x7fffff);
+ uint64_t x130 = (x128 + x102);
+ uint64_t x131 = (x130 >> 0x17);
+ uint32_t x132 = ((uint32_t)x130 & 0x7fffff);
+ uint64_t x133 = (x131 + x101);
+ uint64_t x134 = (x133 >> 0x18);
+ uint32_t x135 = ((uint32_t)x133 & 0xffffff);
+ uint64_t x136 = (x134 + x100);
+ uint64_t x137 = (x136 >> 0x17);
+ uint32_t x138 = ((uint32_t)x136 & 0x7fffff);
+ uint64_t x139 = (x137 + x99);
+ uint64_t x140 = (x139 >> 0x17);
+ uint32_t x141 = ((uint32_t)x139 & 0x7fffff);
+ uint64_t x142 = (x140 + x98);
+ uint64_t x143 = (x142 >> 0x17);
+ uint32_t x144 = ((uint32_t)x142 & 0x7fffff);
+ uint64_t x145 = (x143 + x97);
+ uint64_t x146 = (x145 >> 0x17);
+ uint32_t x147 = ((uint32_t)x145 & 0x7fffff);
+ uint64_t x148 = (x146 + x96);
+ uint64_t x149 = (x148 >> 0x18);
+ uint32_t x150 = ((uint32_t)x148 & 0xffffff);
+ uint64_t x151 = (x149 + x95);
+ uint64_t x152 = (x151 >> 0x17);
+ uint32_t x153 = ((uint32_t)x151 & 0x7fffff);
+ uint64_t x154 = (x152 + x94);
+ uint64_t x155 = (x154 >> 0x17);
+ uint32_t x156 = ((uint32_t)x154 & 0x7fffff);
+ uint64_t x157 = (x155 + x93);
+ uint64_t x158 = (x157 >> 0x17);
+ uint32_t x159 = ((uint32_t)x157 & 0x7fffff);
+ uint64_t x160 = (x158 + x92);
+ uint64_t x161 = (x160 >> 0x18);
+ uint32_t x162 = ((uint32_t)x160 & 0xffffff);
+ uint64_t x163 = (x161 + x91);
+ uint64_t x164 = (x163 >> 0x17);
+ uint32_t x165 = ((uint32_t)x163 & 0x7fffff);
+ uint64_t x166 = (x164 + x90);
+ uint64_t x167 = (x166 >> 0x17);
+ uint32_t x168 = ((uint32_t)x166 & 0x7fffff);
+ uint64_t x169 = (x167 + x89);
+ uint64_t x170 = (x169 >> 0x17);
+ uint32_t x171 = ((uint32_t)x169 & 0x7fffff);
+ uint64_t x172 = (x170 + x88);
+ uint64_t x173 = (x172 >> 0x17);
+ uint32_t x174 = ((uint32_t)x172 & 0x7fffff);
+ uint64_t x175 = (x111 + (0xbb * x173));
+ uint32_t x176 = (uint32_t) (x175 >> 0x18);
+ uint32_t x177 = ((uint32_t)x175 & 0xffffff);
+ uint32_t x178 = (x176 + x114);
+ uint32_t x179 = (x178 >> 0x17);
+ uint32_t x180 = (x178 & 0x7fffff);
+ return (Return x174, Return x171, Return x168, Return x165, Return x162, Return x159, Return x156, Return x153, Return x150, Return x147, Return x144, Return x141, Return x138, Return x135, Return x132, Return x129, Return x126, Return x123, Return x120, (x179 + x117), Return x180, Return x177))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_22limbs/fesquare.c b/src/Specific/solinas32_2e511m187_22limbs/fesquare.c
new file mode 100644
index 000000000..c2be3c759
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/fesquare.c
@@ -0,0 +1,140 @@
+static void fesquare(uint32_t out[22], const uint32_t in1[22]) {
+ { const uint32_t x41 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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 x43 = (((uint64_t)x2 * x41) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + ((0x2 * ((uint64_t)x8 * x38)) + (((uint64_t)x10 * x36) + ((0x2 * ((uint64_t)x12 * x34)) + ((0x2 * ((uint64_t)x14 * x32)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + ((0x2 * ((uint64_t)x32 * x14)) + ((0x2 * ((uint64_t)x34 * x12)) + (((uint64_t)x36 * x10) + ((0x2 * ((uint64_t)x38 * x8)) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x41 * x2))))))))))))))))))))));
+ { uint64_t x44 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + ((0x2 * ((uint64_t)x6 * x38)) + (((uint64_t)x8 * x36) + (((uint64_t)x10 * x34) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (((uint64_t)x34 * x10) + (((uint64_t)x36 * x8) + ((0x2 * ((uint64_t)x38 * x6)) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0xbb * ((uint64_t)x41 * x41)));
+ { uint64_t x45 = ((((uint64_t)x2 * x40) + ((0x2 * ((uint64_t)x4 * x38)) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + ((0x2 * ((uint64_t)x38 * x4)) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0xbb * (((uint64_t)x42 * x41) + ((uint64_t)x41 * x42))));
+ { uint64_t x46 = ((((uint64_t)x2 * x38) + (((uint64_t)x4 * x36) + (((uint64_t)x6 * x34) + (((uint64_t)x8 * x32) + (((uint64_t)x10 * x30) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + (((uint64_t)x30 * x10) + (((uint64_t)x32 * x8) + (((uint64_t)x34 * x6) + (((uint64_t)x36 * x4) + ((uint64_t)x38 * x2))))))))))))))))))) + (0xbb * (((uint64_t)x40 * x41) + (((uint64_t)x42 * x42) + ((uint64_t)x41 * x40)))));
+ { uint64_t x47 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + (((uint64_t)x10 * x28) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + (((uint64_t)x28 * x10) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x38 * x41)) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (0x2 * ((uint64_t)x41 * x38)))))));
+ { uint64_t x48 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0xbb * (((uint64_t)x36 * x41) + ((0x2 * ((uint64_t)x38 * x42)) + ((0x2 * ((uint64_t)x40 * x40)) + ((0x2 * ((uint64_t)x42 * x38)) + ((uint64_t)x41 * x36)))))));
+ { uint64_t x49 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0xbb * (((uint64_t)x34 * x41) + (((uint64_t)x36 * x42) + ((0x2 * ((uint64_t)x38 * x40)) + ((0x2 * ((uint64_t)x40 * x38)) + (((uint64_t)x42 * x36) + ((uint64_t)x41 * x34))))))));
+ { uint64_t x50 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + ((0x2 * ((uint64_t)x12 * x20)) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + ((0x2 * ((uint64_t)x20 * x12)) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0xbb * (((uint64_t)x32 * x41) + (((uint64_t)x34 * x42) + (((uint64_t)x36 * x40) + ((0x2 * ((uint64_t)x38 * x38)) + (((uint64_t)x40 * x36) + (((uint64_t)x42 * x34) + ((uint64_t)x41 * x32)))))))));
+ { uint64_t x51 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x30 * x41)) + ((0x2 * ((uint64_t)x32 * x42)) + ((0x2 * ((uint64_t)x34 * x40)) + ((0x2 * ((uint64_t)x36 * x38)) + ((0x2 * ((uint64_t)x38 * x36)) + ((0x2 * ((uint64_t)x40 * x34)) + ((0x2 * ((uint64_t)x42 * x32)) + (0x2 * ((uint64_t)x41 * x30)))))))))));
+ { uint64_t x52 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + ((0x2 * ((uint64_t)x8 * x20)) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + ((0x2 * ((uint64_t)x20 * x8)) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0xbb * (((uint64_t)x28 * x41) + ((0x2 * ((uint64_t)x30 * x42)) + ((0x2 * ((uint64_t)x32 * x40)) + ((0x2 * ((uint64_t)x34 * x38)) + (((uint64_t)x36 * x36) + ((0x2 * ((uint64_t)x38 * x34)) + ((0x2 * ((uint64_t)x40 * x32)) + ((0x2 * ((uint64_t)x42 * x30)) + ((uint64_t)x41 * x28)))))))))));
+ { uint64_t x53 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((0x2 * ((uint64_t)x6 * x20)) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + ((0x2 * ((uint64_t)x20 * x6)) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0xbb * (((uint64_t)x26 * x41) + (((uint64_t)x28 * x42) + ((0x2 * ((uint64_t)x30 * x40)) + ((0x2 * ((uint64_t)x32 * x38)) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + ((0x2 * ((uint64_t)x38 * x32)) + ((0x2 * ((uint64_t)x40 * x30)) + (((uint64_t)x42 * x28) + ((uint64_t)x41 * x26))))))))))));
+ { uint64_t x54 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0xbb * (((uint64_t)x24 * x41) + (((uint64_t)x26 * x42) + (((uint64_t)x28 * x40) + ((0x2 * ((uint64_t)x30 * x38)) + (((uint64_t)x32 * x36) + (((uint64_t)x34 * x34) + (((uint64_t)x36 * x32) + ((0x2 * ((uint64_t)x38 * x30)) + (((uint64_t)x40 * x28) + (((uint64_t)x42 * x26) + ((uint64_t)x41 * x24)))))))))))));
+ { uint64_t x55 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0xbb * (((uint64_t)x22 * x41) + (((uint64_t)x24 * x42) + (((uint64_t)x26 * x40) + (((uint64_t)x28 * x38) + (((uint64_t)x30 * x36) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + (((uint64_t)x36 * x30) + (((uint64_t)x38 * x28) + (((uint64_t)x40 * x26) + (((uint64_t)x42 * x24) + ((uint64_t)x41 * x22))))))))))))));
+ { uint64_t x56 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0xbb * ((0x2 * ((uint64_t)x20 * x41)) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + ((0x2 * ((uint64_t)x26 * x38)) + (((uint64_t)x28 * x36) + ((0x2 * ((uint64_t)x30 * x34)) + ((0x2 * ((uint64_t)x32 * x32)) + ((0x2 * ((uint64_t)x34 * x30)) + (((uint64_t)x36 * x28) + ((0x2 * ((uint64_t)x38 * x26)) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (0x2 * ((uint64_t)x41 * x20))))))))))))))));
+ { uint64_t x57 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (0xbb * (((uint64_t)x18 * x41) + ((0x2 * ((uint64_t)x20 * x42)) + ((0x2 * ((uint64_t)x22 * x40)) + ((0x2 * ((uint64_t)x24 * x38)) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + ((0x2 * ((uint64_t)x38 * x24)) + ((0x2 * ((uint64_t)x40 * x22)) + ((0x2 * ((uint64_t)x42 * x20)) + ((uint64_t)x41 * x18))))))))))))))));
+ { uint64_t x58 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0xbb * (((uint64_t)x16 * x41) + (((uint64_t)x18 * x42) + ((0x2 * ((uint64_t)x20 * x40)) + ((0x2 * ((uint64_t)x22 * x38)) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + ((0x2 * ((uint64_t)x38 * x22)) + ((0x2 * ((uint64_t)x40 * x20)) + (((uint64_t)x42 * x18) + ((uint64_t)x41 * x16)))))))))))))))));
+ { uint64_t x59 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0xbb * (((uint64_t)x14 * x41) + (((uint64_t)x16 * x42) + (((uint64_t)x18 * x40) + ((0x2 * ((uint64_t)x20 * x38)) + (((uint64_t)x22 * x36) + (((uint64_t)x24 * x34) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + (((uint64_t)x34 * x24) + (((uint64_t)x36 * x22) + ((0x2 * ((uint64_t)x38 * x20)) + (((uint64_t)x40 * x18) + (((uint64_t)x42 * x16) + ((uint64_t)x41 * x14))))))))))))))))));
+ { uint64_t x60 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0xbb * ((0x2 * ((uint64_t)x12 * x41)) + ((0x2 * ((uint64_t)x14 * x42)) + ((0x2 * ((uint64_t)x16 * x40)) + ((0x2 * ((uint64_t)x18 * x38)) + ((0x2 * ((uint64_t)x20 * x36)) + ((0x2 * ((uint64_t)x22 * x34)) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((0x2 * ((uint64_t)x34 * x22)) + ((0x2 * ((uint64_t)x36 * x20)) + ((0x2 * ((uint64_t)x38 * x18)) + ((0x2 * ((uint64_t)x40 * x16)) + ((0x2 * ((uint64_t)x42 * x14)) + (0x2 * ((uint64_t)x41 * x12))))))))))))))))))));
+ { uint64_t x61 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0xbb * (((uint64_t)x10 * x41) + ((0x2 * ((uint64_t)x12 * x42)) + ((0x2 * ((uint64_t)x14 * x40)) + ((0x2 * ((uint64_t)x16 * x38)) + (((uint64_t)x18 * x36) + ((0x2 * ((uint64_t)x20 * x34)) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + ((0x2 * ((uint64_t)x34 * x20)) + (((uint64_t)x36 * x18) + ((0x2 * ((uint64_t)x38 * x16)) + ((0x2 * ((uint64_t)x40 * x14)) + ((0x2 * ((uint64_t)x42 * x12)) + ((uint64_t)x41 * x10))))))))))))))))))));
+ { uint64_t x62 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0xbb * (((uint64_t)x8 * x41) + (((uint64_t)x10 * x42) + ((0x2 * ((uint64_t)x12 * x40)) + ((0x2 * ((uint64_t)x14 * x38)) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + ((0x2 * ((uint64_t)x20 * x32)) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + ((0x2 * ((uint64_t)x32 * x20)) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + ((0x2 * ((uint64_t)x38 * x14)) + ((0x2 * ((uint64_t)x40 * x12)) + (((uint64_t)x42 * x10) + ((uint64_t)x41 * x8)))))))))))))))))))));
+ { uint64_t x63 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0xbb * (((uint64_t)x6 * x41) + (((uint64_t)x8 * x42) + (((uint64_t)x10 * x40) + ((0x2 * ((uint64_t)x12 * x38)) + (((uint64_t)x14 * x36) + (((uint64_t)x16 * x34) + (((uint64_t)x18 * x32) + ((0x2 * ((uint64_t)x20 * x30)) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + ((0x2 * ((uint64_t)x30 * x20)) + (((uint64_t)x32 * x18) + (((uint64_t)x34 * x16) + (((uint64_t)x36 * x14) + ((0x2 * ((uint64_t)x38 * x12)) + (((uint64_t)x40 * x10) + (((uint64_t)x42 * x8) + ((uint64_t)x41 * x6))))))))))))))))))))));
+ { uint64_t x64 = (((uint64_t)x2 * x2) + (0xbb * ((0x2 * ((uint64_t)x4 * x41)) + ((0x2 * ((uint64_t)x6 * x42)) + ((0x2 * ((uint64_t)x8 * x40)) + ((0x2 * ((uint64_t)x10 * x38)) + ((0x2 * ((uint64_t)x12 * x36)) + ((0x2 * ((uint64_t)x14 * x34)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((0x2 * ((uint64_t)x34 * x14)) + ((0x2 * ((uint64_t)x36 * x12)) + ((0x2 * ((uint64_t)x38 * x10)) + ((0x2 * ((uint64_t)x40 * x8)) + ((0x2 * ((uint64_t)x42 * x6)) + (0x2 * ((uint64_t)x41 * x4))))))))))))))))))))))));
+ { uint64_t x65 = (x64 >> 0x18);
+ { uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ { uint64_t x67 = (x65 + x63);
+ { uint64_t x68 = (x67 >> 0x17);
+ { uint32_t x69 = ((uint32_t)x67 & 0x7fffff);
+ { uint64_t x70 = (x68 + x62);
+ { uint64_t x71 = (x70 >> 0x17);
+ { uint32_t x72 = ((uint32_t)x70 & 0x7fffff);
+ { uint64_t x73 = (x71 + x61);
+ { uint64_t x74 = (x73 >> 0x17);
+ { uint32_t x75 = ((uint32_t)x73 & 0x7fffff);
+ { uint64_t x76 = (x74 + x60);
+ { uint64_t x77 = (x76 >> 0x18);
+ { uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ { uint64_t x79 = (x77 + x59);
+ { uint64_t x80 = (x79 >> 0x17);
+ { uint32_t x81 = ((uint32_t)x79 & 0x7fffff);
+ { uint64_t x82 = (x80 + x58);
+ { uint64_t x83 = (x82 >> 0x17);
+ { uint32_t x84 = ((uint32_t)x82 & 0x7fffff);
+ { uint64_t x85 = (x83 + x57);
+ { uint64_t x86 = (x85 >> 0x17);
+ { uint32_t x87 = ((uint32_t)x85 & 0x7fffff);
+ { uint64_t x88 = (x86 + x56);
+ { uint64_t x89 = (x88 >> 0x18);
+ { uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ { uint64_t x91 = (x89 + x55);
+ { uint64_t x92 = (x91 >> 0x17);
+ { uint32_t x93 = ((uint32_t)x91 & 0x7fffff);
+ { uint64_t x94 = (x92 + x54);
+ { uint64_t x95 = (x94 >> 0x17);
+ { uint32_t x96 = ((uint32_t)x94 & 0x7fffff);
+ { uint64_t x97 = (x95 + x53);
+ { uint64_t x98 = (x97 >> 0x17);
+ { uint32_t x99 = ((uint32_t)x97 & 0x7fffff);
+ { uint64_t x100 = (x98 + x52);
+ { uint64_t x101 = (x100 >> 0x17);
+ { uint32_t x102 = ((uint32_t)x100 & 0x7fffff);
+ { uint64_t x103 = (x101 + x51);
+ { uint64_t x104 = (x103 >> 0x18);
+ { uint32_t x105 = ((uint32_t)x103 & 0xffffff);
+ { uint64_t x106 = (x104 + x50);
+ { uint64_t x107 = (x106 >> 0x17);
+ { uint32_t x108 = ((uint32_t)x106 & 0x7fffff);
+ { uint64_t x109 = (x107 + x49);
+ { uint64_t x110 = (x109 >> 0x17);
+ { uint32_t x111 = ((uint32_t)x109 & 0x7fffff);
+ { uint64_t x112 = (x110 + x48);
+ { uint64_t x113 = (x112 >> 0x17);
+ { uint32_t x114 = ((uint32_t)x112 & 0x7fffff);
+ { uint64_t x115 = (x113 + x47);
+ { uint64_t x116 = (x115 >> 0x18);
+ { uint32_t x117 = ((uint32_t)x115 & 0xffffff);
+ { uint64_t x118 = (x116 + x46);
+ { uint64_t x119 = (x118 >> 0x17);
+ { uint32_t x120 = ((uint32_t)x118 & 0x7fffff);
+ { uint64_t x121 = (x119 + x45);
+ { uint64_t x122 = (x121 >> 0x17);
+ { uint32_t x123 = ((uint32_t)x121 & 0x7fffff);
+ { uint64_t x124 = (x122 + x44);
+ { uint64_t x125 = (x124 >> 0x17);
+ { uint32_t x126 = ((uint32_t)x124 & 0x7fffff);
+ { uint64_t x127 = (x125 + x43);
+ { uint64_t x128 = (x127 >> 0x17);
+ { uint32_t x129 = ((uint32_t)x127 & 0x7fffff);
+ { uint64_t x130 = (x66 + (0xbb * x128));
+ { uint32_t x131 = (uint32_t) (x130 >> 0x18);
+ { uint32_t x132 = ((uint32_t)x130 & 0xffffff);
+ { uint32_t x133 = (x131 + x69);
+ { uint32_t x134 = (x133 >> 0x17);
+ { uint32_t x135 = (x133 & 0x7fffff);
+ out[0] = x132;
+ out[1] = x135;
+ out[2] = (x134 + x72);
+ out[3] = x75;
+ out[4] = x78;
+ out[5] = x81;
+ out[6] = x84;
+ out[7] = x87;
+ out[8] = x90;
+ out[9] = x93;
+ out[10] = x96;
+ out[11] = x99;
+ out[12] = x102;
+ out[13] = x105;
+ out[14] = x108;
+ out[15] = x111;
+ out[16] = x114;
+ out[17] = x117;
+ out[18] = x120;
+ out[19] = x123;
+ out[20] = x126;
+ out[21] = x129;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_22limbs/fesquareDisplay.log b/src/Specific/solinas32_2e511m187_22limbs/fesquareDisplay.log
new file mode 100644
index 000000000..6317d70a1
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/fesquareDisplay.log
@@ -0,0 +1,100 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x41, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x43 = (((uint64_t)x2 * x41) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + ((0x2 * ((uint64_t)x8 * x38)) + (((uint64_t)x10 * x36) + ((0x2 * ((uint64_t)x12 * x34)) + ((0x2 * ((uint64_t)x14 * x32)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + ((0x2 * ((uint64_t)x32 * x14)) + ((0x2 * ((uint64_t)x34 * x12)) + (((uint64_t)x36 * x10) + ((0x2 * ((uint64_t)x38 * x8)) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x41 * x2))))))))))))))))))))));
+ uint64_t x44 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + ((0x2 * ((uint64_t)x6 * x38)) + (((uint64_t)x8 * x36) + (((uint64_t)x10 * x34) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (((uint64_t)x34 * x10) + (((uint64_t)x36 * x8) + ((0x2 * ((uint64_t)x38 * x6)) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0xbb * ((uint64_t)x41 * x41)));
+ uint64_t x45 = ((((uint64_t)x2 * x40) + ((0x2 * ((uint64_t)x4 * x38)) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + ((0x2 * ((uint64_t)x38 * x4)) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0xbb * (((uint64_t)x42 * x41) + ((uint64_t)x41 * x42))));
+ uint64_t x46 = ((((uint64_t)x2 * x38) + (((uint64_t)x4 * x36) + (((uint64_t)x6 * x34) + (((uint64_t)x8 * x32) + (((uint64_t)x10 * x30) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + (((uint64_t)x30 * x10) + (((uint64_t)x32 * x8) + (((uint64_t)x34 * x6) + (((uint64_t)x36 * x4) + ((uint64_t)x38 * x2))))))))))))))))))) + (0xbb * (((uint64_t)x40 * x41) + (((uint64_t)x42 * x42) + ((uint64_t)x41 * x40)))));
+ uint64_t x47 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + (((uint64_t)x10 * x28) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + (((uint64_t)x28 * x10) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x38 * x41)) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (0x2 * ((uint64_t)x41 * x38)))))));
+ uint64_t x48 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0xbb * (((uint64_t)x36 * x41) + ((0x2 * ((uint64_t)x38 * x42)) + ((0x2 * ((uint64_t)x40 * x40)) + ((0x2 * ((uint64_t)x42 * x38)) + ((uint64_t)x41 * x36)))))));
+ uint64_t x49 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0xbb * (((uint64_t)x34 * x41) + (((uint64_t)x36 * x42) + ((0x2 * ((uint64_t)x38 * x40)) + ((0x2 * ((uint64_t)x40 * x38)) + (((uint64_t)x42 * x36) + ((uint64_t)x41 * x34))))))));
+ uint64_t x50 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + ((0x2 * ((uint64_t)x12 * x20)) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + ((0x2 * ((uint64_t)x20 * x12)) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0xbb * (((uint64_t)x32 * x41) + (((uint64_t)x34 * x42) + (((uint64_t)x36 * x40) + ((0x2 * ((uint64_t)x38 * x38)) + (((uint64_t)x40 * x36) + (((uint64_t)x42 * x34) + ((uint64_t)x41 * x32)))))))));
+ uint64_t x51 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x30 * x41)) + ((0x2 * ((uint64_t)x32 * x42)) + ((0x2 * ((uint64_t)x34 * x40)) + ((0x2 * ((uint64_t)x36 * x38)) + ((0x2 * ((uint64_t)x38 * x36)) + ((0x2 * ((uint64_t)x40 * x34)) + ((0x2 * ((uint64_t)x42 * x32)) + (0x2 * ((uint64_t)x41 * x30)))))))))));
+ uint64_t x52 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + ((0x2 * ((uint64_t)x8 * x20)) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + ((0x2 * ((uint64_t)x20 * x8)) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0xbb * (((uint64_t)x28 * x41) + ((0x2 * ((uint64_t)x30 * x42)) + ((0x2 * ((uint64_t)x32 * x40)) + ((0x2 * ((uint64_t)x34 * x38)) + (((uint64_t)x36 * x36) + ((0x2 * ((uint64_t)x38 * x34)) + ((0x2 * ((uint64_t)x40 * x32)) + ((0x2 * ((uint64_t)x42 * x30)) + ((uint64_t)x41 * x28)))))))))));
+ uint64_t x53 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((0x2 * ((uint64_t)x6 * x20)) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + ((0x2 * ((uint64_t)x20 * x6)) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0xbb * (((uint64_t)x26 * x41) + (((uint64_t)x28 * x42) + ((0x2 * ((uint64_t)x30 * x40)) + ((0x2 * ((uint64_t)x32 * x38)) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + ((0x2 * ((uint64_t)x38 * x32)) + ((0x2 * ((uint64_t)x40 * x30)) + (((uint64_t)x42 * x28) + ((uint64_t)x41 * x26))))))))))));
+ uint64_t x54 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0xbb * (((uint64_t)x24 * x41) + (((uint64_t)x26 * x42) + (((uint64_t)x28 * x40) + ((0x2 * ((uint64_t)x30 * x38)) + (((uint64_t)x32 * x36) + (((uint64_t)x34 * x34) + (((uint64_t)x36 * x32) + ((0x2 * ((uint64_t)x38 * x30)) + (((uint64_t)x40 * x28) + (((uint64_t)x42 * x26) + ((uint64_t)x41 * x24)))))))))))));
+ uint64_t x55 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0xbb * (((uint64_t)x22 * x41) + (((uint64_t)x24 * x42) + (((uint64_t)x26 * x40) + (((uint64_t)x28 * x38) + (((uint64_t)x30 * x36) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + (((uint64_t)x36 * x30) + (((uint64_t)x38 * x28) + (((uint64_t)x40 * x26) + (((uint64_t)x42 * x24) + ((uint64_t)x41 * x22))))))))))))));
+ uint64_t x56 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0xbb * ((0x2 * ((uint64_t)x20 * x41)) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + ((0x2 * ((uint64_t)x26 * x38)) + (((uint64_t)x28 * x36) + ((0x2 * ((uint64_t)x30 * x34)) + ((0x2 * ((uint64_t)x32 * x32)) + ((0x2 * ((uint64_t)x34 * x30)) + (((uint64_t)x36 * x28) + ((0x2 * ((uint64_t)x38 * x26)) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (0x2 * ((uint64_t)x41 * x20))))))))))))))));
+ uint64_t x57 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (0xbb * (((uint64_t)x18 * x41) + ((0x2 * ((uint64_t)x20 * x42)) + ((0x2 * ((uint64_t)x22 * x40)) + ((0x2 * ((uint64_t)x24 * x38)) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + ((0x2 * ((uint64_t)x38 * x24)) + ((0x2 * ((uint64_t)x40 * x22)) + ((0x2 * ((uint64_t)x42 * x20)) + ((uint64_t)x41 * x18))))))))))))))));
+ uint64_t x58 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0xbb * (((uint64_t)x16 * x41) + (((uint64_t)x18 * x42) + ((0x2 * ((uint64_t)x20 * x40)) + ((0x2 * ((uint64_t)x22 * x38)) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + ((0x2 * ((uint64_t)x38 * x22)) + ((0x2 * ((uint64_t)x40 * x20)) + (((uint64_t)x42 * x18) + ((uint64_t)x41 * x16)))))))))))))))));
+ uint64_t x59 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0xbb * (((uint64_t)x14 * x41) + (((uint64_t)x16 * x42) + (((uint64_t)x18 * x40) + ((0x2 * ((uint64_t)x20 * x38)) + (((uint64_t)x22 * x36) + (((uint64_t)x24 * x34) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + (((uint64_t)x34 * x24) + (((uint64_t)x36 * x22) + ((0x2 * ((uint64_t)x38 * x20)) + (((uint64_t)x40 * x18) + (((uint64_t)x42 * x16) + ((uint64_t)x41 * x14))))))))))))))))));
+ uint64_t x60 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0xbb * ((0x2 * ((uint64_t)x12 * x41)) + ((0x2 * ((uint64_t)x14 * x42)) + ((0x2 * ((uint64_t)x16 * x40)) + ((0x2 * ((uint64_t)x18 * x38)) + ((0x2 * ((uint64_t)x20 * x36)) + ((0x2 * ((uint64_t)x22 * x34)) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((0x2 * ((uint64_t)x34 * x22)) + ((0x2 * ((uint64_t)x36 * x20)) + ((0x2 * ((uint64_t)x38 * x18)) + ((0x2 * ((uint64_t)x40 * x16)) + ((0x2 * ((uint64_t)x42 * x14)) + (0x2 * ((uint64_t)x41 * x12))))))))))))))))))));
+ uint64_t x61 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0xbb * (((uint64_t)x10 * x41) + ((0x2 * ((uint64_t)x12 * x42)) + ((0x2 * ((uint64_t)x14 * x40)) + ((0x2 * ((uint64_t)x16 * x38)) + (((uint64_t)x18 * x36) + ((0x2 * ((uint64_t)x20 * x34)) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + ((0x2 * ((uint64_t)x34 * x20)) + (((uint64_t)x36 * x18) + ((0x2 * ((uint64_t)x38 * x16)) + ((0x2 * ((uint64_t)x40 * x14)) + ((0x2 * ((uint64_t)x42 * x12)) + ((uint64_t)x41 * x10))))))))))))))))))));
+ uint64_t x62 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0xbb * (((uint64_t)x8 * x41) + (((uint64_t)x10 * x42) + ((0x2 * ((uint64_t)x12 * x40)) + ((0x2 * ((uint64_t)x14 * x38)) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + ((0x2 * ((uint64_t)x20 * x32)) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + ((0x2 * ((uint64_t)x32 * x20)) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + ((0x2 * ((uint64_t)x38 * x14)) + ((0x2 * ((uint64_t)x40 * x12)) + (((uint64_t)x42 * x10) + ((uint64_t)x41 * x8)))))))))))))))))))));
+ uint64_t x63 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0xbb * (((uint64_t)x6 * x41) + (((uint64_t)x8 * x42) + (((uint64_t)x10 * x40) + ((0x2 * ((uint64_t)x12 * x38)) + (((uint64_t)x14 * x36) + (((uint64_t)x16 * x34) + (((uint64_t)x18 * x32) + ((0x2 * ((uint64_t)x20 * x30)) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + ((0x2 * ((uint64_t)x30 * x20)) + (((uint64_t)x32 * x18) + (((uint64_t)x34 * x16) + (((uint64_t)x36 * x14) + ((0x2 * ((uint64_t)x38 * x12)) + (((uint64_t)x40 * x10) + (((uint64_t)x42 * x8) + ((uint64_t)x41 * x6))))))))))))))))))))));
+ uint64_t x64 = (((uint64_t)x2 * x2) + (0xbb * ((0x2 * ((uint64_t)x4 * x41)) + ((0x2 * ((uint64_t)x6 * x42)) + ((0x2 * ((uint64_t)x8 * x40)) + ((0x2 * ((uint64_t)x10 * x38)) + ((0x2 * ((uint64_t)x12 * x36)) + ((0x2 * ((uint64_t)x14 * x34)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((0x2 * ((uint64_t)x34 * x14)) + ((0x2 * ((uint64_t)x36 * x12)) + ((0x2 * ((uint64_t)x38 * x10)) + ((0x2 * ((uint64_t)x40 * x8)) + ((0x2 * ((uint64_t)x42 * x6)) + (0x2 * ((uint64_t)x41 * x4))))))))))))))))))))))));
+ uint64_t x65 = (x64 >> 0x18);
+ uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ uint64_t x67 = (x65 + x63);
+ uint64_t x68 = (x67 >> 0x17);
+ uint32_t x69 = ((uint32_t)x67 & 0x7fffff);
+ uint64_t x70 = (x68 + x62);
+ uint64_t x71 = (x70 >> 0x17);
+ uint32_t x72 = ((uint32_t)x70 & 0x7fffff);
+ uint64_t x73 = (x71 + x61);
+ uint64_t x74 = (x73 >> 0x17);
+ uint32_t x75 = ((uint32_t)x73 & 0x7fffff);
+ uint64_t x76 = (x74 + x60);
+ uint64_t x77 = (x76 >> 0x18);
+ uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ uint64_t x79 = (x77 + x59);
+ uint64_t x80 = (x79 >> 0x17);
+ uint32_t x81 = ((uint32_t)x79 & 0x7fffff);
+ uint64_t x82 = (x80 + x58);
+ uint64_t x83 = (x82 >> 0x17);
+ uint32_t x84 = ((uint32_t)x82 & 0x7fffff);
+ uint64_t x85 = (x83 + x57);
+ uint64_t x86 = (x85 >> 0x17);
+ uint32_t x87 = ((uint32_t)x85 & 0x7fffff);
+ uint64_t x88 = (x86 + x56);
+ uint64_t x89 = (x88 >> 0x18);
+ uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ uint64_t x91 = (x89 + x55);
+ uint64_t x92 = (x91 >> 0x17);
+ uint32_t x93 = ((uint32_t)x91 & 0x7fffff);
+ uint64_t x94 = (x92 + x54);
+ uint64_t x95 = (x94 >> 0x17);
+ uint32_t x96 = ((uint32_t)x94 & 0x7fffff);
+ uint64_t x97 = (x95 + x53);
+ uint64_t x98 = (x97 >> 0x17);
+ uint32_t x99 = ((uint32_t)x97 & 0x7fffff);
+ uint64_t x100 = (x98 + x52);
+ uint64_t x101 = (x100 >> 0x17);
+ uint32_t x102 = ((uint32_t)x100 & 0x7fffff);
+ uint64_t x103 = (x101 + x51);
+ uint64_t x104 = (x103 >> 0x18);
+ uint32_t x105 = ((uint32_t)x103 & 0xffffff);
+ uint64_t x106 = (x104 + x50);
+ uint64_t x107 = (x106 >> 0x17);
+ uint32_t x108 = ((uint32_t)x106 & 0x7fffff);
+ uint64_t x109 = (x107 + x49);
+ uint64_t x110 = (x109 >> 0x17);
+ uint32_t x111 = ((uint32_t)x109 & 0x7fffff);
+ uint64_t x112 = (x110 + x48);
+ uint64_t x113 = (x112 >> 0x17);
+ uint32_t x114 = ((uint32_t)x112 & 0x7fffff);
+ uint64_t x115 = (x113 + x47);
+ uint64_t x116 = (x115 >> 0x18);
+ uint32_t x117 = ((uint32_t)x115 & 0xffffff);
+ uint64_t x118 = (x116 + x46);
+ uint64_t x119 = (x118 >> 0x17);
+ uint32_t x120 = ((uint32_t)x118 & 0x7fffff);
+ uint64_t x121 = (x119 + x45);
+ uint64_t x122 = (x121 >> 0x17);
+ uint32_t x123 = ((uint32_t)x121 & 0x7fffff);
+ uint64_t x124 = (x122 + x44);
+ uint64_t x125 = (x124 >> 0x17);
+ uint32_t x126 = ((uint32_t)x124 & 0x7fffff);
+ uint64_t x127 = (x125 + x43);
+ uint64_t x128 = (x127 >> 0x17);
+ uint32_t x129 = ((uint32_t)x127 & 0x7fffff);
+ uint64_t x130 = (x66 + (0xbb * x128));
+ uint32_t x131 = (uint32_t) (x130 >> 0x18);
+ uint32_t x132 = ((uint32_t)x130 & 0xffffff);
+ uint32_t x133 = (x131 + x69);
+ uint32_t x134 = (x133 >> 0x17);
+ uint32_t x135 = (x133 & 0x7fffff);
+ return (Return x129, Return x126, Return x123, Return x120, Return x117, Return x114, Return x111, Return x108, Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, (x134 + x72), Return x135, Return x132))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_22limbs/fesub.c b/src/Specific/solinas32_2e511m187_22limbs/fesub.c
new file mode 100644
index 000000000..205cbc01b
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/fesub.c
@@ -0,0 +1,69 @@
+static void fesub(uint32_t out[22], const uint32_t in1[22], const uint32_t in2[22]) {
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x86 = in2[21];
+ { const uint32_t x87 = in2[20];
+ { const uint32_t x85 = in2[19];
+ { const uint32_t x83 = in2[18];
+ { const uint32_t x81 = in2[17];
+ { const uint32_t x79 = in2[16];
+ { const uint32_t x77 = in2[15];
+ { const uint32_t x75 = in2[14];
+ { const uint32_t x73 = in2[13];
+ { const uint32_t x71 = in2[12];
+ { const uint32_t x69 = in2[11];
+ { const uint32_t x67 = in2[10];
+ { const uint32_t x65 = in2[9];
+ { const uint32_t x63 = in2[8];
+ { const uint32_t x61 = in2[7];
+ { const uint32_t x59 = in2[6];
+ { const uint32_t x57 = in2[5];
+ { const uint32_t x55 = in2[4];
+ { const uint32_t x53 = in2[3];
+ { const uint32_t x51 = in2[2];
+ { const uint32_t x49 = in2[1];
+ { const uint32_t x47 = in2[0];
+ out[0] = ((0x1fffe8a + x5) - x47);
+ out[1] = ((0xfffffe + x7) - x49);
+ out[2] = ((0xfffffe + x9) - x51);
+ out[3] = ((0xfffffe + x11) - x53);
+ out[4] = ((0x1fffffe + x13) - x55);
+ out[5] = ((0xfffffe + x15) - x57);
+ out[6] = ((0xfffffe + x17) - x59);
+ out[7] = ((0xfffffe + x19) - x61);
+ out[8] = ((0x1fffffe + x21) - x63);
+ out[9] = ((0xfffffe + x23) - x65);
+ out[10] = ((0xfffffe + x25) - x67);
+ out[11] = ((0xfffffe + x27) - x69);
+ out[12] = ((0xfffffe + x29) - x71);
+ out[13] = ((0x1fffffe + x31) - x73);
+ out[14] = ((0xfffffe + x33) - x75);
+ out[15] = ((0xfffffe + x35) - x77);
+ out[16] = ((0xfffffe + x37) - x79);
+ out[17] = ((0x1fffffe + x39) - x81);
+ out[18] = ((0xfffffe + x41) - x83);
+ out[19] = ((0xfffffe + x43) - x85);
+ out[20] = ((0xfffffe + x45) - x87);
+ out[21] = ((0xfffffe + x44) - x86);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_22limbs/fesubDisplay.log b/src/Specific/solinas32_2e511m187_22limbs/fesubDisplay.log
new file mode 100644
index 000000000..054f49d3d
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x44, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x86, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47))%core,
+ (((0xfffffe + x44) - x86), ((0xfffffe + x45) - x87), ((0xfffffe + x43) - x85), ((0xfffffe + x41) - x83), ((0x1fffffe + x39) - x81), ((0xfffffe + x37) - x79), ((0xfffffe + x35) - x77), ((0xfffffe + x33) - x75), ((0x1fffffe + x31) - x73), ((0xfffffe + x29) - x71), ((0xfffffe + x27) - x69), ((0xfffffe + x25) - x67), ((0xfffffe + x23) - x65), ((0x1fffffe + x21) - x63), ((0xfffffe + x19) - x61), ((0xfffffe + x17) - x59), ((0xfffffe + x15) - x57), ((0x1fffffe + x13) - x55), ((0xfffffe + x11) - x53), ((0xfffffe + x9) - x51), ((0xfffffe + x7) - x49), ((0x1fffe8a + x5) - x47)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_22limbs/freeze.c b/src/Specific/solinas32_2e511m187_22limbs/freeze.c
new file mode 100644
index 000000000..a256a11e3
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/freeze.c
@@ -0,0 +1,114 @@
+static void freeze(uint32_t out[22], const uint32_t in1[22]) {
+ { const uint32_t x41 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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];
+ { uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffff45);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x4, 0x7fffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x6, 0x7fffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x8, 0x7fffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x10, 0xffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x12, 0x7fffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x14, 0x7fffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x16, 0x7fffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x18, 0xffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x20, 0x7fffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x22, 0x7fffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x24, 0x7fffff);
+ { uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x26, 0x7fffff);
+ { uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x28, 0xffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x30, 0x7fffff);
+ { uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x32, 0x7fffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x34, 0x7fffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x36, 0xffffff);
+ { uint32_t x98, uint8_t x99 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x38, 0x7fffff);
+ { uint32_t x101, uint8_t x102 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x40, 0x7fffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x42, 0x7fffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x41, 0x7fffff);
+ { uint32_t x109 = cmovznz32(x108, 0x0, 0xffffffff);
+ { uint32_t x110 = (x109 & 0xffff45);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x44, Return x110);
+ { uint32_t x114 = (x109 & 0x7fffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x47, Return x114);
+ { uint32_t x118 = (x109 & 0x7fffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x50, Return x118);
+ { uint32_t x122 = (x109 & 0x7fffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x53, Return x122);
+ { uint32_t x126 = (x109 & 0xffffff);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x56, Return x126);
+ { uint32_t x130 = (x109 & 0x7fffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x59, Return x130);
+ { uint32_t x134 = (x109 & 0x7fffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x62, Return x134);
+ { uint32_t x138 = (x109 & 0x7fffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x65, Return x138);
+ { uint32_t x142 = (x109 & 0xffffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x68, Return x142);
+ { uint32_t x146 = (x109 & 0x7fffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x71, Return x146);
+ { uint32_t x150 = (x109 & 0x7fffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x74, Return x150);
+ { uint32_t x154 = (x109 & 0x7fffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x77, Return x154);
+ { uint32_t x158 = (x109 & 0x7fffff);
+ { uint32_t x160, uint8_t x161 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x80, Return x158);
+ { uint32_t x162 = (x109 & 0xffffff);
+ { uint32_t x164, uint8_t x165 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x161, Return x83, Return x162);
+ { uint32_t x166 = (x109 & 0x7fffff);
+ { uint32_t x168, uint8_t x169 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x165, Return x86, Return x166);
+ { uint32_t x170 = (x109 & 0x7fffff);
+ { uint32_t x172, uint8_t x173 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x169, Return x89, Return x170);
+ { uint32_t x174 = (x109 & 0x7fffff);
+ { uint32_t x176, uint8_t x177 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x173, Return x92, Return x174);
+ { uint32_t x178 = (x109 & 0xffffff);
+ { uint32_t x180, uint8_t x181 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x177, Return x95, Return x178);
+ { uint32_t x182 = (x109 & 0x7fffff);
+ { uint32_t x184, uint8_t x185 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x181, Return x98, Return x182);
+ { uint32_t x186 = (x109 & 0x7fffff);
+ { uint32_t x188, uint8_t x189 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x185, Return x101, Return x186);
+ { uint32_t x190 = (x109 & 0x7fffff);
+ { uint32_t x192, uint8_t x193 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x189, Return x104, Return x190);
+ { uint32_t x194 = (x109 & 0x7fffff);
+ { uint32_t x196, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x193, Return x107, Return x194);
+ out[0] = x112;
+ out[1] = x116;
+ out[2] = x120;
+ out[3] = x124;
+ out[4] = x128;
+ out[5] = x132;
+ out[6] = x136;
+ out[7] = x140;
+ out[8] = x144;
+ out[9] = x148;
+ out[10] = x152;
+ out[11] = x156;
+ out[12] = x160;
+ out[13] = x164;
+ out[14] = x168;
+ out[15] = x172;
+ out[16] = x176;
+ out[17] = x180;
+ out[18] = x184;
+ out[19] = x188;
+ out[20] = x192;
+ out[21] = x196;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_22limbs/freezeDisplay.log b/src/Specific/solinas32_2e511m187_22limbs/freezeDisplay.log
new file mode 100644
index 000000000..c068076ae
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_22limbs/freezeDisplay.log
@@ -0,0 +1,74 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x41, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffff45);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x4, 0x7fffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x6, 0x7fffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x8, 0x7fffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x10, 0xffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x12, 0x7fffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x14, 0x7fffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x16, 0x7fffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x18, 0xffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x20, 0x7fffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x22, 0x7fffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x24, 0x7fffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x26, 0x7fffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x28, 0xffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x30, 0x7fffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x32, 0x7fffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x34, 0x7fffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x36, 0xffffff);
+ uint32_t x98, uint8_t x99 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x38, 0x7fffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x40, 0x7fffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x42, 0x7fffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x41, 0x7fffff);
+ uint32_t x109 = cmovznz32(x108, 0x0, 0xffffffff);
+ uint32_t x110 = (x109 & 0xffff45);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x44, Return x110);
+ uint32_t x114 = (x109 & 0x7fffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x47, Return x114);
+ uint32_t x118 = (x109 & 0x7fffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x50, Return x118);
+ uint32_t x122 = (x109 & 0x7fffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x53, Return x122);
+ uint32_t x126 = (x109 & 0xffffff);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x56, Return x126);
+ uint32_t x130 = (x109 & 0x7fffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x59, Return x130);
+ uint32_t x134 = (x109 & 0x7fffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x62, Return x134);
+ uint32_t x138 = (x109 & 0x7fffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x65, Return x138);
+ uint32_t x142 = (x109 & 0xffffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x68, Return x142);
+ uint32_t x146 = (x109 & 0x7fffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x71, Return x146);
+ uint32_t x150 = (x109 & 0x7fffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x74, Return x150);
+ uint32_t x154 = (x109 & 0x7fffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x77, Return x154);
+ uint32_t x158 = (x109 & 0x7fffff);
+ uint32_t x160, uint8_t x161 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x80, Return x158);
+ uint32_t x162 = (x109 & 0xffffff);
+ uint32_t x164, uint8_t x165 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x161, Return x83, Return x162);
+ uint32_t x166 = (x109 & 0x7fffff);
+ uint32_t x168, uint8_t x169 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x165, Return x86, Return x166);
+ uint32_t x170 = (x109 & 0x7fffff);
+ uint32_t x172, uint8_t x173 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x169, Return x89, Return x170);
+ uint32_t x174 = (x109 & 0x7fffff);
+ uint32_t x176, uint8_t x177 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x173, Return x92, Return x174);
+ uint32_t x178 = (x109 & 0xffffff);
+ uint32_t x180, uint8_t x181 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x177, Return x95, Return x178);
+ uint32_t x182 = (x109 & 0x7fffff);
+ uint32_t x184, uint8_t x185 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x181, Return x98, Return x182);
+ uint32_t x186 = (x109 & 0x7fffff);
+ uint32_t x188, uint8_t x189 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x185, Return x101, Return x186);
+ uint32_t x190 = (x109 & 0x7fffff);
+ uint32_t x192, uint8_t x193 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x189, Return x104, Return x190);
+ uint32_t x194 = (x109 & 0x7fffff);
+ uint32_t x196, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x193, Return x107, Return x194);
+ (Return x196, Return x192, Return x188, Return x184, Return x180, Return x176, Return x172, Return x168, Return x164, Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_23limbs/feadd.c b/src/Specific/solinas32_2e511m187_23limbs/feadd.c
new file mode 100644
index 000000000..3ec1f7bb3
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/feadd.c
@@ -0,0 +1,72 @@
+static void feadd(uint32_t out[23], const uint32_t in1[23], const uint32_t in2[23]) {
+ { const uint32_t x46 = in1[22];
+ { const uint32_t x47 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x90 = in2[22];
+ { const uint32_t x91 = in2[21];
+ { const uint32_t x89 = in2[20];
+ { const uint32_t x87 = in2[19];
+ { const uint32_t x85 = in2[18];
+ { const uint32_t x83 = in2[17];
+ { const uint32_t x81 = in2[16];
+ { const uint32_t x79 = in2[15];
+ { const uint32_t x77 = in2[14];
+ { const uint32_t x75 = in2[13];
+ { const uint32_t x73 = in2[12];
+ { const uint32_t x71 = in2[11];
+ { const uint32_t x69 = in2[10];
+ { const uint32_t x67 = in2[9];
+ { const uint32_t x65 = in2[8];
+ { const uint32_t x63 = in2[7];
+ { const uint32_t x61 = in2[6];
+ { const uint32_t x59 = in2[5];
+ { const uint32_t x57 = in2[4];
+ { const uint32_t x55 = in2[3];
+ { const uint32_t x53 = in2[2];
+ { const uint32_t x51 = in2[1];
+ { const uint32_t x49 = in2[0];
+ out[0] = (x5 + x49);
+ out[1] = (x7 + x51);
+ out[2] = (x9 + x53);
+ out[3] = (x11 + x55);
+ out[4] = (x13 + x57);
+ out[5] = (x15 + x59);
+ out[6] = (x17 + x61);
+ out[7] = (x19 + x63);
+ out[8] = (x21 + x65);
+ out[9] = (x23 + x67);
+ out[10] = (x25 + x69);
+ out[11] = (x27 + x71);
+ out[12] = (x29 + x73);
+ out[13] = (x31 + x75);
+ out[14] = (x33 + x77);
+ out[15] = (x35 + x79);
+ out[16] = (x37 + x81);
+ out[17] = (x39 + x83);
+ out[18] = (x41 + x85);
+ out[19] = (x43 + x87);
+ out[20] = (x45 + x89);
+ out[21] = (x47 + x91);
+ out[22] = (x46 + x90);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_23limbs/feaddDisplay.log b/src/Specific/solinas32_2e511m187_23limbs/feaddDisplay.log
new file mode 100644
index 000000000..c6d6c303e
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x90, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49))%core,
+ ((x46 + x90), (x47 + x91), (x45 + x89), (x43 + x87), (x41 + x85), (x39 + x83), (x37 + x81), (x35 + x79), (x33 + x77), (x31 + x75), (x29 + x73), (x27 + x71), (x25 + x69), (x23 + x67), (x21 + x65), (x19 + x63), (x17 + x61), (x15 + x59), (x13 + x57), (x11 + x55), (x9 + x53), (x7 + x51), (x5 + x49)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_23limbs/fesquare.c b/src/Specific/solinas32_2e511m187_23limbs/fesquare.c
new file mode 100644
index 000000000..0b95fde93
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/fesquare.c
@@ -0,0 +1,146 @@
+static void fesquare(uint32_t out[23], const uint32_t in1[23]) {
+ { const uint32_t x43 = in1[22];
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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 x45 = (((uint64_t)x2 * x43) + ((0x2 * ((uint64_t)x4 * x44)) + ((0x2 * ((uint64_t)x6 * x42)) + ((0x2 * ((uint64_t)x8 * x40)) + (((uint64_t)x10 * x38) + ((0x2 * ((uint64_t)x12 * x36)) + ((0x2 * ((uint64_t)x14 * x34)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + (((uint64_t)x20 * x28) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + (((uint64_t)x28 * x20) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((0x2 * ((uint64_t)x34 * x14)) + ((0x2 * ((uint64_t)x36 * x12)) + (((uint64_t)x38 * x10) + ((0x2 * ((uint64_t)x40 * x8)) + ((0x2 * ((uint64_t)x42 * x6)) + ((0x2 * ((uint64_t)x44 * x4)) + ((uint64_t)x43 * x2)))))))))))))))))))))));
+ { uint64_t x46 = ((((uint64_t)x2 * x44) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + ((0x2 * ((uint64_t)x12 * x34)) + ((0x2 * ((uint64_t)x14 * x32)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + ((0x2 * ((uint64_t)x32 * x14)) + ((0x2 * ((uint64_t)x34 * x12)) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0xbb * ((uint64_t)x43 * x43)));
+ { uint64_t x47 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + (((uint64_t)x6 * x38) + (((uint64_t)x8 * x36) + (((uint64_t)x10 * x34) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (((uint64_t)x34 * x10) + (((uint64_t)x36 * x8) + (((uint64_t)x38 * x6) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0xbb * (((uint64_t)x44 * x43) + ((uint64_t)x43 * x44))));
+ { uint64_t x48 = ((((uint64_t)x2 * x40) + (((uint64_t)x4 * x38) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + (((uint64_t)x38 * x4) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0xbb * (((uint64_t)x42 * x43) + (((uint64_t)x44 * x44) + ((uint64_t)x43 * x42)))));
+ { uint64_t x49 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + ((0x2 * ((uint64_t)x8 * x32)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((0x2 * ((uint64_t)x32 * x8)) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x40 * x43)) + ((0x2 * ((uint64_t)x42 * x44)) + ((0x2 * ((uint64_t)x44 * x42)) + (0x2 * ((uint64_t)x43 * x40)))))));
+ { uint64_t x50 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + (((uint64_t)x10 * x28) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + (((uint64_t)x28 * x10) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0xbb * (((uint64_t)x38 * x43) + ((0x2 * ((uint64_t)x40 * x44)) + ((0x2 * ((uint64_t)x42 * x42)) + ((0x2 * ((uint64_t)x44 * x40)) + ((uint64_t)x43 * x38)))))));
+ { uint64_t x51 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0xbb * (((uint64_t)x36 * x43) + (((uint64_t)x38 * x44) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (((uint64_t)x44 * x38) + ((uint64_t)x43 * x36))))))));
+ { uint64_t x52 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0xbb * (((uint64_t)x34 * x43) + (((uint64_t)x36 * x44) + (((uint64_t)x38 * x42) + ((0x2 * ((uint64_t)x40 * x40)) + (((uint64_t)x42 * x38) + (((uint64_t)x44 * x36) + ((uint64_t)x43 * x34)))))))));
+ { uint64_t x53 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0xbb * (((uint64_t)x32 * x43) + (((uint64_t)x34 * x44) + (((uint64_t)x36 * x42) + (((uint64_t)x38 * x40) + (((uint64_t)x40 * x38) + (((uint64_t)x42 * x36) + (((uint64_t)x44 * x34) + ((uint64_t)x43 * x32))))))))));
+ { uint64_t x54 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + (((uint64_t)x10 * x20) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + (((uint64_t)x20 * x10) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x30 * x43)) + ((0x2 * ((uint64_t)x32 * x44)) + ((0x2 * ((uint64_t)x34 * x42)) + ((0x2 * ((uint64_t)x36 * x40)) + (((uint64_t)x38 * x38) + ((0x2 * ((uint64_t)x40 * x36)) + ((0x2 * ((uint64_t)x42 * x34)) + ((0x2 * ((uint64_t)x44 * x32)) + (0x2 * ((uint64_t)x43 * x30))))))))))));
+ { uint64_t x55 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0xbb * (((uint64_t)x28 * x43) + ((0x2 * ((uint64_t)x30 * x44)) + ((0x2 * ((uint64_t)x32 * x42)) + ((0x2 * ((uint64_t)x34 * x40)) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((0x2 * ((uint64_t)x40 * x34)) + ((0x2 * ((uint64_t)x42 * x32)) + ((0x2 * ((uint64_t)x44 * x30)) + ((uint64_t)x43 * x28))))))))))));
+ { uint64_t x56 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0xbb * (((uint64_t)x26 * x43) + (((uint64_t)x28 * x44) + ((0x2 * ((uint64_t)x30 * x42)) + ((0x2 * ((uint64_t)x32 * x40)) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + ((0x2 * ((uint64_t)x40 * x32)) + ((0x2 * ((uint64_t)x42 * x30)) + (((uint64_t)x44 * x28) + ((uint64_t)x43 * x26)))))))))))));
+ { uint64_t x57 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0xbb * (((uint64_t)x24 * x43) + (((uint64_t)x26 * x44) + (((uint64_t)x28 * x42) + ((0x2 * ((uint64_t)x30 * x40)) + (((uint64_t)x32 * x38) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + (((uint64_t)x38 * x32) + ((0x2 * ((uint64_t)x40 * x30)) + (((uint64_t)x42 * x28) + (((uint64_t)x44 * x26) + ((uint64_t)x43 * x24))))))))))))));
+ { uint64_t x58 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + ((0x2 * ((uint64_t)x8 * x14)) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + ((0x2 * ((uint64_t)x14 * x8)) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0xbb * ((0x2 * ((uint64_t)x22 * x43)) + ((0x2 * ((uint64_t)x24 * x44)) + ((0x2 * ((uint64_t)x26 * x42)) + ((0x2 * ((uint64_t)x28 * x40)) + ((0x2 * ((uint64_t)x30 * x38)) + ((0x2 * ((uint64_t)x32 * x36)) + ((0x2 * ((uint64_t)x34 * x34)) + ((0x2 * ((uint64_t)x36 * x32)) + ((0x2 * ((uint64_t)x38 * x30)) + ((0x2 * ((uint64_t)x40 * x28)) + ((0x2 * ((uint64_t)x42 * x26)) + ((0x2 * ((uint64_t)x44 * x24)) + (0x2 * ((uint64_t)x43 * x22))))))))))))))));
+ { uint64_t x59 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0xbb * (((uint64_t)x20 * x43) + ((0x2 * ((uint64_t)x22 * x44)) + ((0x2 * ((uint64_t)x24 * x42)) + ((0x2 * ((uint64_t)x26 * x40)) + (((uint64_t)x28 * x38) + ((0x2 * ((uint64_t)x30 * x36)) + ((0x2 * ((uint64_t)x32 * x34)) + ((0x2 * ((uint64_t)x34 * x32)) + ((0x2 * ((uint64_t)x36 * x30)) + (((uint64_t)x38 * x28) + ((0x2 * ((uint64_t)x40 * x26)) + ((0x2 * ((uint64_t)x42 * x24)) + ((0x2 * ((uint64_t)x44 * x22)) + ((uint64_t)x43 * x20))))))))))))))));
+ { uint64_t x60 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (0xbb * (((uint64_t)x18 * x43) + (((uint64_t)x20 * x44) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + (((uint64_t)x26 * x38) + (((uint64_t)x28 * x36) + ((0x2 * ((uint64_t)x30 * x34)) + ((0x2 * ((uint64_t)x32 * x32)) + ((0x2 * ((uint64_t)x34 * x30)) + (((uint64_t)x36 * x28) + (((uint64_t)x38 * x26) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (((uint64_t)x44 * x20) + ((uint64_t)x43 * x18)))))))))))))))));
+ { uint64_t x61 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0xbb * (((uint64_t)x16 * x43) + (((uint64_t)x18 * x44) + (((uint64_t)x20 * x42) + ((0x2 * ((uint64_t)x22 * x40)) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((0x2 * ((uint64_t)x40 * x22)) + (((uint64_t)x42 * x20) + (((uint64_t)x44 * x18) + ((uint64_t)x43 * x16))))))))))))))))));
+ { uint64_t x62 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0xbb * (((uint64_t)x14 * x43) + (((uint64_t)x16 * x44) + (((uint64_t)x18 * x42) + (((uint64_t)x20 * x40) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + (((uint64_t)x40 * x20) + (((uint64_t)x42 * x18) + (((uint64_t)x44 * x16) + ((uint64_t)x43 * x14)))))))))))))))))));
+ { uint64_t x63 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0xbb * ((0x2 * ((uint64_t)x12 * x43)) + ((0x2 * ((uint64_t)x14 * x44)) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + (((uint64_t)x20 * x38) + ((0x2 * ((uint64_t)x22 * x36)) + ((0x2 * ((uint64_t)x24 * x34)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + ((0x2 * ((uint64_t)x34 * x24)) + ((0x2 * ((uint64_t)x36 * x22)) + (((uint64_t)x38 * x20) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + ((0x2 * ((uint64_t)x44 * x14)) + (0x2 * ((uint64_t)x43 * x12)))))))))))))))))))));
+ { uint64_t x64 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0xbb * (((uint64_t)x10 * x43) + ((0x2 * ((uint64_t)x12 * x44)) + ((0x2 * ((uint64_t)x14 * x42)) + ((0x2 * ((uint64_t)x16 * x40)) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + ((0x2 * ((uint64_t)x22 * x34)) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((0x2 * ((uint64_t)x34 * x22)) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((0x2 * ((uint64_t)x40 * x16)) + ((0x2 * ((uint64_t)x42 * x14)) + ((0x2 * ((uint64_t)x44 * x12)) + ((uint64_t)x43 * x10)))))))))))))))))))));
+ { uint64_t x65 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0xbb * (((uint64_t)x8 * x43) + (((uint64_t)x10 * x44) + ((0x2 * ((uint64_t)x12 * x42)) + ((0x2 * ((uint64_t)x14 * x40)) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + ((0x2 * ((uint64_t)x40 * x14)) + ((0x2 * ((uint64_t)x42 * x12)) + (((uint64_t)x44 * x10) + ((uint64_t)x43 * x8))))))))))))))))))))));
+ { uint64_t x66 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0xbb * (((uint64_t)x6 * x43) + (((uint64_t)x8 * x44) + (((uint64_t)x10 * x42) + ((0x2 * ((uint64_t)x12 * x40)) + (((uint64_t)x14 * x38) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + (((uint64_t)x38 * x14) + ((0x2 * ((uint64_t)x40 * x12)) + (((uint64_t)x42 * x10) + (((uint64_t)x44 * x8) + ((uint64_t)x43 * x6)))))))))))))))))))))));
+ { uint64_t x67 = (((uint64_t)x2 * x2) + (0xbb * ((0x2 * ((uint64_t)x4 * x43)) + ((0x2 * ((uint64_t)x6 * x44)) + ((0x2 * ((uint64_t)x8 * x42)) + ((0x2 * ((uint64_t)x10 * x40)) + ((0x2 * ((uint64_t)x12 * x38)) + ((0x2 * ((uint64_t)x14 * x36)) + ((0x2 * ((uint64_t)x16 * x34)) + ((0x2 * ((uint64_t)x18 * x32)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + ((0x2 * ((uint64_t)x32 * x18)) + ((0x2 * ((uint64_t)x34 * x16)) + ((0x2 * ((uint64_t)x36 * x14)) + ((0x2 * ((uint64_t)x38 * x12)) + ((0x2 * ((uint64_t)x40 * x10)) + ((0x2 * ((uint64_t)x42 * x8)) + ((0x2 * ((uint64_t)x44 * x6)) + (0x2 * ((uint64_t)x43 * x4)))))))))))))))))))))))));
+ { uint64_t x68 = (x67 >> 0x17);
+ { uint32_t x69 = ((uint32_t)x67 & 0x7fffff);
+ { uint64_t x70 = (x68 + x66);
+ { uint64_t x71 = (x70 >> 0x16);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ { uint64_t x73 = (x71 + x65);
+ { uint64_t x74 = (x73 >> 0x16);
+ { uint32_t x75 = ((uint32_t)x73 & 0x3fffff);
+ { uint64_t x76 = (x74 + x64);
+ { uint64_t x77 = (x76 >> 0x16);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3fffff);
+ { uint64_t x79 = (x77 + x63);
+ { uint64_t x80 = (x79 >> 0x17);
+ { uint32_t x81 = ((uint32_t)x79 & 0x7fffff);
+ { uint64_t x82 = (x80 + x62);
+ { uint64_t x83 = (x82 >> 0x16);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3fffff);
+ { uint64_t x85 = (x83 + x61);
+ { uint64_t x86 = (x85 >> 0x16);
+ { uint32_t x87 = ((uint32_t)x85 & 0x3fffff);
+ { uint64_t x88 = (x86 + x60);
+ { uint64_t x89 = (x88 >> 0x16);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3fffff);
+ { uint64_t x91 = (x89 + x59);
+ { uint64_t x92 = (x91 >> 0x16);
+ { uint32_t x93 = ((uint32_t)x91 & 0x3fffff);
+ { uint64_t x94 = (x92 + x58);
+ { uint64_t x95 = (x94 >> 0x17);
+ { uint32_t x96 = ((uint32_t)x94 & 0x7fffff);
+ { uint64_t x97 = (x95 + x57);
+ { uint64_t x98 = (x97 >> 0x16);
+ { uint32_t x99 = ((uint32_t)x97 & 0x3fffff);
+ { uint64_t x100 = (x98 + x56);
+ { uint64_t x101 = (x100 >> 0x16);
+ { uint32_t x102 = ((uint32_t)x100 & 0x3fffff);
+ { uint64_t x103 = (x101 + x55);
+ { uint64_t x104 = (x103 >> 0x16);
+ { uint32_t x105 = ((uint32_t)x103 & 0x3fffff);
+ { uint64_t x106 = (x104 + x54);
+ { uint64_t x107 = (x106 >> 0x17);
+ { uint32_t x108 = ((uint32_t)x106 & 0x7fffff);
+ { uint64_t x109 = (x107 + x53);
+ { uint64_t x110 = (x109 >> 0x16);
+ { uint32_t x111 = ((uint32_t)x109 & 0x3fffff);
+ { uint64_t x112 = (x110 + x52);
+ { uint64_t x113 = (x112 >> 0x16);
+ { uint32_t x114 = ((uint32_t)x112 & 0x3fffff);
+ { uint64_t x115 = (x113 + x51);
+ { uint64_t x116 = (x115 >> 0x16);
+ { uint32_t x117 = ((uint32_t)x115 & 0x3fffff);
+ { uint64_t x118 = (x116 + x50);
+ { uint64_t x119 = (x118 >> 0x16);
+ { uint32_t x120 = ((uint32_t)x118 & 0x3fffff);
+ { uint64_t x121 = (x119 + x49);
+ { uint64_t x122 = (x121 >> 0x17);
+ { uint32_t x123 = ((uint32_t)x121 & 0x7fffff);
+ { uint64_t x124 = (x122 + x48);
+ { uint64_t x125 = (x124 >> 0x16);
+ { uint32_t x126 = ((uint32_t)x124 & 0x3fffff);
+ { uint64_t x127 = (x125 + x47);
+ { uint64_t x128 = (x127 >> 0x16);
+ { uint32_t x129 = ((uint32_t)x127 & 0x3fffff);
+ { uint64_t x130 = (x128 + x46);
+ { uint64_t x131 = (x130 >> 0x16);
+ { uint32_t x132 = ((uint32_t)x130 & 0x3fffff);
+ { uint64_t x133 = (x131 + x45);
+ { uint32_t x134 = (uint32_t) (x133 >> 0x16);
+ { uint32_t x135 = ((uint32_t)x133 & 0x3fffff);
+ { uint64_t x136 = (x69 + ((uint64_t)0xbb * x134));
+ { uint32_t x137 = (uint32_t) (x136 >> 0x17);
+ { uint32_t x138 = ((uint32_t)x136 & 0x7fffff);
+ { uint32_t x139 = (x137 + x72);
+ { uint32_t x140 = (x139 >> 0x16);
+ { uint32_t x141 = (x139 & 0x3fffff);
+ out[0] = x138;
+ out[1] = x141;
+ out[2] = (x140 + x75);
+ out[3] = x78;
+ out[4] = x81;
+ out[5] = x84;
+ out[6] = x87;
+ out[7] = x90;
+ out[8] = x93;
+ out[9] = x96;
+ out[10] = x99;
+ out[11] = x102;
+ out[12] = x105;
+ out[13] = x108;
+ out[14] = x111;
+ out[15] = x114;
+ out[16] = x117;
+ out[17] = x120;
+ out[18] = x123;
+ out[19] = x126;
+ out[20] = x129;
+ out[21] = x132;
+ out[22] = x135;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_23limbs/fesquareDisplay.log b/src/Specific/solinas32_2e511m187_23limbs/fesquareDisplay.log
new file mode 100644
index 000000000..d44893b5f
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/fesquareDisplay.log
@@ -0,0 +1,104 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x43, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x45 = (((uint64_t)x2 * x43) + ((0x2 * ((uint64_t)x4 * x44)) + ((0x2 * ((uint64_t)x6 * x42)) + ((0x2 * ((uint64_t)x8 * x40)) + (((uint64_t)x10 * x38) + ((0x2 * ((uint64_t)x12 * x36)) + ((0x2 * ((uint64_t)x14 * x34)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + (((uint64_t)x20 * x28) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + (((uint64_t)x28 * x20) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((0x2 * ((uint64_t)x34 * x14)) + ((0x2 * ((uint64_t)x36 * x12)) + (((uint64_t)x38 * x10) + ((0x2 * ((uint64_t)x40 * x8)) + ((0x2 * ((uint64_t)x42 * x6)) + ((0x2 * ((uint64_t)x44 * x4)) + ((uint64_t)x43 * x2)))))))))))))))))))))));
+ uint64_t x46 = ((((uint64_t)x2 * x44) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + ((0x2 * ((uint64_t)x12 * x34)) + ((0x2 * ((uint64_t)x14 * x32)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + ((0x2 * ((uint64_t)x32 * x14)) + ((0x2 * ((uint64_t)x34 * x12)) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0xbb * ((uint64_t)x43 * x43)));
+ uint64_t x47 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + (((uint64_t)x6 * x38) + (((uint64_t)x8 * x36) + (((uint64_t)x10 * x34) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (((uint64_t)x34 * x10) + (((uint64_t)x36 * x8) + (((uint64_t)x38 * x6) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0xbb * (((uint64_t)x44 * x43) + ((uint64_t)x43 * x44))));
+ uint64_t x48 = ((((uint64_t)x2 * x40) + (((uint64_t)x4 * x38) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + (((uint64_t)x38 * x4) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0xbb * (((uint64_t)x42 * x43) + (((uint64_t)x44 * x44) + ((uint64_t)x43 * x42)))));
+ uint64_t x49 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + ((0x2 * ((uint64_t)x8 * x32)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((0x2 * ((uint64_t)x32 * x8)) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x40 * x43)) + ((0x2 * ((uint64_t)x42 * x44)) + ((0x2 * ((uint64_t)x44 * x42)) + (0x2 * ((uint64_t)x43 * x40)))))));
+ uint64_t x50 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + (((uint64_t)x10 * x28) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + (((uint64_t)x28 * x10) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0xbb * (((uint64_t)x38 * x43) + ((0x2 * ((uint64_t)x40 * x44)) + ((0x2 * ((uint64_t)x42 * x42)) + ((0x2 * ((uint64_t)x44 * x40)) + ((uint64_t)x43 * x38)))))));
+ uint64_t x51 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0xbb * (((uint64_t)x36 * x43) + (((uint64_t)x38 * x44) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (((uint64_t)x44 * x38) + ((uint64_t)x43 * x36))))))));
+ uint64_t x52 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0xbb * (((uint64_t)x34 * x43) + (((uint64_t)x36 * x44) + (((uint64_t)x38 * x42) + ((0x2 * ((uint64_t)x40 * x40)) + (((uint64_t)x42 * x38) + (((uint64_t)x44 * x36) + ((uint64_t)x43 * x34)))))))));
+ uint64_t x53 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0xbb * (((uint64_t)x32 * x43) + (((uint64_t)x34 * x44) + (((uint64_t)x36 * x42) + (((uint64_t)x38 * x40) + (((uint64_t)x40 * x38) + (((uint64_t)x42 * x36) + (((uint64_t)x44 * x34) + ((uint64_t)x43 * x32))))))))));
+ uint64_t x54 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + (((uint64_t)x10 * x20) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + (((uint64_t)x20 * x10) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0xbb * ((0x2 * ((uint64_t)x30 * x43)) + ((0x2 * ((uint64_t)x32 * x44)) + ((0x2 * ((uint64_t)x34 * x42)) + ((0x2 * ((uint64_t)x36 * x40)) + (((uint64_t)x38 * x38) + ((0x2 * ((uint64_t)x40 * x36)) + ((0x2 * ((uint64_t)x42 * x34)) + ((0x2 * ((uint64_t)x44 * x32)) + (0x2 * ((uint64_t)x43 * x30))))))))))));
+ uint64_t x55 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0xbb * (((uint64_t)x28 * x43) + ((0x2 * ((uint64_t)x30 * x44)) + ((0x2 * ((uint64_t)x32 * x42)) + ((0x2 * ((uint64_t)x34 * x40)) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((0x2 * ((uint64_t)x40 * x34)) + ((0x2 * ((uint64_t)x42 * x32)) + ((0x2 * ((uint64_t)x44 * x30)) + ((uint64_t)x43 * x28))))))))))));
+ uint64_t x56 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0xbb * (((uint64_t)x26 * x43) + (((uint64_t)x28 * x44) + ((0x2 * ((uint64_t)x30 * x42)) + ((0x2 * ((uint64_t)x32 * x40)) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + ((0x2 * ((uint64_t)x40 * x32)) + ((0x2 * ((uint64_t)x42 * x30)) + (((uint64_t)x44 * x28) + ((uint64_t)x43 * x26)))))))))))));
+ uint64_t x57 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0xbb * (((uint64_t)x24 * x43) + (((uint64_t)x26 * x44) + (((uint64_t)x28 * x42) + ((0x2 * ((uint64_t)x30 * x40)) + (((uint64_t)x32 * x38) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + (((uint64_t)x38 * x32) + ((0x2 * ((uint64_t)x40 * x30)) + (((uint64_t)x42 * x28) + (((uint64_t)x44 * x26) + ((uint64_t)x43 * x24))))))))))))));
+ uint64_t x58 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + ((0x2 * ((uint64_t)x8 * x14)) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + ((0x2 * ((uint64_t)x14 * x8)) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0xbb * ((0x2 * ((uint64_t)x22 * x43)) + ((0x2 * ((uint64_t)x24 * x44)) + ((0x2 * ((uint64_t)x26 * x42)) + ((0x2 * ((uint64_t)x28 * x40)) + ((0x2 * ((uint64_t)x30 * x38)) + ((0x2 * ((uint64_t)x32 * x36)) + ((0x2 * ((uint64_t)x34 * x34)) + ((0x2 * ((uint64_t)x36 * x32)) + ((0x2 * ((uint64_t)x38 * x30)) + ((0x2 * ((uint64_t)x40 * x28)) + ((0x2 * ((uint64_t)x42 * x26)) + ((0x2 * ((uint64_t)x44 * x24)) + (0x2 * ((uint64_t)x43 * x22))))))))))))))));
+ uint64_t x59 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0xbb * (((uint64_t)x20 * x43) + ((0x2 * ((uint64_t)x22 * x44)) + ((0x2 * ((uint64_t)x24 * x42)) + ((0x2 * ((uint64_t)x26 * x40)) + (((uint64_t)x28 * x38) + ((0x2 * ((uint64_t)x30 * x36)) + ((0x2 * ((uint64_t)x32 * x34)) + ((0x2 * ((uint64_t)x34 * x32)) + ((0x2 * ((uint64_t)x36 * x30)) + (((uint64_t)x38 * x28) + ((0x2 * ((uint64_t)x40 * x26)) + ((0x2 * ((uint64_t)x42 * x24)) + ((0x2 * ((uint64_t)x44 * x22)) + ((uint64_t)x43 * x20))))))))))))))));
+ uint64_t x60 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (0xbb * (((uint64_t)x18 * x43) + (((uint64_t)x20 * x44) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + (((uint64_t)x26 * x38) + (((uint64_t)x28 * x36) + ((0x2 * ((uint64_t)x30 * x34)) + ((0x2 * ((uint64_t)x32 * x32)) + ((0x2 * ((uint64_t)x34 * x30)) + (((uint64_t)x36 * x28) + (((uint64_t)x38 * x26) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (((uint64_t)x44 * x20) + ((uint64_t)x43 * x18)))))))))))))))));
+ uint64_t x61 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0xbb * (((uint64_t)x16 * x43) + (((uint64_t)x18 * x44) + (((uint64_t)x20 * x42) + ((0x2 * ((uint64_t)x22 * x40)) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((0x2 * ((uint64_t)x40 * x22)) + (((uint64_t)x42 * x20) + (((uint64_t)x44 * x18) + ((uint64_t)x43 * x16))))))))))))))))));
+ uint64_t x62 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0xbb * (((uint64_t)x14 * x43) + (((uint64_t)x16 * x44) + (((uint64_t)x18 * x42) + (((uint64_t)x20 * x40) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + (((uint64_t)x40 * x20) + (((uint64_t)x42 * x18) + (((uint64_t)x44 * x16) + ((uint64_t)x43 * x14)))))))))))))))))));
+ uint64_t x63 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0xbb * ((0x2 * ((uint64_t)x12 * x43)) + ((0x2 * ((uint64_t)x14 * x44)) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + (((uint64_t)x20 * x38) + ((0x2 * ((uint64_t)x22 * x36)) + ((0x2 * ((uint64_t)x24 * x34)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + ((0x2 * ((uint64_t)x34 * x24)) + ((0x2 * ((uint64_t)x36 * x22)) + (((uint64_t)x38 * x20) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + ((0x2 * ((uint64_t)x44 * x14)) + (0x2 * ((uint64_t)x43 * x12)))))))))))))))))))));
+ uint64_t x64 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0xbb * (((uint64_t)x10 * x43) + ((0x2 * ((uint64_t)x12 * x44)) + ((0x2 * ((uint64_t)x14 * x42)) + ((0x2 * ((uint64_t)x16 * x40)) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + ((0x2 * ((uint64_t)x22 * x34)) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((0x2 * ((uint64_t)x34 * x22)) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((0x2 * ((uint64_t)x40 * x16)) + ((0x2 * ((uint64_t)x42 * x14)) + ((0x2 * ((uint64_t)x44 * x12)) + ((uint64_t)x43 * x10)))))))))))))))))))));
+ uint64_t x65 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0xbb * (((uint64_t)x8 * x43) + (((uint64_t)x10 * x44) + ((0x2 * ((uint64_t)x12 * x42)) + ((0x2 * ((uint64_t)x14 * x40)) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + ((0x2 * ((uint64_t)x40 * x14)) + ((0x2 * ((uint64_t)x42 * x12)) + (((uint64_t)x44 * x10) + ((uint64_t)x43 * x8))))))))))))))))))))));
+ uint64_t x66 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0xbb * (((uint64_t)x6 * x43) + (((uint64_t)x8 * x44) + (((uint64_t)x10 * x42) + ((0x2 * ((uint64_t)x12 * x40)) + (((uint64_t)x14 * x38) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + (((uint64_t)x38 * x14) + ((0x2 * ((uint64_t)x40 * x12)) + (((uint64_t)x42 * x10) + (((uint64_t)x44 * x8) + ((uint64_t)x43 * x6)))))))))))))))))))))));
+ uint64_t x67 = (((uint64_t)x2 * x2) + (0xbb * ((0x2 * ((uint64_t)x4 * x43)) + ((0x2 * ((uint64_t)x6 * x44)) + ((0x2 * ((uint64_t)x8 * x42)) + ((0x2 * ((uint64_t)x10 * x40)) + ((0x2 * ((uint64_t)x12 * x38)) + ((0x2 * ((uint64_t)x14 * x36)) + ((0x2 * ((uint64_t)x16 * x34)) + ((0x2 * ((uint64_t)x18 * x32)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + ((0x2 * ((uint64_t)x32 * x18)) + ((0x2 * ((uint64_t)x34 * x16)) + ((0x2 * ((uint64_t)x36 * x14)) + ((0x2 * ((uint64_t)x38 * x12)) + ((0x2 * ((uint64_t)x40 * x10)) + ((0x2 * ((uint64_t)x42 * x8)) + ((0x2 * ((uint64_t)x44 * x6)) + (0x2 * ((uint64_t)x43 * x4)))))))))))))))))))))))));
+ uint64_t x68 = (x67 >> 0x17);
+ uint32_t x69 = ((uint32_t)x67 & 0x7fffff);
+ uint64_t x70 = (x68 + x66);
+ uint64_t x71 = (x70 >> 0x16);
+ uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ uint64_t x73 = (x71 + x65);
+ uint64_t x74 = (x73 >> 0x16);
+ uint32_t x75 = ((uint32_t)x73 & 0x3fffff);
+ uint64_t x76 = (x74 + x64);
+ uint64_t x77 = (x76 >> 0x16);
+ uint32_t x78 = ((uint32_t)x76 & 0x3fffff);
+ uint64_t x79 = (x77 + x63);
+ uint64_t x80 = (x79 >> 0x17);
+ uint32_t x81 = ((uint32_t)x79 & 0x7fffff);
+ uint64_t x82 = (x80 + x62);
+ uint64_t x83 = (x82 >> 0x16);
+ uint32_t x84 = ((uint32_t)x82 & 0x3fffff);
+ uint64_t x85 = (x83 + x61);
+ uint64_t x86 = (x85 >> 0x16);
+ uint32_t x87 = ((uint32_t)x85 & 0x3fffff);
+ uint64_t x88 = (x86 + x60);
+ uint64_t x89 = (x88 >> 0x16);
+ uint32_t x90 = ((uint32_t)x88 & 0x3fffff);
+ uint64_t x91 = (x89 + x59);
+ uint64_t x92 = (x91 >> 0x16);
+ uint32_t x93 = ((uint32_t)x91 & 0x3fffff);
+ uint64_t x94 = (x92 + x58);
+ uint64_t x95 = (x94 >> 0x17);
+ uint32_t x96 = ((uint32_t)x94 & 0x7fffff);
+ uint64_t x97 = (x95 + x57);
+ uint64_t x98 = (x97 >> 0x16);
+ uint32_t x99 = ((uint32_t)x97 & 0x3fffff);
+ uint64_t x100 = (x98 + x56);
+ uint64_t x101 = (x100 >> 0x16);
+ uint32_t x102 = ((uint32_t)x100 & 0x3fffff);
+ uint64_t x103 = (x101 + x55);
+ uint64_t x104 = (x103 >> 0x16);
+ uint32_t x105 = ((uint32_t)x103 & 0x3fffff);
+ uint64_t x106 = (x104 + x54);
+ uint64_t x107 = (x106 >> 0x17);
+ uint32_t x108 = ((uint32_t)x106 & 0x7fffff);
+ uint64_t x109 = (x107 + x53);
+ uint64_t x110 = (x109 >> 0x16);
+ uint32_t x111 = ((uint32_t)x109 & 0x3fffff);
+ uint64_t x112 = (x110 + x52);
+ uint64_t x113 = (x112 >> 0x16);
+ uint32_t x114 = ((uint32_t)x112 & 0x3fffff);
+ uint64_t x115 = (x113 + x51);
+ uint64_t x116 = (x115 >> 0x16);
+ uint32_t x117 = ((uint32_t)x115 & 0x3fffff);
+ uint64_t x118 = (x116 + x50);
+ uint64_t x119 = (x118 >> 0x16);
+ uint32_t x120 = ((uint32_t)x118 & 0x3fffff);
+ uint64_t x121 = (x119 + x49);
+ uint64_t x122 = (x121 >> 0x17);
+ uint32_t x123 = ((uint32_t)x121 & 0x7fffff);
+ uint64_t x124 = (x122 + x48);
+ uint64_t x125 = (x124 >> 0x16);
+ uint32_t x126 = ((uint32_t)x124 & 0x3fffff);
+ uint64_t x127 = (x125 + x47);
+ uint64_t x128 = (x127 >> 0x16);
+ uint32_t x129 = ((uint32_t)x127 & 0x3fffff);
+ uint64_t x130 = (x128 + x46);
+ uint64_t x131 = (x130 >> 0x16);
+ uint32_t x132 = ((uint32_t)x130 & 0x3fffff);
+ uint64_t x133 = (x131 + x45);
+ uint32_t x134 = (uint32_t) (x133 >> 0x16);
+ uint32_t x135 = ((uint32_t)x133 & 0x3fffff);
+ uint64_t x136 = (x69 + ((uint64_t)0xbb * x134));
+ uint32_t x137 = (uint32_t) (x136 >> 0x17);
+ uint32_t x138 = ((uint32_t)x136 & 0x7fffff);
+ uint32_t x139 = (x137 + x72);
+ uint32_t x140 = (x139 >> 0x16);
+ uint32_t x141 = (x139 & 0x3fffff);
+ return (Return x135, Return x132, Return x129, Return x126, Return x123, Return x120, Return x117, Return x114, Return x111, Return x108, Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, (x140 + x75), Return x141, Return x138))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_23limbs/fesub.c b/src/Specific/solinas32_2e511m187_23limbs/fesub.c
new file mode 100644
index 000000000..e4020c8b9
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/fesub.c
@@ -0,0 +1,72 @@
+static void fesub(uint32_t out[23], const uint32_t in1[23], const uint32_t in2[23]) {
+ { const uint32_t x46 = in1[22];
+ { const uint32_t x47 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x90 = in2[22];
+ { const uint32_t x91 = in2[21];
+ { const uint32_t x89 = in2[20];
+ { const uint32_t x87 = in2[19];
+ { const uint32_t x85 = in2[18];
+ { const uint32_t x83 = in2[17];
+ { const uint32_t x81 = in2[16];
+ { const uint32_t x79 = in2[15];
+ { const uint32_t x77 = in2[14];
+ { const uint32_t x75 = in2[13];
+ { const uint32_t x73 = in2[12];
+ { const uint32_t x71 = in2[11];
+ { const uint32_t x69 = in2[10];
+ { const uint32_t x67 = in2[9];
+ { const uint32_t x65 = in2[8];
+ { const uint32_t x63 = in2[7];
+ { const uint32_t x61 = in2[6];
+ { const uint32_t x59 = in2[5];
+ { const uint32_t x57 = in2[4];
+ { const uint32_t x55 = in2[3];
+ { const uint32_t x53 = in2[2];
+ { const uint32_t x51 = in2[1];
+ { const uint32_t x49 = in2[0];
+ out[0] = ((0xfffe8a + x5) - x49);
+ out[1] = ((0x7ffffe + x7) - x51);
+ out[2] = ((0x7ffffe + x9) - x53);
+ out[3] = ((0x7ffffe + x11) - x55);
+ out[4] = ((0xfffffe + x13) - x57);
+ out[5] = ((0x7ffffe + x15) - x59);
+ out[6] = ((0x7ffffe + x17) - x61);
+ out[7] = ((0x7ffffe + x19) - x63);
+ out[8] = ((0x7ffffe + x21) - x65);
+ out[9] = ((0xfffffe + x23) - x67);
+ out[10] = ((0x7ffffe + x25) - x69);
+ out[11] = ((0x7ffffe + x27) - x71);
+ out[12] = ((0x7ffffe + x29) - x73);
+ out[13] = ((0xfffffe + x31) - x75);
+ out[14] = ((0x7ffffe + x33) - x77);
+ out[15] = ((0x7ffffe + x35) - x79);
+ out[16] = ((0x7ffffe + x37) - x81);
+ out[17] = ((0x7ffffe + x39) - x83);
+ out[18] = ((0xfffffe + x41) - x85);
+ out[19] = ((0x7ffffe + x43) - x87);
+ out[20] = ((0x7ffffe + x45) - x89);
+ out[21] = ((0x7ffffe + x47) - x91);
+ out[22] = ((0x7ffffe + x46) - x90);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_23limbs/fesubDisplay.log b/src/Specific/solinas32_2e511m187_23limbs/fesubDisplay.log
new file mode 100644
index 000000000..a777c844f
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x90, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49))%core,
+ (((0x7ffffe + x46) - x90), ((0x7ffffe + x47) - x91), ((0x7ffffe + x45) - x89), ((0x7ffffe + x43) - x87), ((0xfffffe + x41) - x85), ((0x7ffffe + x39) - x83), ((0x7ffffe + x37) - x81), ((0x7ffffe + x35) - x79), ((0x7ffffe + x33) - x77), ((0xfffffe + x31) - x75), ((0x7ffffe + x29) - x73), ((0x7ffffe + x27) - x71), ((0x7ffffe + x25) - x69), ((0xfffffe + x23) - x67), ((0x7ffffe + x21) - x65), ((0x7ffffe + x19) - x63), ((0x7ffffe + x17) - x61), ((0x7ffffe + x15) - x59), ((0xfffffe + x13) - x57), ((0x7ffffe + x11) - x55), ((0x7ffffe + x9) - x53), ((0x7ffffe + x7) - x51), ((0xfffe8a + x5) - x49)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m187_23limbs/freeze.c b/src/Specific/solinas32_2e511m187_23limbs/freeze.c
new file mode 100644
index 000000000..60e669a9c
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/freeze.c
@@ -0,0 +1,119 @@
+static void freeze(uint32_t out[23], const uint32_t in1[23]) {
+ { const uint32_t x43 = in1[22];
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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];
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fff45);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x4, 0x3fffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x6, 0x3fffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x8, 0x3fffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x10, 0x7fffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x12, 0x3fffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x14, 0x3fffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x16, 0x3fffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x18, 0x3fffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x20, 0x7fffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x22, 0x3fffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x24, 0x3fffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x26, 0x3fffff);
+ { uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x28, 0x7fffff);
+ { uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x30, 0x3fffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x32, 0x3fffff);
+ { uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x34, 0x3fffff);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x36, 0x3fffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x38, 0x7fffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x40, 0x3fffff);
+ { uint32_t x106, uint8_t x107 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x42, 0x3fffff);
+ { uint32_t x109, uint8_t x110 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x44, 0x3fffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x43, 0x3fffff);
+ { uint32_t x114 = cmovznz32(x113, 0x0, 0xffffffff);
+ { uint32_t x115 = (x114 & 0x7fff45);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x46, Return x115);
+ { uint32_t x119 = (x114 & 0x3fffff);
+ { uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x49, Return x119);
+ { uint32_t x123 = (x114 & 0x3fffff);
+ { uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x52, Return x123);
+ { uint32_t x127 = (x114 & 0x3fffff);
+ { uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x55, Return x127);
+ { uint32_t x131 = (x114 & 0x7fffff);
+ { uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x58, Return x131);
+ { uint32_t x135 = (x114 & 0x3fffff);
+ { uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x61, Return x135);
+ { uint32_t x139 = (x114 & 0x3fffff);
+ { uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x64, Return x139);
+ { uint32_t x143 = (x114 & 0x3fffff);
+ { uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x67, Return x143);
+ { uint32_t x147 = (x114 & 0x3fffff);
+ { uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x70, Return x147);
+ { uint32_t x151 = (x114 & 0x7fffff);
+ { uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x73, Return x151);
+ { uint32_t x155 = (x114 & 0x3fffff);
+ { uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x76, Return x155);
+ { uint32_t x159 = (x114 & 0x3fffff);
+ { uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x79, Return x159);
+ { uint32_t x163 = (x114 & 0x3fffff);
+ { uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x82, Return x163);
+ { uint32_t x167 = (x114 & 0x7fffff);
+ { uint32_t x169, uint8_t x170 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x85, Return x167);
+ { uint32_t x171 = (x114 & 0x3fffff);
+ { uint32_t x173, uint8_t x174 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x170, Return x88, Return x171);
+ { uint32_t x175 = (x114 & 0x3fffff);
+ { uint32_t x177, uint8_t x178 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x174, Return x91, Return x175);
+ { uint32_t x179 = (x114 & 0x3fffff);
+ { uint32_t x181, uint8_t x182 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x178, Return x94, Return x179);
+ { uint32_t x183 = (x114 & 0x3fffff);
+ { uint32_t x185, uint8_t x186 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x182, Return x97, Return x183);
+ { uint32_t x187 = (x114 & 0x7fffff);
+ { uint32_t x189, uint8_t x190 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x186, Return x100, Return x187);
+ { uint32_t x191 = (x114 & 0x3fffff);
+ { uint32_t x193, uint8_t x194 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x190, Return x103, Return x191);
+ { uint32_t x195 = (x114 & 0x3fffff);
+ { uint32_t x197, uint8_t x198 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x194, Return x106, Return x195);
+ { uint32_t x199 = (x114 & 0x3fffff);
+ { uint32_t x201, uint8_t x202 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x198, Return x109, Return x199);
+ { uint32_t x203 = (x114 & 0x3fffff);
+ { uint32_t x205, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x202, Return x112, Return x203);
+ out[0] = x117;
+ out[1] = x121;
+ out[2] = x125;
+ out[3] = x129;
+ out[4] = x133;
+ out[5] = x137;
+ out[6] = x141;
+ out[7] = x145;
+ out[8] = x149;
+ out[9] = x153;
+ out[10] = x157;
+ out[11] = x161;
+ out[12] = x165;
+ out[13] = x169;
+ out[14] = x173;
+ out[15] = x177;
+ out[16] = x181;
+ out[17] = x185;
+ out[18] = x189;
+ out[19] = x193;
+ out[20] = x197;
+ out[21] = x201;
+ out[22] = x205;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m187_23limbs/freezeDisplay.log b/src/Specific/solinas32_2e511m187_23limbs/freezeDisplay.log
new file mode 100644
index 000000000..a442982ff
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187_23limbs/freezeDisplay.log
@@ -0,0 +1,77 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x43, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fff45);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x4, 0x3fffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x6, 0x3fffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x8, 0x3fffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x10, 0x7fffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x12, 0x3fffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x14, 0x3fffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x16, 0x3fffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x18, 0x3fffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x20, 0x7fffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x22, 0x3fffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x24, 0x3fffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x26, 0x3fffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x28, 0x7fffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x30, 0x3fffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x32, 0x3fffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x34, 0x3fffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x36, 0x3fffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x38, 0x7fffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x40, 0x3fffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x42, 0x3fffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x44, 0x3fffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x43, 0x3fffff);
+ uint32_t x114 = cmovznz32(x113, 0x0, 0xffffffff);
+ uint32_t x115 = (x114 & 0x7fff45);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x46, Return x115);
+ uint32_t x119 = (x114 & 0x3fffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x49, Return x119);
+ uint32_t x123 = (x114 & 0x3fffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x52, Return x123);
+ uint32_t x127 = (x114 & 0x3fffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x55, Return x127);
+ uint32_t x131 = (x114 & 0x7fffff);
+ uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x58, Return x131);
+ uint32_t x135 = (x114 & 0x3fffff);
+ uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x61, Return x135);
+ uint32_t x139 = (x114 & 0x3fffff);
+ uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x64, Return x139);
+ uint32_t x143 = (x114 & 0x3fffff);
+ uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x67, Return x143);
+ uint32_t x147 = (x114 & 0x3fffff);
+ uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x70, Return x147);
+ uint32_t x151 = (x114 & 0x7fffff);
+ uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x73, Return x151);
+ uint32_t x155 = (x114 & 0x3fffff);
+ uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x76, Return x155);
+ uint32_t x159 = (x114 & 0x3fffff);
+ uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x79, Return x159);
+ uint32_t x163 = (x114 & 0x3fffff);
+ uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x82, Return x163);
+ uint32_t x167 = (x114 & 0x7fffff);
+ uint32_t x169, uint8_t x170 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x85, Return x167);
+ uint32_t x171 = (x114 & 0x3fffff);
+ uint32_t x173, uint8_t x174 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x170, Return x88, Return x171);
+ uint32_t x175 = (x114 & 0x3fffff);
+ uint32_t x177, uint8_t x178 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x174, Return x91, Return x175);
+ uint32_t x179 = (x114 & 0x3fffff);
+ uint32_t x181, uint8_t x182 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x178, Return x94, Return x179);
+ uint32_t x183 = (x114 & 0x3fffff);
+ uint32_t x185, uint8_t x186 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x182, Return x97, Return x183);
+ uint32_t x187 = (x114 & 0x7fffff);
+ uint32_t x189, uint8_t x190 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x186, Return x100, Return x187);
+ uint32_t x191 = (x114 & 0x3fffff);
+ uint32_t x193, uint8_t x194 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x190, Return x103, Return x191);
+ uint32_t x195 = (x114 & 0x3fffff);
+ uint32_t x197, uint8_t x198 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x194, Return x106, Return x195);
+ uint32_t x199 = (x114 & 0x3fffff);
+ uint32_t x201, uint8_t x202 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x198, Return x109, Return x199);
+ uint32_t x203 = (x114 & 0x3fffff);
+ uint32_t x205, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x202, Return x112, Return x203);
+ (Return x205, Return x201, Return x197, Return x193, Return x189, Return x185, Return x181, Return x177, Return x173, Return x169, Return x165, Return x161, Return x157, Return x153, Return x149, Return x145, Return x141, Return x137, Return x133, Return x129, Return x125, Return x121, Return x117))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_23limbs/feadd.c b/src/Specific/solinas32_2e511m481_23limbs/feadd.c
new file mode 100644
index 000000000..3ec1f7bb3
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/feadd.c
@@ -0,0 +1,72 @@
+static void feadd(uint32_t out[23], const uint32_t in1[23], const uint32_t in2[23]) {
+ { const uint32_t x46 = in1[22];
+ { const uint32_t x47 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x90 = in2[22];
+ { const uint32_t x91 = in2[21];
+ { const uint32_t x89 = in2[20];
+ { const uint32_t x87 = in2[19];
+ { const uint32_t x85 = in2[18];
+ { const uint32_t x83 = in2[17];
+ { const uint32_t x81 = in2[16];
+ { const uint32_t x79 = in2[15];
+ { const uint32_t x77 = in2[14];
+ { const uint32_t x75 = in2[13];
+ { const uint32_t x73 = in2[12];
+ { const uint32_t x71 = in2[11];
+ { const uint32_t x69 = in2[10];
+ { const uint32_t x67 = in2[9];
+ { const uint32_t x65 = in2[8];
+ { const uint32_t x63 = in2[7];
+ { const uint32_t x61 = in2[6];
+ { const uint32_t x59 = in2[5];
+ { const uint32_t x57 = in2[4];
+ { const uint32_t x55 = in2[3];
+ { const uint32_t x53 = in2[2];
+ { const uint32_t x51 = in2[1];
+ { const uint32_t x49 = in2[0];
+ out[0] = (x5 + x49);
+ out[1] = (x7 + x51);
+ out[2] = (x9 + x53);
+ out[3] = (x11 + x55);
+ out[4] = (x13 + x57);
+ out[5] = (x15 + x59);
+ out[6] = (x17 + x61);
+ out[7] = (x19 + x63);
+ out[8] = (x21 + x65);
+ out[9] = (x23 + x67);
+ out[10] = (x25 + x69);
+ out[11] = (x27 + x71);
+ out[12] = (x29 + x73);
+ out[13] = (x31 + x75);
+ out[14] = (x33 + x77);
+ out[15] = (x35 + x79);
+ out[16] = (x37 + x81);
+ out[17] = (x39 + x83);
+ out[18] = (x41 + x85);
+ out[19] = (x43 + x87);
+ out[20] = (x45 + x89);
+ out[21] = (x47 + x91);
+ out[22] = (x46 + x90);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m481_23limbs/feaddDisplay.log b/src/Specific/solinas32_2e511m481_23limbs/feaddDisplay.log
new file mode 100644
index 000000000..c6d6c303e
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x90, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49))%core,
+ ((x46 + x90), (x47 + x91), (x45 + x89), (x43 + x87), (x41 + x85), (x39 + x83), (x37 + x81), (x35 + x79), (x33 + x77), (x31 + x75), (x29 + x73), (x27 + x71), (x25 + x69), (x23 + x67), (x21 + x65), (x19 + x63), (x17 + x61), (x15 + x59), (x13 + x57), (x11 + x55), (x9 + x53), (x7 + x51), (x5 + x49)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_23limbs/fesquare.c b/src/Specific/solinas32_2e511m481_23limbs/fesquare.c
new file mode 100644
index 000000000..932e04c59
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/fesquare.c
@@ -0,0 +1,146 @@
+static void fesquare(uint32_t out[23], const uint32_t in1[23]) {
+ { const uint32_t x43 = in1[22];
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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 x45 = (((uint64_t)x2 * x43) + ((0x2 * ((uint64_t)x4 * x44)) + ((0x2 * ((uint64_t)x6 * x42)) + ((0x2 * ((uint64_t)x8 * x40)) + (((uint64_t)x10 * x38) + ((0x2 * ((uint64_t)x12 * x36)) + ((0x2 * ((uint64_t)x14 * x34)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + (((uint64_t)x20 * x28) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + (((uint64_t)x28 * x20) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((0x2 * ((uint64_t)x34 * x14)) + ((0x2 * ((uint64_t)x36 * x12)) + (((uint64_t)x38 * x10) + ((0x2 * ((uint64_t)x40 * x8)) + ((0x2 * ((uint64_t)x42 * x6)) + ((0x2 * ((uint64_t)x44 * x4)) + ((uint64_t)x43 * x2)))))))))))))))))))))));
+ { uint64_t x46 = ((((uint64_t)x2 * x44) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + ((0x2 * ((uint64_t)x12 * x34)) + ((0x2 * ((uint64_t)x14 * x32)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + ((0x2 * ((uint64_t)x32 * x14)) + ((0x2 * ((uint64_t)x34 * x12)) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0x1e1 * ((uint64_t)x43 * x43)));
+ { uint64_t x47 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + (((uint64_t)x6 * x38) + (((uint64_t)x8 * x36) + (((uint64_t)x10 * x34) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (((uint64_t)x34 * x10) + (((uint64_t)x36 * x8) + (((uint64_t)x38 * x6) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0x1e1 * (((uint64_t)x44 * x43) + ((uint64_t)x43 * x44))));
+ { uint64_t x48 = ((((uint64_t)x2 * x40) + (((uint64_t)x4 * x38) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + (((uint64_t)x38 * x4) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0x1e1 * (((uint64_t)x42 * x43) + (((uint64_t)x44 * x44) + ((uint64_t)x43 * x42)))));
+ { uint64_t x49 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + ((0x2 * ((uint64_t)x8 * x32)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((0x2 * ((uint64_t)x32 * x8)) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x40 * x43)) + ((0x2 * ((uint64_t)x42 * x44)) + ((0x2 * ((uint64_t)x44 * x42)) + (0x2 * ((uint64_t)x43 * x40)))))));
+ { uint64_t x50 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + (((uint64_t)x10 * x28) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + (((uint64_t)x28 * x10) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0x1e1 * (((uint64_t)x38 * x43) + ((0x2 * ((uint64_t)x40 * x44)) + ((0x2 * ((uint64_t)x42 * x42)) + ((0x2 * ((uint64_t)x44 * x40)) + ((uint64_t)x43 * x38)))))));
+ { uint64_t x51 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0x1e1 * (((uint64_t)x36 * x43) + (((uint64_t)x38 * x44) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (((uint64_t)x44 * x38) + ((uint64_t)x43 * x36))))))));
+ { uint64_t x52 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x1e1 * (((uint64_t)x34 * x43) + (((uint64_t)x36 * x44) + (((uint64_t)x38 * x42) + ((0x2 * ((uint64_t)x40 * x40)) + (((uint64_t)x42 * x38) + (((uint64_t)x44 * x36) + ((uint64_t)x43 * x34)))))))));
+ { uint64_t x53 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x1e1 * (((uint64_t)x32 * x43) + (((uint64_t)x34 * x44) + (((uint64_t)x36 * x42) + (((uint64_t)x38 * x40) + (((uint64_t)x40 * x38) + (((uint64_t)x42 * x36) + (((uint64_t)x44 * x34) + ((uint64_t)x43 * x32))))))))));
+ { uint64_t x54 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + (((uint64_t)x10 * x20) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + (((uint64_t)x20 * x10) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x30 * x43)) + ((0x2 * ((uint64_t)x32 * x44)) + ((0x2 * ((uint64_t)x34 * x42)) + ((0x2 * ((uint64_t)x36 * x40)) + (((uint64_t)x38 * x38) + ((0x2 * ((uint64_t)x40 * x36)) + ((0x2 * ((uint64_t)x42 * x34)) + ((0x2 * ((uint64_t)x44 * x32)) + (0x2 * ((uint64_t)x43 * x30))))))))))));
+ { uint64_t x55 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x1e1 * (((uint64_t)x28 * x43) + ((0x2 * ((uint64_t)x30 * x44)) + ((0x2 * ((uint64_t)x32 * x42)) + ((0x2 * ((uint64_t)x34 * x40)) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((0x2 * ((uint64_t)x40 * x34)) + ((0x2 * ((uint64_t)x42 * x32)) + ((0x2 * ((uint64_t)x44 * x30)) + ((uint64_t)x43 * x28))))))))))));
+ { uint64_t x56 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x1e1 * (((uint64_t)x26 * x43) + (((uint64_t)x28 * x44) + ((0x2 * ((uint64_t)x30 * x42)) + ((0x2 * ((uint64_t)x32 * x40)) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + ((0x2 * ((uint64_t)x40 * x32)) + ((0x2 * ((uint64_t)x42 * x30)) + (((uint64_t)x44 * x28) + ((uint64_t)x43 * x26)))))))))))));
+ { uint64_t x57 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x1e1 * (((uint64_t)x24 * x43) + (((uint64_t)x26 * x44) + (((uint64_t)x28 * x42) + ((0x2 * ((uint64_t)x30 * x40)) + (((uint64_t)x32 * x38) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + (((uint64_t)x38 * x32) + ((0x2 * ((uint64_t)x40 * x30)) + (((uint64_t)x42 * x28) + (((uint64_t)x44 * x26) + ((uint64_t)x43 * x24))))))))))))));
+ { uint64_t x58 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + ((0x2 * ((uint64_t)x8 * x14)) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + ((0x2 * ((uint64_t)x14 * x8)) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x22 * x43)) + ((0x2 * ((uint64_t)x24 * x44)) + ((0x2 * ((uint64_t)x26 * x42)) + ((0x2 * ((uint64_t)x28 * x40)) + ((0x2 * ((uint64_t)x30 * x38)) + ((0x2 * ((uint64_t)x32 * x36)) + ((0x2 * ((uint64_t)x34 * x34)) + ((0x2 * ((uint64_t)x36 * x32)) + ((0x2 * ((uint64_t)x38 * x30)) + ((0x2 * ((uint64_t)x40 * x28)) + ((0x2 * ((uint64_t)x42 * x26)) + ((0x2 * ((uint64_t)x44 * x24)) + (0x2 * ((uint64_t)x43 * x22))))))))))))))));
+ { uint64_t x59 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x1e1 * (((uint64_t)x20 * x43) + ((0x2 * ((uint64_t)x22 * x44)) + ((0x2 * ((uint64_t)x24 * x42)) + ((0x2 * ((uint64_t)x26 * x40)) + (((uint64_t)x28 * x38) + ((0x2 * ((uint64_t)x30 * x36)) + ((0x2 * ((uint64_t)x32 * x34)) + ((0x2 * ((uint64_t)x34 * x32)) + ((0x2 * ((uint64_t)x36 * x30)) + (((uint64_t)x38 * x28) + ((0x2 * ((uint64_t)x40 * x26)) + ((0x2 * ((uint64_t)x42 * x24)) + ((0x2 * ((uint64_t)x44 * x22)) + ((uint64_t)x43 * x20))))))))))))))));
+ { uint64_t x60 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (0x1e1 * (((uint64_t)x18 * x43) + (((uint64_t)x20 * x44) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + (((uint64_t)x26 * x38) + (((uint64_t)x28 * x36) + ((0x2 * ((uint64_t)x30 * x34)) + ((0x2 * ((uint64_t)x32 * x32)) + ((0x2 * ((uint64_t)x34 * x30)) + (((uint64_t)x36 * x28) + (((uint64_t)x38 * x26) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (((uint64_t)x44 * x20) + ((uint64_t)x43 * x18)))))))))))))))));
+ { uint64_t x61 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x1e1 * (((uint64_t)x16 * x43) + (((uint64_t)x18 * x44) + (((uint64_t)x20 * x42) + ((0x2 * ((uint64_t)x22 * x40)) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((0x2 * ((uint64_t)x40 * x22)) + (((uint64_t)x42 * x20) + (((uint64_t)x44 * x18) + ((uint64_t)x43 * x16))))))))))))))))));
+ { uint64_t x62 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x1e1 * (((uint64_t)x14 * x43) + (((uint64_t)x16 * x44) + (((uint64_t)x18 * x42) + (((uint64_t)x20 * x40) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + (((uint64_t)x40 * x20) + (((uint64_t)x42 * x18) + (((uint64_t)x44 * x16) + ((uint64_t)x43 * x14)))))))))))))))))));
+ { uint64_t x63 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x1e1 * ((0x2 * ((uint64_t)x12 * x43)) + ((0x2 * ((uint64_t)x14 * x44)) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + (((uint64_t)x20 * x38) + ((0x2 * ((uint64_t)x22 * x36)) + ((0x2 * ((uint64_t)x24 * x34)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + ((0x2 * ((uint64_t)x34 * x24)) + ((0x2 * ((uint64_t)x36 * x22)) + (((uint64_t)x38 * x20) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + ((0x2 * ((uint64_t)x44 * x14)) + (0x2 * ((uint64_t)x43 * x12)))))))))))))))))))));
+ { uint64_t x64 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x1e1 * (((uint64_t)x10 * x43) + ((0x2 * ((uint64_t)x12 * x44)) + ((0x2 * ((uint64_t)x14 * x42)) + ((0x2 * ((uint64_t)x16 * x40)) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + ((0x2 * ((uint64_t)x22 * x34)) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((0x2 * ((uint64_t)x34 * x22)) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((0x2 * ((uint64_t)x40 * x16)) + ((0x2 * ((uint64_t)x42 * x14)) + ((0x2 * ((uint64_t)x44 * x12)) + ((uint64_t)x43 * x10)))))))))))))))))))));
+ { uint64_t x65 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x1e1 * (((uint64_t)x8 * x43) + (((uint64_t)x10 * x44) + ((0x2 * ((uint64_t)x12 * x42)) + ((0x2 * ((uint64_t)x14 * x40)) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + ((0x2 * ((uint64_t)x40 * x14)) + ((0x2 * ((uint64_t)x42 * x12)) + (((uint64_t)x44 * x10) + ((uint64_t)x43 * x8))))))))))))))))))))));
+ { uint64_t x66 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1e1 * (((uint64_t)x6 * x43) + (((uint64_t)x8 * x44) + (((uint64_t)x10 * x42) + ((0x2 * ((uint64_t)x12 * x40)) + (((uint64_t)x14 * x38) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + (((uint64_t)x38 * x14) + ((0x2 * ((uint64_t)x40 * x12)) + (((uint64_t)x42 * x10) + (((uint64_t)x44 * x8) + ((uint64_t)x43 * x6)))))))))))))))))))))));
+ { uint64_t x67 = (((uint64_t)x2 * x2) + (0x1e1 * ((0x2 * ((uint64_t)x4 * x43)) + ((0x2 * ((uint64_t)x6 * x44)) + ((0x2 * ((uint64_t)x8 * x42)) + ((0x2 * ((uint64_t)x10 * x40)) + ((0x2 * ((uint64_t)x12 * x38)) + ((0x2 * ((uint64_t)x14 * x36)) + ((0x2 * ((uint64_t)x16 * x34)) + ((0x2 * ((uint64_t)x18 * x32)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + ((0x2 * ((uint64_t)x32 * x18)) + ((0x2 * ((uint64_t)x34 * x16)) + ((0x2 * ((uint64_t)x36 * x14)) + ((0x2 * ((uint64_t)x38 * x12)) + ((0x2 * ((uint64_t)x40 * x10)) + ((0x2 * ((uint64_t)x42 * x8)) + ((0x2 * ((uint64_t)x44 * x6)) + (0x2 * ((uint64_t)x43 * x4)))))))))))))))))))))))));
+ { uint64_t x68 = (x67 >> 0x17);
+ { uint32_t x69 = ((uint32_t)x67 & 0x7fffff);
+ { uint64_t x70 = (x68 + x66);
+ { uint64_t x71 = (x70 >> 0x16);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ { uint64_t x73 = (x71 + x65);
+ { uint64_t x74 = (x73 >> 0x16);
+ { uint32_t x75 = ((uint32_t)x73 & 0x3fffff);
+ { uint64_t x76 = (x74 + x64);
+ { uint64_t x77 = (x76 >> 0x16);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3fffff);
+ { uint64_t x79 = (x77 + x63);
+ { uint64_t x80 = (x79 >> 0x17);
+ { uint32_t x81 = ((uint32_t)x79 & 0x7fffff);
+ { uint64_t x82 = (x80 + x62);
+ { uint64_t x83 = (x82 >> 0x16);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3fffff);
+ { uint64_t x85 = (x83 + x61);
+ { uint64_t x86 = (x85 >> 0x16);
+ { uint32_t x87 = ((uint32_t)x85 & 0x3fffff);
+ { uint64_t x88 = (x86 + x60);
+ { uint64_t x89 = (x88 >> 0x16);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3fffff);
+ { uint64_t x91 = (x89 + x59);
+ { uint64_t x92 = (x91 >> 0x16);
+ { uint32_t x93 = ((uint32_t)x91 & 0x3fffff);
+ { uint64_t x94 = (x92 + x58);
+ { uint64_t x95 = (x94 >> 0x17);
+ { uint32_t x96 = ((uint32_t)x94 & 0x7fffff);
+ { uint64_t x97 = (x95 + x57);
+ { uint64_t x98 = (x97 >> 0x16);
+ { uint32_t x99 = ((uint32_t)x97 & 0x3fffff);
+ { uint64_t x100 = (x98 + x56);
+ { uint64_t x101 = (x100 >> 0x16);
+ { uint32_t x102 = ((uint32_t)x100 & 0x3fffff);
+ { uint64_t x103 = (x101 + x55);
+ { uint64_t x104 = (x103 >> 0x16);
+ { uint32_t x105 = ((uint32_t)x103 & 0x3fffff);
+ { uint64_t x106 = (x104 + x54);
+ { uint64_t x107 = (x106 >> 0x17);
+ { uint32_t x108 = ((uint32_t)x106 & 0x7fffff);
+ { uint64_t x109 = (x107 + x53);
+ { uint64_t x110 = (x109 >> 0x16);
+ { uint32_t x111 = ((uint32_t)x109 & 0x3fffff);
+ { uint64_t x112 = (x110 + x52);
+ { uint64_t x113 = (x112 >> 0x16);
+ { uint32_t x114 = ((uint32_t)x112 & 0x3fffff);
+ { uint64_t x115 = (x113 + x51);
+ { uint64_t x116 = (x115 >> 0x16);
+ { uint32_t x117 = ((uint32_t)x115 & 0x3fffff);
+ { uint64_t x118 = (x116 + x50);
+ { uint64_t x119 = (x118 >> 0x16);
+ { uint32_t x120 = ((uint32_t)x118 & 0x3fffff);
+ { uint64_t x121 = (x119 + x49);
+ { uint64_t x122 = (x121 >> 0x17);
+ { uint32_t x123 = ((uint32_t)x121 & 0x7fffff);
+ { uint64_t x124 = (x122 + x48);
+ { uint64_t x125 = (x124 >> 0x16);
+ { uint32_t x126 = ((uint32_t)x124 & 0x3fffff);
+ { uint64_t x127 = (x125 + x47);
+ { uint64_t x128 = (x127 >> 0x16);
+ { uint32_t x129 = ((uint32_t)x127 & 0x3fffff);
+ { uint64_t x130 = (x128 + x46);
+ { uint64_t x131 = (x130 >> 0x16);
+ { uint32_t x132 = ((uint32_t)x130 & 0x3fffff);
+ { uint64_t x133 = (x131 + x45);
+ { uint32_t x134 = (uint32_t) (x133 >> 0x16);
+ { uint32_t x135 = ((uint32_t)x133 & 0x3fffff);
+ { uint64_t x136 = (x69 + ((uint64_t)0x1e1 * x134));
+ { uint32_t x137 = (uint32_t) (x136 >> 0x17);
+ { uint32_t x138 = ((uint32_t)x136 & 0x7fffff);
+ { uint32_t x139 = (x137 + x72);
+ { uint32_t x140 = (x139 >> 0x16);
+ { uint32_t x141 = (x139 & 0x3fffff);
+ out[0] = x138;
+ out[1] = x141;
+ out[2] = (x140 + x75);
+ out[3] = x78;
+ out[4] = x81;
+ out[5] = x84;
+ out[6] = x87;
+ out[7] = x90;
+ out[8] = x93;
+ out[9] = x96;
+ out[10] = x99;
+ out[11] = x102;
+ out[12] = x105;
+ out[13] = x108;
+ out[14] = x111;
+ out[15] = x114;
+ out[16] = x117;
+ out[17] = x120;
+ out[18] = x123;
+ out[19] = x126;
+ out[20] = x129;
+ out[21] = x132;
+ out[22] = x135;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m481_23limbs/fesquareDisplay.log b/src/Specific/solinas32_2e511m481_23limbs/fesquareDisplay.log
new file mode 100644
index 000000000..8e9a96339
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/fesquareDisplay.log
@@ -0,0 +1,104 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x43, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x45 = (((uint64_t)x2 * x43) + ((0x2 * ((uint64_t)x4 * x44)) + ((0x2 * ((uint64_t)x6 * x42)) + ((0x2 * ((uint64_t)x8 * x40)) + (((uint64_t)x10 * x38) + ((0x2 * ((uint64_t)x12 * x36)) + ((0x2 * ((uint64_t)x14 * x34)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + (((uint64_t)x20 * x28) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + (((uint64_t)x28 * x20) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((0x2 * ((uint64_t)x34 * x14)) + ((0x2 * ((uint64_t)x36 * x12)) + (((uint64_t)x38 * x10) + ((0x2 * ((uint64_t)x40 * x8)) + ((0x2 * ((uint64_t)x42 * x6)) + ((0x2 * ((uint64_t)x44 * x4)) + ((uint64_t)x43 * x2)))))))))))))))))))))));
+ uint64_t x46 = ((((uint64_t)x2 * x44) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + ((0x2 * ((uint64_t)x12 * x34)) + ((0x2 * ((uint64_t)x14 * x32)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + ((0x2 * ((uint64_t)x32 * x14)) + ((0x2 * ((uint64_t)x34 * x12)) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0x1e1 * ((uint64_t)x43 * x43)));
+ uint64_t x47 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + (((uint64_t)x6 * x38) + (((uint64_t)x8 * x36) + (((uint64_t)x10 * x34) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (((uint64_t)x34 * x10) + (((uint64_t)x36 * x8) + (((uint64_t)x38 * x6) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0x1e1 * (((uint64_t)x44 * x43) + ((uint64_t)x43 * x44))));
+ uint64_t x48 = ((((uint64_t)x2 * x40) + (((uint64_t)x4 * x38) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + (((uint64_t)x38 * x4) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0x1e1 * (((uint64_t)x42 * x43) + (((uint64_t)x44 * x44) + ((uint64_t)x43 * x42)))));
+ uint64_t x49 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + ((0x2 * ((uint64_t)x8 * x32)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((0x2 * ((uint64_t)x32 * x8)) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x40 * x43)) + ((0x2 * ((uint64_t)x42 * x44)) + ((0x2 * ((uint64_t)x44 * x42)) + (0x2 * ((uint64_t)x43 * x40)))))));
+ uint64_t x50 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + (((uint64_t)x10 * x28) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + (((uint64_t)x28 * x10) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0x1e1 * (((uint64_t)x38 * x43) + ((0x2 * ((uint64_t)x40 * x44)) + ((0x2 * ((uint64_t)x42 * x42)) + ((0x2 * ((uint64_t)x44 * x40)) + ((uint64_t)x43 * x38)))))));
+ uint64_t x51 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0x1e1 * (((uint64_t)x36 * x43) + (((uint64_t)x38 * x44) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (((uint64_t)x44 * x38) + ((uint64_t)x43 * x36))))))));
+ uint64_t x52 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x1e1 * (((uint64_t)x34 * x43) + (((uint64_t)x36 * x44) + (((uint64_t)x38 * x42) + ((0x2 * ((uint64_t)x40 * x40)) + (((uint64_t)x42 * x38) + (((uint64_t)x44 * x36) + ((uint64_t)x43 * x34)))))))));
+ uint64_t x53 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x1e1 * (((uint64_t)x32 * x43) + (((uint64_t)x34 * x44) + (((uint64_t)x36 * x42) + (((uint64_t)x38 * x40) + (((uint64_t)x40 * x38) + (((uint64_t)x42 * x36) + (((uint64_t)x44 * x34) + ((uint64_t)x43 * x32))))))))));
+ uint64_t x54 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + (((uint64_t)x10 * x20) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + (((uint64_t)x20 * x10) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x30 * x43)) + ((0x2 * ((uint64_t)x32 * x44)) + ((0x2 * ((uint64_t)x34 * x42)) + ((0x2 * ((uint64_t)x36 * x40)) + (((uint64_t)x38 * x38) + ((0x2 * ((uint64_t)x40 * x36)) + ((0x2 * ((uint64_t)x42 * x34)) + ((0x2 * ((uint64_t)x44 * x32)) + (0x2 * ((uint64_t)x43 * x30))))))))))));
+ uint64_t x55 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x1e1 * (((uint64_t)x28 * x43) + ((0x2 * ((uint64_t)x30 * x44)) + ((0x2 * ((uint64_t)x32 * x42)) + ((0x2 * ((uint64_t)x34 * x40)) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((0x2 * ((uint64_t)x40 * x34)) + ((0x2 * ((uint64_t)x42 * x32)) + ((0x2 * ((uint64_t)x44 * x30)) + ((uint64_t)x43 * x28))))))))))));
+ uint64_t x56 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x1e1 * (((uint64_t)x26 * x43) + (((uint64_t)x28 * x44) + ((0x2 * ((uint64_t)x30 * x42)) + ((0x2 * ((uint64_t)x32 * x40)) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + ((0x2 * ((uint64_t)x40 * x32)) + ((0x2 * ((uint64_t)x42 * x30)) + (((uint64_t)x44 * x28) + ((uint64_t)x43 * x26)))))))))))));
+ uint64_t x57 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x1e1 * (((uint64_t)x24 * x43) + (((uint64_t)x26 * x44) + (((uint64_t)x28 * x42) + ((0x2 * ((uint64_t)x30 * x40)) + (((uint64_t)x32 * x38) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + (((uint64_t)x38 * x32) + ((0x2 * ((uint64_t)x40 * x30)) + (((uint64_t)x42 * x28) + (((uint64_t)x44 * x26) + ((uint64_t)x43 * x24))))))))))))));
+ uint64_t x58 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + ((0x2 * ((uint64_t)x8 * x14)) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + ((0x2 * ((uint64_t)x14 * x8)) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x22 * x43)) + ((0x2 * ((uint64_t)x24 * x44)) + ((0x2 * ((uint64_t)x26 * x42)) + ((0x2 * ((uint64_t)x28 * x40)) + ((0x2 * ((uint64_t)x30 * x38)) + ((0x2 * ((uint64_t)x32 * x36)) + ((0x2 * ((uint64_t)x34 * x34)) + ((0x2 * ((uint64_t)x36 * x32)) + ((0x2 * ((uint64_t)x38 * x30)) + ((0x2 * ((uint64_t)x40 * x28)) + ((0x2 * ((uint64_t)x42 * x26)) + ((0x2 * ((uint64_t)x44 * x24)) + (0x2 * ((uint64_t)x43 * x22))))))))))))))));
+ uint64_t x59 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x1e1 * (((uint64_t)x20 * x43) + ((0x2 * ((uint64_t)x22 * x44)) + ((0x2 * ((uint64_t)x24 * x42)) + ((0x2 * ((uint64_t)x26 * x40)) + (((uint64_t)x28 * x38) + ((0x2 * ((uint64_t)x30 * x36)) + ((0x2 * ((uint64_t)x32 * x34)) + ((0x2 * ((uint64_t)x34 * x32)) + ((0x2 * ((uint64_t)x36 * x30)) + (((uint64_t)x38 * x28) + ((0x2 * ((uint64_t)x40 * x26)) + ((0x2 * ((uint64_t)x42 * x24)) + ((0x2 * ((uint64_t)x44 * x22)) + ((uint64_t)x43 * x20))))))))))))))));
+ uint64_t x60 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (0x1e1 * (((uint64_t)x18 * x43) + (((uint64_t)x20 * x44) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + (((uint64_t)x26 * x38) + (((uint64_t)x28 * x36) + ((0x2 * ((uint64_t)x30 * x34)) + ((0x2 * ((uint64_t)x32 * x32)) + ((0x2 * ((uint64_t)x34 * x30)) + (((uint64_t)x36 * x28) + (((uint64_t)x38 * x26) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (((uint64_t)x44 * x20) + ((uint64_t)x43 * x18)))))))))))))))));
+ uint64_t x61 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x1e1 * (((uint64_t)x16 * x43) + (((uint64_t)x18 * x44) + (((uint64_t)x20 * x42) + ((0x2 * ((uint64_t)x22 * x40)) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((0x2 * ((uint64_t)x40 * x22)) + (((uint64_t)x42 * x20) + (((uint64_t)x44 * x18) + ((uint64_t)x43 * x16))))))))))))))))));
+ uint64_t x62 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x1e1 * (((uint64_t)x14 * x43) + (((uint64_t)x16 * x44) + (((uint64_t)x18 * x42) + (((uint64_t)x20 * x40) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + (((uint64_t)x40 * x20) + (((uint64_t)x42 * x18) + (((uint64_t)x44 * x16) + ((uint64_t)x43 * x14)))))))))))))))))));
+ uint64_t x63 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x1e1 * ((0x2 * ((uint64_t)x12 * x43)) + ((0x2 * ((uint64_t)x14 * x44)) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + (((uint64_t)x20 * x38) + ((0x2 * ((uint64_t)x22 * x36)) + ((0x2 * ((uint64_t)x24 * x34)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + ((0x2 * ((uint64_t)x34 * x24)) + ((0x2 * ((uint64_t)x36 * x22)) + (((uint64_t)x38 * x20) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + ((0x2 * ((uint64_t)x44 * x14)) + (0x2 * ((uint64_t)x43 * x12)))))))))))))))))))));
+ uint64_t x64 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x1e1 * (((uint64_t)x10 * x43) + ((0x2 * ((uint64_t)x12 * x44)) + ((0x2 * ((uint64_t)x14 * x42)) + ((0x2 * ((uint64_t)x16 * x40)) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + ((0x2 * ((uint64_t)x22 * x34)) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((0x2 * ((uint64_t)x34 * x22)) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((0x2 * ((uint64_t)x40 * x16)) + ((0x2 * ((uint64_t)x42 * x14)) + ((0x2 * ((uint64_t)x44 * x12)) + ((uint64_t)x43 * x10)))))))))))))))))))));
+ uint64_t x65 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x1e1 * (((uint64_t)x8 * x43) + (((uint64_t)x10 * x44) + ((0x2 * ((uint64_t)x12 * x42)) + ((0x2 * ((uint64_t)x14 * x40)) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + ((0x2 * ((uint64_t)x40 * x14)) + ((0x2 * ((uint64_t)x42 * x12)) + (((uint64_t)x44 * x10) + ((uint64_t)x43 * x8))))))))))))))))))))));
+ uint64_t x66 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1e1 * (((uint64_t)x6 * x43) + (((uint64_t)x8 * x44) + (((uint64_t)x10 * x42) + ((0x2 * ((uint64_t)x12 * x40)) + (((uint64_t)x14 * x38) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + (((uint64_t)x38 * x14) + ((0x2 * ((uint64_t)x40 * x12)) + (((uint64_t)x42 * x10) + (((uint64_t)x44 * x8) + ((uint64_t)x43 * x6)))))))))))))))))))))));
+ uint64_t x67 = (((uint64_t)x2 * x2) + (0x1e1 * ((0x2 * ((uint64_t)x4 * x43)) + ((0x2 * ((uint64_t)x6 * x44)) + ((0x2 * ((uint64_t)x8 * x42)) + ((0x2 * ((uint64_t)x10 * x40)) + ((0x2 * ((uint64_t)x12 * x38)) + ((0x2 * ((uint64_t)x14 * x36)) + ((0x2 * ((uint64_t)x16 * x34)) + ((0x2 * ((uint64_t)x18 * x32)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + ((0x2 * ((uint64_t)x32 * x18)) + ((0x2 * ((uint64_t)x34 * x16)) + ((0x2 * ((uint64_t)x36 * x14)) + ((0x2 * ((uint64_t)x38 * x12)) + ((0x2 * ((uint64_t)x40 * x10)) + ((0x2 * ((uint64_t)x42 * x8)) + ((0x2 * ((uint64_t)x44 * x6)) + (0x2 * ((uint64_t)x43 * x4)))))))))))))))))))))))));
+ uint64_t x68 = (x67 >> 0x17);
+ uint32_t x69 = ((uint32_t)x67 & 0x7fffff);
+ uint64_t x70 = (x68 + x66);
+ uint64_t x71 = (x70 >> 0x16);
+ uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ uint64_t x73 = (x71 + x65);
+ uint64_t x74 = (x73 >> 0x16);
+ uint32_t x75 = ((uint32_t)x73 & 0x3fffff);
+ uint64_t x76 = (x74 + x64);
+ uint64_t x77 = (x76 >> 0x16);
+ uint32_t x78 = ((uint32_t)x76 & 0x3fffff);
+ uint64_t x79 = (x77 + x63);
+ uint64_t x80 = (x79 >> 0x17);
+ uint32_t x81 = ((uint32_t)x79 & 0x7fffff);
+ uint64_t x82 = (x80 + x62);
+ uint64_t x83 = (x82 >> 0x16);
+ uint32_t x84 = ((uint32_t)x82 & 0x3fffff);
+ uint64_t x85 = (x83 + x61);
+ uint64_t x86 = (x85 >> 0x16);
+ uint32_t x87 = ((uint32_t)x85 & 0x3fffff);
+ uint64_t x88 = (x86 + x60);
+ uint64_t x89 = (x88 >> 0x16);
+ uint32_t x90 = ((uint32_t)x88 & 0x3fffff);
+ uint64_t x91 = (x89 + x59);
+ uint64_t x92 = (x91 >> 0x16);
+ uint32_t x93 = ((uint32_t)x91 & 0x3fffff);
+ uint64_t x94 = (x92 + x58);
+ uint64_t x95 = (x94 >> 0x17);
+ uint32_t x96 = ((uint32_t)x94 & 0x7fffff);
+ uint64_t x97 = (x95 + x57);
+ uint64_t x98 = (x97 >> 0x16);
+ uint32_t x99 = ((uint32_t)x97 & 0x3fffff);
+ uint64_t x100 = (x98 + x56);
+ uint64_t x101 = (x100 >> 0x16);
+ uint32_t x102 = ((uint32_t)x100 & 0x3fffff);
+ uint64_t x103 = (x101 + x55);
+ uint64_t x104 = (x103 >> 0x16);
+ uint32_t x105 = ((uint32_t)x103 & 0x3fffff);
+ uint64_t x106 = (x104 + x54);
+ uint64_t x107 = (x106 >> 0x17);
+ uint32_t x108 = ((uint32_t)x106 & 0x7fffff);
+ uint64_t x109 = (x107 + x53);
+ uint64_t x110 = (x109 >> 0x16);
+ uint32_t x111 = ((uint32_t)x109 & 0x3fffff);
+ uint64_t x112 = (x110 + x52);
+ uint64_t x113 = (x112 >> 0x16);
+ uint32_t x114 = ((uint32_t)x112 & 0x3fffff);
+ uint64_t x115 = (x113 + x51);
+ uint64_t x116 = (x115 >> 0x16);
+ uint32_t x117 = ((uint32_t)x115 & 0x3fffff);
+ uint64_t x118 = (x116 + x50);
+ uint64_t x119 = (x118 >> 0x16);
+ uint32_t x120 = ((uint32_t)x118 & 0x3fffff);
+ uint64_t x121 = (x119 + x49);
+ uint64_t x122 = (x121 >> 0x17);
+ uint32_t x123 = ((uint32_t)x121 & 0x7fffff);
+ uint64_t x124 = (x122 + x48);
+ uint64_t x125 = (x124 >> 0x16);
+ uint32_t x126 = ((uint32_t)x124 & 0x3fffff);
+ uint64_t x127 = (x125 + x47);
+ uint64_t x128 = (x127 >> 0x16);
+ uint32_t x129 = ((uint32_t)x127 & 0x3fffff);
+ uint64_t x130 = (x128 + x46);
+ uint64_t x131 = (x130 >> 0x16);
+ uint32_t x132 = ((uint32_t)x130 & 0x3fffff);
+ uint64_t x133 = (x131 + x45);
+ uint32_t x134 = (uint32_t) (x133 >> 0x16);
+ uint32_t x135 = ((uint32_t)x133 & 0x3fffff);
+ uint64_t x136 = (x69 + ((uint64_t)0x1e1 * x134));
+ uint32_t x137 = (uint32_t) (x136 >> 0x17);
+ uint32_t x138 = ((uint32_t)x136 & 0x7fffff);
+ uint32_t x139 = (x137 + x72);
+ uint32_t x140 = (x139 >> 0x16);
+ uint32_t x141 = (x139 & 0x3fffff);
+ return (Return x135, Return x132, Return x129, Return x126, Return x123, Return x120, Return x117, Return x114, Return x111, Return x108, Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, (x140 + x75), Return x141, Return x138))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_23limbs/fesub.c b/src/Specific/solinas32_2e511m481_23limbs/fesub.c
new file mode 100644
index 000000000..d1fab6eb6
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/fesub.c
@@ -0,0 +1,72 @@
+static void fesub(uint32_t out[23], const uint32_t in1[23], const uint32_t in2[23]) {
+ { const uint32_t x46 = in1[22];
+ { const uint32_t x47 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x90 = in2[22];
+ { const uint32_t x91 = in2[21];
+ { const uint32_t x89 = in2[20];
+ { const uint32_t x87 = in2[19];
+ { const uint32_t x85 = in2[18];
+ { const uint32_t x83 = in2[17];
+ { const uint32_t x81 = in2[16];
+ { const uint32_t x79 = in2[15];
+ { const uint32_t x77 = in2[14];
+ { const uint32_t x75 = in2[13];
+ { const uint32_t x73 = in2[12];
+ { const uint32_t x71 = in2[11];
+ { const uint32_t x69 = in2[10];
+ { const uint32_t x67 = in2[9];
+ { const uint32_t x65 = in2[8];
+ { const uint32_t x63 = in2[7];
+ { const uint32_t x61 = in2[6];
+ { const uint32_t x59 = in2[5];
+ { const uint32_t x57 = in2[4];
+ { const uint32_t x55 = in2[3];
+ { const uint32_t x53 = in2[2];
+ { const uint32_t x51 = in2[1];
+ { const uint32_t x49 = in2[0];
+ out[0] = ((Const 16776254 + x5) - x49);
+ out[1] = ((0x7ffffe + x7) - x51);
+ out[2] = ((0x7ffffe + x9) - x53);
+ out[3] = ((0x7ffffe + x11) - x55);
+ out[4] = ((0xfffffe + x13) - x57);
+ out[5] = ((0x7ffffe + x15) - x59);
+ out[6] = ((0x7ffffe + x17) - x61);
+ out[7] = ((0x7ffffe + x19) - x63);
+ out[8] = ((0x7ffffe + x21) - x65);
+ out[9] = ((0xfffffe + x23) - x67);
+ out[10] = ((0x7ffffe + x25) - x69);
+ out[11] = ((0x7ffffe + x27) - x71);
+ out[12] = ((0x7ffffe + x29) - x73);
+ out[13] = ((0xfffffe + x31) - x75);
+ out[14] = ((0x7ffffe + x33) - x77);
+ out[15] = ((0x7ffffe + x35) - x79);
+ out[16] = ((0x7ffffe + x37) - x81);
+ out[17] = ((0x7ffffe + x39) - x83);
+ out[18] = ((0xfffffe + x41) - x85);
+ out[19] = ((0x7ffffe + x43) - x87);
+ out[20] = ((0x7ffffe + x45) - x89);
+ out[21] = ((0x7ffffe + x47) - x91);
+ out[22] = ((0x7ffffe + x46) - x90);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m481_23limbs/fesubDisplay.log b/src/Specific/solinas32_2e511m481_23limbs/fesubDisplay.log
new file mode 100644
index 000000000..7731624f3
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x90, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49))%core,
+ (((0x7ffffe + x46) - x90), ((0x7ffffe + x47) - x91), ((0x7ffffe + x45) - x89), ((0x7ffffe + x43) - x87), ((0xfffffe + x41) - x85), ((0x7ffffe + x39) - x83), ((0x7ffffe + x37) - x81), ((0x7ffffe + x35) - x79), ((0x7ffffe + x33) - x77), ((0xfffffe + x31) - x75), ((0x7ffffe + x29) - x73), ((0x7ffffe + x27) - x71), ((0x7ffffe + x25) - x69), ((0xfffffe + x23) - x67), ((0x7ffffe + x21) - x65), ((0x7ffffe + x19) - x63), ((0x7ffffe + x17) - x61), ((0x7ffffe + x15) - x59), ((0xfffffe + x13) - x57), ((0x7ffffe + x11) - x55), ((0x7ffffe + x9) - x53), ((0x7ffffe + x7) - x51), ((Const 16776254 + x5) - x49)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_23limbs/freeze.c b/src/Specific/solinas32_2e511m481_23limbs/freeze.c
new file mode 100644
index 000000000..2dee4ae82
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/freeze.c
@@ -0,0 +1,119 @@
+static void freeze(uint32_t out[23], const uint32_t in1[23]) {
+ { const uint32_t x43 = in1[22];
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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];
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388127);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x4, 0x3fffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x6, 0x3fffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x8, 0x3fffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x10, 0x7fffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x12, 0x3fffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x14, 0x3fffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x16, 0x3fffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x18, 0x3fffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x20, 0x7fffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x22, 0x3fffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x24, 0x3fffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x26, 0x3fffff);
+ { uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x28, 0x7fffff);
+ { uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x30, 0x3fffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x32, 0x3fffff);
+ { uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x34, 0x3fffff);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x36, 0x3fffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x38, 0x7fffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x40, 0x3fffff);
+ { uint32_t x106, uint8_t x107 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x42, 0x3fffff);
+ { uint32_t x109, uint8_t x110 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x44, 0x3fffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x43, 0x3fffff);
+ { uint32_t x114 = cmovznz32(x113, 0x0, 0xffffffff);
+ { uint32_t x115 = (x114 & Const 8388127);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x46, Return x115);
+ { uint32_t x119 = (x114 & 0x3fffff);
+ { uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x49, Return x119);
+ { uint32_t x123 = (x114 & 0x3fffff);
+ { uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x52, Return x123);
+ { uint32_t x127 = (x114 & 0x3fffff);
+ { uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x55, Return x127);
+ { uint32_t x131 = (x114 & 0x7fffff);
+ { uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x58, Return x131);
+ { uint32_t x135 = (x114 & 0x3fffff);
+ { uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x61, Return x135);
+ { uint32_t x139 = (x114 & 0x3fffff);
+ { uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x64, Return x139);
+ { uint32_t x143 = (x114 & 0x3fffff);
+ { uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x67, Return x143);
+ { uint32_t x147 = (x114 & 0x3fffff);
+ { uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x70, Return x147);
+ { uint32_t x151 = (x114 & 0x7fffff);
+ { uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x73, Return x151);
+ { uint32_t x155 = (x114 & 0x3fffff);
+ { uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x76, Return x155);
+ { uint32_t x159 = (x114 & 0x3fffff);
+ { uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x79, Return x159);
+ { uint32_t x163 = (x114 & 0x3fffff);
+ { uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x82, Return x163);
+ { uint32_t x167 = (x114 & 0x7fffff);
+ { uint32_t x169, uint8_t x170 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x85, Return x167);
+ { uint32_t x171 = (x114 & 0x3fffff);
+ { uint32_t x173, uint8_t x174 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x170, Return x88, Return x171);
+ { uint32_t x175 = (x114 & 0x3fffff);
+ { uint32_t x177, uint8_t x178 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x174, Return x91, Return x175);
+ { uint32_t x179 = (x114 & 0x3fffff);
+ { uint32_t x181, uint8_t x182 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x178, Return x94, Return x179);
+ { uint32_t x183 = (x114 & 0x3fffff);
+ { uint32_t x185, uint8_t x186 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x182, Return x97, Return x183);
+ { uint32_t x187 = (x114 & 0x7fffff);
+ { uint32_t x189, uint8_t x190 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x186, Return x100, Return x187);
+ { uint32_t x191 = (x114 & 0x3fffff);
+ { uint32_t x193, uint8_t x194 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x190, Return x103, Return x191);
+ { uint32_t x195 = (x114 & 0x3fffff);
+ { uint32_t x197, uint8_t x198 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x194, Return x106, Return x195);
+ { uint32_t x199 = (x114 & 0x3fffff);
+ { uint32_t x201, uint8_t x202 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x198, Return x109, Return x199);
+ { uint32_t x203 = (x114 & 0x3fffff);
+ { uint32_t x205, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x202, Return x112, Return x203);
+ out[0] = x117;
+ out[1] = x121;
+ out[2] = x125;
+ out[3] = x129;
+ out[4] = x133;
+ out[5] = x137;
+ out[6] = x141;
+ out[7] = x145;
+ out[8] = x149;
+ out[9] = x153;
+ out[10] = x157;
+ out[11] = x161;
+ out[12] = x165;
+ out[13] = x169;
+ out[14] = x173;
+ out[15] = x177;
+ out[16] = x181;
+ out[17] = x185;
+ out[18] = x189;
+ out[19] = x193;
+ out[20] = x197;
+ out[21] = x201;
+ out[22] = x205;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m481_23limbs/freezeDisplay.log b/src/Specific/solinas32_2e511m481_23limbs/freezeDisplay.log
new file mode 100644
index 000000000..451b792a5
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_23limbs/freezeDisplay.log
@@ -0,0 +1,77 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x43, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388127);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x4, 0x3fffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x6, 0x3fffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x8, 0x3fffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x10, 0x7fffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x12, 0x3fffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x14, 0x3fffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x16, 0x3fffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x18, 0x3fffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x20, 0x7fffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x22, 0x3fffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x24, 0x3fffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x26, 0x3fffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x28, 0x7fffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x30, 0x3fffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x32, 0x3fffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x34, 0x3fffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x36, 0x3fffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x38, 0x7fffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x40, 0x3fffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x42, 0x3fffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x44, 0x3fffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x43, 0x3fffff);
+ uint32_t x114 = cmovznz32(x113, 0x0, 0xffffffff);
+ uint32_t x115 = (x114 & Const 8388127);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x46, Return x115);
+ uint32_t x119 = (x114 & 0x3fffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x49, Return x119);
+ uint32_t x123 = (x114 & 0x3fffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x52, Return x123);
+ uint32_t x127 = (x114 & 0x3fffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x55, Return x127);
+ uint32_t x131 = (x114 & 0x7fffff);
+ uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x58, Return x131);
+ uint32_t x135 = (x114 & 0x3fffff);
+ uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x61, Return x135);
+ uint32_t x139 = (x114 & 0x3fffff);
+ uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x64, Return x139);
+ uint32_t x143 = (x114 & 0x3fffff);
+ uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x67, Return x143);
+ uint32_t x147 = (x114 & 0x3fffff);
+ uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x70, Return x147);
+ uint32_t x151 = (x114 & 0x7fffff);
+ uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x73, Return x151);
+ uint32_t x155 = (x114 & 0x3fffff);
+ uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x76, Return x155);
+ uint32_t x159 = (x114 & 0x3fffff);
+ uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x79, Return x159);
+ uint32_t x163 = (x114 & 0x3fffff);
+ uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x82, Return x163);
+ uint32_t x167 = (x114 & 0x7fffff);
+ uint32_t x169, uint8_t x170 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x85, Return x167);
+ uint32_t x171 = (x114 & 0x3fffff);
+ uint32_t x173, uint8_t x174 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x170, Return x88, Return x171);
+ uint32_t x175 = (x114 & 0x3fffff);
+ uint32_t x177, uint8_t x178 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x174, Return x91, Return x175);
+ uint32_t x179 = (x114 & 0x3fffff);
+ uint32_t x181, uint8_t x182 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x178, Return x94, Return x179);
+ uint32_t x183 = (x114 & 0x3fffff);
+ uint32_t x185, uint8_t x186 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x182, Return x97, Return x183);
+ uint32_t x187 = (x114 & 0x7fffff);
+ uint32_t x189, uint8_t x190 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x186, Return x100, Return x187);
+ uint32_t x191 = (x114 & 0x3fffff);
+ uint32_t x193, uint8_t x194 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x190, Return x103, Return x191);
+ uint32_t x195 = (x114 & 0x3fffff);
+ uint32_t x197, uint8_t x198 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x194, Return x106, Return x195);
+ uint32_t x199 = (x114 & 0x3fffff);
+ uint32_t x201, uint8_t x202 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x198, Return x109, Return x199);
+ uint32_t x203 = (x114 & 0x3fffff);
+ uint32_t x205, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x202, Return x112, Return x203);
+ (Return x205, Return x201, Return x197, Return x193, Return x189, Return x185, Return x181, Return x177, Return x173, Return x169, Return x165, Return x161, Return x157, Return x153, Return x149, Return x145, Return x141, Return x137, Return x133, Return x129, Return x125, Return x121, Return x117))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_24limbs/feaddDisplay.log b/src/Specific/solinas32_2e511m481_24limbs/feaddDisplay.log
new file mode 100644
index 000000000..8ec776f44
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_24limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x48, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x94, x95, x93, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51))%core,
+ ((x48 + x94), (x49 + x95), (x47 + x93), (x45 + x91), (x43 + x89), (x41 + x87), (x39 + x85), (x37 + x83), (x35 + x81), (x33 + x79), (x31 + x77), (x29 + x75), (x27 + x73), (x25 + x71), (x23 + x69), (x21 + x67), (x19 + x65), (x17 + x63), (x15 + x61), (x13 + x59), (x11 + x57), (x9 + x55), (x7 + x53), (x5 + x51)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_24limbs/fesquareDisplay.log b/src/Specific/solinas32_2e511m481_24limbs/fesquareDisplay.log
new file mode 100644
index 000000000..ce2cb65f7
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_24limbs/fesquareDisplay.log
@@ -0,0 +1,108 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x45, x46, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x47 = (((uint64_t)x2 * x45) + ((0x2 * ((uint64_t)x4 * x46)) + ((0x2 * ((uint64_t)x6 * x44)) + (((uint64_t)x8 * x42) + ((0x2 * ((uint64_t)x10 * x40)) + ((0x2 * ((uint64_t)x12 * x38)) + (((uint64_t)x14 * x36) + ((0x2 * ((uint64_t)x16 * x34)) + ((0x2 * ((uint64_t)x18 * x32)) + ((0x2 * ((uint64_t)x20 * x30)) + (((uint64_t)x22 * x28) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + (((uint64_t)x28 * x22) + ((0x2 * ((uint64_t)x30 * x20)) + ((0x2 * ((uint64_t)x32 * x18)) + ((0x2 * ((uint64_t)x34 * x16)) + (((uint64_t)x36 * x14) + ((0x2 * ((uint64_t)x38 * x12)) + ((0x2 * ((uint64_t)x40 * x10)) + (((uint64_t)x42 * x8) + ((0x2 * ((uint64_t)x44 * x6)) + ((0x2 * ((uint64_t)x46 * x4)) + ((uint64_t)x45 * x2))))))))))))))))))))))));
+ uint64_t x48 = ((((uint64_t)x2 * x46) + ((0x2 * ((uint64_t)x4 * x44)) + (((uint64_t)x6 * x42) + (((uint64_t)x8 * x40) + ((0x2 * ((uint64_t)x10 * x38)) + (((uint64_t)x12 * x36) + (((uint64_t)x14 * x34) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + ((0x2 * ((uint64_t)x24 * x24)) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + (((uint64_t)x34 * x14) + (((uint64_t)x36 * x12) + ((0x2 * ((uint64_t)x38 * x10)) + (((uint64_t)x40 * x8) + (((uint64_t)x42 * x6) + ((0x2 * ((uint64_t)x44 * x4)) + ((uint64_t)x46 * x2))))))))))))))))))))))) + (0x1e1 * ((uint64_t)x45 * x45)));
+ uint64_t x49 = ((((uint64_t)x2 * x44) + (((uint64_t)x4 * x42) + (((uint64_t)x6 * x40) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + (((uint64_t)x12 * x34) + (((uint64_t)x14 * x32) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + (((uint64_t)x32 * x14) + (((uint64_t)x34 * x12) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + (((uint64_t)x40 * x6) + (((uint64_t)x42 * x4) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0x1e1 * (((uint64_t)x46 * x45) + ((uint64_t)x45 * x46))));
+ uint64_t x50 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + ((0x2 * ((uint64_t)x6 * x38)) + (((uint64_t)x8 * x36) + ((0x2 * ((uint64_t)x10 * x34)) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + ((0x2 * ((uint64_t)x34 * x10)) + (((uint64_t)x36 * x8) + ((0x2 * ((uint64_t)x38 * x6)) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x44 * x45)) + ((0x2 * ((uint64_t)x46 * x46)) + (0x2 * ((uint64_t)x45 * x44))))));
+ uint64_t x51 = ((((uint64_t)x2 * x40) + ((0x2 * ((uint64_t)x4 * x38)) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + ((0x2 * ((uint64_t)x10 * x32)) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + ((0x2 * ((uint64_t)x32 * x10)) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + ((0x2 * ((uint64_t)x38 * x4)) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0x1e1 * (((uint64_t)x42 * x45) + ((0x2 * ((uint64_t)x44 * x46)) + ((0x2 * ((uint64_t)x46 * x44)) + ((uint64_t)x45 * x42))))));
+ uint64_t x52 = ((((uint64_t)x2 * x38) + (((uint64_t)x4 * x36) + (((uint64_t)x6 * x34) + (((uint64_t)x8 * x32) + ((0x2 * ((uint64_t)x10 * x30)) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + (((uint64_t)x20 * x20) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + ((0x2 * ((uint64_t)x30 * x10)) + (((uint64_t)x32 * x8) + (((uint64_t)x34 * x6) + (((uint64_t)x36 * x4) + ((uint64_t)x38 * x2))))))))))))))))))) + (0x1e1 * (((uint64_t)x40 * x45) + (((uint64_t)x42 * x46) + ((0x2 * ((uint64_t)x44 * x44)) + (((uint64_t)x46 * x42) + ((uint64_t)x45 * x40)))))));
+ uint64_t x53 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x38 * x45)) + ((0x2 * ((uint64_t)x40 * x46)) + ((0x2 * ((uint64_t)x42 * x44)) + ((0x2 * ((uint64_t)x44 * x42)) + ((0x2 * ((uint64_t)x46 * x40)) + (0x2 * ((uint64_t)x45 * x38)))))))));
+ uint64_t x54 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + (((uint64_t)x14 * x22) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + (((uint64_t)x22 * x14) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0x1e1 * (((uint64_t)x36 * x45) + ((0x2 * ((uint64_t)x38 * x46)) + ((0x2 * ((uint64_t)x40 * x44)) + (((uint64_t)x42 * x42) + ((0x2 * ((uint64_t)x44 * x40)) + ((0x2 * ((uint64_t)x46 * x38)) + ((uint64_t)x45 * x36)))))))));
+ uint64_t x55 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + ((0x2 * ((uint64_t)x10 * x24)) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + ((0x2 * ((uint64_t)x24 * x10)) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x1e1 * (((uint64_t)x34 * x45) + (((uint64_t)x36 * x46) + ((0x2 * ((uint64_t)x38 * x44)) + (((uint64_t)x40 * x42) + (((uint64_t)x42 * x40) + ((0x2 * ((uint64_t)x44 * x38)) + (((uint64_t)x46 * x36) + ((uint64_t)x45 * x34))))))))));
+ uint64_t x56 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + ((0x2 * ((uint64_t)x16 * x16)) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x1e1 * (((uint64_t)x32 * x45) + (((uint64_t)x34 * x46) + (((uint64_t)x36 * x44) + (((uint64_t)x38 * x42) + (((uint64_t)x40 * x40) + (((uint64_t)x42 * x38) + (((uint64_t)x44 * x36) + (((uint64_t)x46 * x34) + ((uint64_t)x45 * x32)))))))))));
+ uint64_t x57 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + (((uint64_t)x8 * x22) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + (((uint64_t)x22 * x8) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x30 * x45)) + ((0x2 * ((uint64_t)x32 * x46)) + ((0x2 * ((uint64_t)x34 * x44)) + (((uint64_t)x36 * x42) + ((0x2 * ((uint64_t)x38 * x40)) + ((0x2 * ((uint64_t)x40 * x38)) + (((uint64_t)x42 * x36) + ((0x2 * ((uint64_t)x44 * x34)) + ((0x2 * ((uint64_t)x46 * x32)) + (0x2 * ((uint64_t)x45 * x30)))))))))))));
+ uint64_t x58 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + (((uint64_t)x6 * x22) + (((uint64_t)x8 * x20) + ((0x2 * ((uint64_t)x10 * x18)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + ((0x2 * ((uint64_t)x18 * x10)) + (((uint64_t)x20 * x8) + (((uint64_t)x22 * x6) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x1e1 * (((uint64_t)x28 * x45) + ((0x2 * ((uint64_t)x30 * x46)) + ((0x2 * ((uint64_t)x32 * x44)) + (((uint64_t)x34 * x42) + (((uint64_t)x36 * x40) + ((0x2 * ((uint64_t)x38 * x38)) + (((uint64_t)x40 * x36) + (((uint64_t)x42 * x34) + ((0x2 * ((uint64_t)x44 * x32)) + ((0x2 * ((uint64_t)x46 * x30)) + ((uint64_t)x45 * x28)))))))))))));
+ uint64_t x59 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x1e1 * (((uint64_t)x26 * x45) + (((uint64_t)x28 * x46) + ((0x2 * ((uint64_t)x30 * x44)) + (((uint64_t)x32 * x42) + (((uint64_t)x34 * x40) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + (((uint64_t)x40 * x34) + (((uint64_t)x42 * x32) + ((0x2 * ((uint64_t)x44 * x30)) + (((uint64_t)x46 * x28) + ((uint64_t)x45 * x26))))))))))))));
+ uint64_t x60 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + ((0x2 * ((uint64_t)x6 * x18)) + ((0x2 * ((uint64_t)x8 * x16)) + ((0x2 * ((uint64_t)x10 * x14)) + ((0x2 * ((uint64_t)x12 * x12)) + ((0x2 * ((uint64_t)x14 * x10)) + ((0x2 * ((uint64_t)x16 * x8)) + ((0x2 * ((uint64_t)x18 * x6)) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0x1e1 * ((0x2 * ((uint64_t)x24 * x45)) + ((0x2 * ((uint64_t)x26 * x46)) + ((0x2 * ((uint64_t)x28 * x44)) + ((0x2 * ((uint64_t)x30 * x42)) + ((0x2 * ((uint64_t)x32 * x40)) + ((0x2 * ((uint64_t)x34 * x38)) + (((uint64_t)x36 * x36) + ((0x2 * ((uint64_t)x38 * x34)) + ((0x2 * ((uint64_t)x40 * x32)) + ((0x2 * ((uint64_t)x42 * x30)) + ((0x2 * ((uint64_t)x44 * x28)) + ((0x2 * ((uint64_t)x46 * x26)) + (0x2 * ((uint64_t)x45 * x24))))))))))))))));
+ uint64_t x61 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x1e1 * (((uint64_t)x22 * x45) + ((0x2 * ((uint64_t)x24 * x46)) + ((0x2 * ((uint64_t)x26 * x44)) + (((uint64_t)x28 * x42) + ((0x2 * ((uint64_t)x30 * x40)) + ((0x2 * ((uint64_t)x32 * x38)) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + ((0x2 * ((uint64_t)x38 * x32)) + ((0x2 * ((uint64_t)x40 * x30)) + (((uint64_t)x42 * x28) + ((0x2 * ((uint64_t)x44 * x26)) + ((0x2 * ((uint64_t)x46 * x24)) + ((uint64_t)x45 * x22))))))))))))))));
+ uint64_t x62 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x1e1 * (((uint64_t)x20 * x45) + (((uint64_t)x22 * x46) + ((0x2 * ((uint64_t)x24 * x44)) + (((uint64_t)x26 * x42) + (((uint64_t)x28 * x40) + ((0x2 * ((uint64_t)x30 * x38)) + (((uint64_t)x32 * x36) + (((uint64_t)x34 * x34) + (((uint64_t)x36 * x32) + ((0x2 * ((uint64_t)x38 * x30)) + (((uint64_t)x40 * x28) + (((uint64_t)x42 * x26) + ((0x2 * ((uint64_t)x44 * x24)) + (((uint64_t)x46 * x22) + ((uint64_t)x45 * x20)))))))))))))))));
+ uint64_t x63 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x1e1 * (((uint64_t)x18 * x45) + (((uint64_t)x20 * x46) + (((uint64_t)x22 * x44) + (((uint64_t)x24 * x42) + (((uint64_t)x26 * x40) + (((uint64_t)x28 * x38) + (((uint64_t)x30 * x36) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + (((uint64_t)x36 * x30) + (((uint64_t)x38 * x28) + (((uint64_t)x40 * x26) + (((uint64_t)x42 * x24) + (((uint64_t)x44 * x22) + (((uint64_t)x46 * x20) + ((uint64_t)x45 * x18))))))))))))))))));
+ uint64_t x64 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x1e1 * ((0x2 * ((uint64_t)x16 * x45)) + ((0x2 * ((uint64_t)x18 * x46)) + ((0x2 * ((uint64_t)x20 * x44)) + (((uint64_t)x22 * x42) + ((0x2 * ((uint64_t)x24 * x40)) + ((0x2 * ((uint64_t)x26 * x38)) + (((uint64_t)x28 * x36) + ((0x2 * ((uint64_t)x30 * x34)) + ((0x2 * ((uint64_t)x32 * x32)) + ((0x2 * ((uint64_t)x34 * x30)) + (((uint64_t)x36 * x28) + ((0x2 * ((uint64_t)x38 * x26)) + ((0x2 * ((uint64_t)x40 * x24)) + (((uint64_t)x42 * x22) + ((0x2 * ((uint64_t)x44 * x20)) + ((0x2 * ((uint64_t)x46 * x18)) + (0x2 * ((uint64_t)x45 * x16))))))))))))))))))));
+ uint64_t x65 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (0x1e1 * (((uint64_t)x14 * x45) + ((0x2 * ((uint64_t)x16 * x46)) + ((0x2 * ((uint64_t)x18 * x44)) + (((uint64_t)x20 * x42) + (((uint64_t)x22 * x40) + ((0x2 * ((uint64_t)x24 * x38)) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + ((0x2 * ((uint64_t)x38 * x24)) + (((uint64_t)x40 * x22) + (((uint64_t)x42 * x20) + ((0x2 * ((uint64_t)x44 * x18)) + ((0x2 * ((uint64_t)x46 * x16)) + ((uint64_t)x45 * x14))))))))))))))))))));
+ uint64_t x66 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x1e1 * (((uint64_t)x12 * x45) + (((uint64_t)x14 * x46) + ((0x2 * ((uint64_t)x16 * x44)) + (((uint64_t)x18 * x42) + (((uint64_t)x20 * x40) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + (((uint64_t)x40 * x20) + (((uint64_t)x42 * x18) + ((0x2 * ((uint64_t)x44 * x16)) + (((uint64_t)x46 * x14) + ((uint64_t)x45 * x12)))))))))))))))))))));
+ uint64_t x67 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x1e1 * ((0x2 * ((uint64_t)x10 * x45)) + ((0x2 * ((uint64_t)x12 * x46)) + ((0x2 * ((uint64_t)x14 * x44)) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + ((0x2 * ((uint64_t)x20 * x38)) + (((uint64_t)x22 * x36) + ((0x2 * ((uint64_t)x24 * x34)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + ((0x2 * ((uint64_t)x34 * x24)) + (((uint64_t)x36 * x22) + ((0x2 * ((uint64_t)x38 * x20)) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + ((0x2 * ((uint64_t)x44 * x14)) + ((0x2 * ((uint64_t)x46 * x12)) + (0x2 * ((uint64_t)x45 * x10)))))))))))))))))))))));
+ uint64_t x68 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x1e1 * (((uint64_t)x8 * x45) + ((0x2 * ((uint64_t)x10 * x46)) + ((0x2 * ((uint64_t)x12 * x44)) + (((uint64_t)x14 * x42) + ((0x2 * ((uint64_t)x16 * x40)) + ((0x2 * ((uint64_t)x18 * x38)) + (((uint64_t)x20 * x36) + (((uint64_t)x22 * x34) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + (((uint64_t)x34 * x22) + (((uint64_t)x36 * x20) + ((0x2 * ((uint64_t)x38 * x18)) + ((0x2 * ((uint64_t)x40 * x16)) + (((uint64_t)x42 * x14) + ((0x2 * ((uint64_t)x44 * x12)) + ((0x2 * ((uint64_t)x46 * x10)) + ((uint64_t)x45 * x8)))))))))))))))))))))));
+ uint64_t x69 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1e1 * (((uint64_t)x6 * x45) + (((uint64_t)x8 * x46) + ((0x2 * ((uint64_t)x10 * x44)) + (((uint64_t)x12 * x42) + (((uint64_t)x14 * x40) + ((0x2 * ((uint64_t)x16 * x38)) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + (((uint64_t)x22 * x32) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + (((uint64_t)x32 * x22) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + ((0x2 * ((uint64_t)x38 * x16)) + (((uint64_t)x40 * x14) + (((uint64_t)x42 * x12) + ((0x2 * ((uint64_t)x44 * x10)) + (((uint64_t)x46 * x8) + ((uint64_t)x45 * x6))))))))))))))))))))))));
+ uint64_t x70 = (((uint64_t)x2 * x2) + (0x1e1 * ((0x2 * ((uint64_t)x4 * x45)) + ((0x2 * ((uint64_t)x6 * x46)) + ((0x2 * ((uint64_t)x8 * x44)) + ((0x2 * ((uint64_t)x10 * x42)) + ((0x2 * ((uint64_t)x12 * x40)) + ((0x2 * ((uint64_t)x14 * x38)) + ((0x2 * ((uint64_t)x16 * x36)) + ((0x2 * ((uint64_t)x18 * x34)) + ((0x2 * ((uint64_t)x20 * x32)) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + ((0x2 * ((uint64_t)x32 * x20)) + ((0x2 * ((uint64_t)x34 * x18)) + ((0x2 * ((uint64_t)x36 * x16)) + ((0x2 * ((uint64_t)x38 * x14)) + ((0x2 * ((uint64_t)x40 * x12)) + ((0x2 * ((uint64_t)x42 * x10)) + ((0x2 * ((uint64_t)x44 * x8)) + ((0x2 * ((uint64_t)x46 * x6)) + (0x2 * ((uint64_t)x45 * x4))))))))))))))))))))))))));
+ uint64_t x71 = (x70 >> 0x16);
+ uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ uint64_t x73 = (x71 + x69);
+ uint64_t x74 = (x73 >> 0x15);
+ uint32_t x75 = ((uint32_t)x73 & 0x1fffff);
+ uint64_t x76 = (x74 + x68);
+ uint64_t x77 = (x76 >> 0x15);
+ uint32_t x78 = ((uint32_t)x76 & 0x1fffff);
+ uint64_t x79 = (x77 + x67);
+ uint64_t x80 = (x79 >> 0x16);
+ uint32_t x81 = ((uint32_t)x79 & 0x3fffff);
+ uint64_t x82 = (x80 + x66);
+ uint64_t x83 = (x82 >> 0x15);
+ uint32_t x84 = ((uint32_t)x82 & 0x1fffff);
+ uint64_t x85 = (x83 + x65);
+ uint64_t x86 = (x85 >> 0x15);
+ uint32_t x87 = ((uint32_t)x85 & 0x1fffff);
+ uint64_t x88 = (x86 + x64);
+ uint64_t x89 = (x88 >> 0x16);
+ uint32_t x90 = ((uint32_t)x88 & 0x3fffff);
+ uint64_t x91 = (x89 + x63);
+ uint64_t x92 = (x91 >> 0x15);
+ uint32_t x93 = ((uint32_t)x91 & 0x1fffff);
+ uint64_t x94 = (x92 + x62);
+ uint64_t x95 = (x94 >> 0x15);
+ uint32_t x96 = ((uint32_t)x94 & 0x1fffff);
+ uint64_t x97 = (x95 + x61);
+ uint64_t x98 = (x97 >> 0x15);
+ uint32_t x99 = ((uint32_t)x97 & 0x1fffff);
+ uint64_t x100 = (x98 + x60);
+ uint64_t x101 = (x100 >> 0x16);
+ uint32_t x102 = ((uint32_t)x100 & 0x3fffff);
+ uint64_t x103 = (x101 + x59);
+ uint64_t x104 = (x103 >> 0x15);
+ uint32_t x105 = ((uint32_t)x103 & 0x1fffff);
+ uint64_t x106 = (x104 + x58);
+ uint64_t x107 = (x106 >> 0x15);
+ uint32_t x108 = ((uint32_t)x106 & 0x1fffff);
+ uint64_t x109 = (x107 + x57);
+ uint64_t x110 = (x109 >> 0x16);
+ uint32_t x111 = ((uint32_t)x109 & 0x3fffff);
+ uint64_t x112 = (x110 + x56);
+ uint64_t x113 = (x112 >> 0x15);
+ uint32_t x114 = ((uint32_t)x112 & 0x1fffff);
+ uint64_t x115 = (x113 + x55);
+ uint64_t x116 = (x115 >> 0x15);
+ uint32_t x117 = ((uint32_t)x115 & 0x1fffff);
+ uint64_t x118 = (x116 + x54);
+ uint64_t x119 = (x118 >> 0x15);
+ uint32_t x120 = ((uint32_t)x118 & 0x1fffff);
+ uint64_t x121 = (x119 + x53);
+ uint64_t x122 = (x121 >> 0x16);
+ uint32_t x123 = ((uint32_t)x121 & 0x3fffff);
+ uint64_t x124 = (x122 + x52);
+ uint64_t x125 = (x124 >> 0x15);
+ uint32_t x126 = ((uint32_t)x124 & 0x1fffff);
+ uint64_t x127 = (x125 + x51);
+ uint64_t x128 = (x127 >> 0x15);
+ uint32_t x129 = ((uint32_t)x127 & 0x1fffff);
+ uint64_t x130 = (x128 + x50);
+ uint64_t x131 = (x130 >> 0x16);
+ uint32_t x132 = ((uint32_t)x130 & 0x3fffff);
+ uint64_t x133 = (x131 + x49);
+ uint64_t x134 = (x133 >> 0x15);
+ uint32_t x135 = ((uint32_t)x133 & 0x1fffff);
+ uint64_t x136 = (x134 + x48);
+ uint64_t x137 = (x136 >> 0x15);
+ uint32_t x138 = ((uint32_t)x136 & 0x1fffff);
+ uint64_t x139 = (x137 + x47);
+ uint32_t x140 = (uint32_t) (x139 >> 0x15);
+ uint32_t x141 = ((uint32_t)x139 & 0x1fffff);
+ uint64_t x142 = (x72 + ((uint64_t)0x1e1 * x140));
+ uint32_t x143 = (uint32_t) (x142 >> 0x16);
+ uint32_t x144 = ((uint32_t)x142 & 0x3fffff);
+ uint32_t x145 = (x143 + x75);
+ uint32_t x146 = (x145 >> 0x15);
+ uint32_t x147 = (x145 & 0x1fffff);
+ return (Return x141, Return x138, Return x135, Return x132, Return x129, Return x126, Return x123, Return x120, Return x117, Return x114, Return x111, Return x108, Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, (x146 + x78), Return x147, Return x144))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_24limbs/fesubDisplay.log b/src/Specific/solinas32_2e511m481_24limbs/fesubDisplay.log
new file mode 100644
index 000000000..d25ef0fd4
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_24limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x48, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x94, x95, x93, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51))%core,
+ (((0x3ffffe + x48) - x94), ((0x3ffffe + x49) - x95), ((0x3ffffe + x47) - x93), ((0x7ffffe + x45) - x91), ((0x3ffffe + x43) - x89), ((0x3ffffe + x41) - x87), ((0x7ffffe + x39) - x85), ((0x3ffffe + x37) - x83), ((0x3ffffe + x35) - x81), ((0x3ffffe + x33) - x79), ((0x7ffffe + x31) - x77), ((0x3ffffe + x29) - x75), ((0x3ffffe + x27) - x73), ((0x7ffffe + x25) - x71), ((0x3ffffe + x23) - x69), ((0x3ffffe + x21) - x67), ((0x3ffffe + x19) - x65), ((0x7ffffe + x17) - x63), ((0x3ffffe + x15) - x61), ((0x3ffffe + x13) - x59), ((0x7ffffe + x11) - x57), ((0x3ffffe + x9) - x55), ((0x3ffffe + x7) - x53), ((Const 8387646 + x5) - x51)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e511m481_24limbs/freeze.c b/src/Specific/solinas32_2e511m481_24limbs/freeze.c
new file mode 100644
index 000000000..844ac4b87
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_24limbs/freeze.c
@@ -0,0 +1,124 @@
+static void freeze(uint32_t out[24], const uint32_t in1[24]) {
+ { const uint32_t x45 = in1[23];
+ { const uint32_t x46 = in1[22];
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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];
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4193823);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x4, 0x1fffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x6, 0x1fffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x8, 0x3fffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x10, 0x1fffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x12, 0x1fffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x14, 0x3fffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x16, 0x1fffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x18, 0x1fffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x20, 0x1fffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x22, 0x3fffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x24, 0x1fffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x26, 0x1fffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x28, 0x3fffff);
+ { uint32_t x90, uint8_t x91 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x30, 0x1fffff);
+ { uint32_t x93, uint8_t x94 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x32, 0x1fffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x34, 0x1fffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x36, 0x3fffff);
+ { uint32_t x102, uint8_t x103 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x38, 0x1fffff);
+ { uint32_t x105, uint8_t x106 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x40, 0x1fffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x42, 0x3fffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x44, 0x1fffff);
+ { uint32_t x114, uint8_t x115 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x46, 0x1fffff);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x45, 0x1fffff);
+ { uint32_t x119 = cmovznz32(x118, 0x0, 0xffffffff);
+ { uint32_t x120 = (x119 & Const 4193823);
+ { uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x48, Return x120);
+ { uint32_t x124 = (x119 & 0x1fffff);
+ { uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x51, Return x124);
+ { uint32_t x128 = (x119 & 0x1fffff);
+ { uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x54, Return x128);
+ { uint32_t x132 = (x119 & 0x3fffff);
+ { uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x57, Return x132);
+ { uint32_t x136 = (x119 & 0x1fffff);
+ { uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x60, Return x136);
+ { uint32_t x140 = (x119 & 0x1fffff);
+ { uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x63, Return x140);
+ { uint32_t x144 = (x119 & 0x3fffff);
+ { uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x66, Return x144);
+ { uint32_t x148 = (x119 & 0x1fffff);
+ { uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x69, Return x148);
+ { uint32_t x152 = (x119 & 0x1fffff);
+ { uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x72, Return x152);
+ { uint32_t x156 = (x119 & 0x1fffff);
+ { uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x75, Return x156);
+ { uint32_t x160 = (x119 & 0x3fffff);
+ { uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x78, Return x160);
+ { uint32_t x164 = (x119 & 0x1fffff);
+ { uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x81, Return x164);
+ { uint32_t x168 = (x119 & 0x1fffff);
+ { uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x84, Return x168);
+ { uint32_t x172 = (x119 & 0x3fffff);
+ { uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x87, Return x172);
+ { uint32_t x176 = (x119 & 0x1fffff);
+ { uint32_t x178, uint8_t x179 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x90, Return x176);
+ { uint32_t x180 = (x119 & 0x1fffff);
+ { uint32_t x182, uint8_t x183 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x179, Return x93, Return x180);
+ { uint32_t x184 = (x119 & 0x1fffff);
+ { uint32_t x186, uint8_t x187 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x183, Return x96, Return x184);
+ { uint32_t x188 = (x119 & 0x3fffff);
+ { uint32_t x190, uint8_t x191 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x187, Return x99, Return x188);
+ { uint32_t x192 = (x119 & 0x1fffff);
+ { uint32_t x194, uint8_t x195 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x191, Return x102, Return x192);
+ { uint32_t x196 = (x119 & 0x1fffff);
+ { uint32_t x198, uint8_t x199 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x195, Return x105, Return x196);
+ { uint32_t x200 = (x119 & 0x3fffff);
+ { uint32_t x202, uint8_t x203 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x199, Return x108, Return x200);
+ { uint32_t x204 = (x119 & 0x1fffff);
+ { uint32_t x206, uint8_t x207 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x203, Return x111, Return x204);
+ { uint32_t x208 = (x119 & 0x1fffff);
+ { uint32_t x210, uint8_t x211 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x207, Return x114, Return x208);
+ { uint32_t x212 = (x119 & 0x1fffff);
+ { uint32_t x214, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x211, Return x117, Return x212);
+ out[0] = x122;
+ out[1] = x126;
+ out[2] = x130;
+ out[3] = x134;
+ out[4] = x138;
+ out[5] = x142;
+ out[6] = x146;
+ out[7] = x150;
+ out[8] = x154;
+ out[9] = x158;
+ out[10] = x162;
+ out[11] = x166;
+ out[12] = x170;
+ out[13] = x174;
+ out[14] = x178;
+ out[15] = x182;
+ out[16] = x186;
+ out[17] = x190;
+ out[18] = x194;
+ out[19] = x198;
+ out[20] = x202;
+ out[21] = x206;
+ out[22] = x210;
+ out[23] = x214;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e511m481_24limbs/freezeDisplay.log b/src/Specific/solinas32_2e511m481_24limbs/freezeDisplay.log
new file mode 100644
index 000000000..4b3d9f53a
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481_24limbs/freezeDisplay.log
@@ -0,0 +1,80 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x45, x46, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4193823);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x4, 0x1fffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x6, 0x1fffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x8, 0x3fffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x10, 0x1fffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x12, 0x1fffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x14, 0x3fffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x16, 0x1fffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x18, 0x1fffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x20, 0x1fffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x22, 0x3fffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x24, 0x1fffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x26, 0x1fffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x28, 0x3fffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x30, 0x1fffff);
+ uint32_t x93, uint8_t x94 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x32, 0x1fffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x34, 0x1fffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x36, 0x3fffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x38, 0x1fffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x40, 0x1fffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x42, 0x3fffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x44, 0x1fffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x46, 0x1fffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x45, 0x1fffff);
+ uint32_t x119 = cmovznz32(x118, 0x0, 0xffffffff);
+ uint32_t x120 = (x119 & Const 4193823);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x48, Return x120);
+ uint32_t x124 = (x119 & 0x1fffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x51, Return x124);
+ uint32_t x128 = (x119 & 0x1fffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x54, Return x128);
+ uint32_t x132 = (x119 & 0x3fffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x57, Return x132);
+ uint32_t x136 = (x119 & 0x1fffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x60, Return x136);
+ uint32_t x140 = (x119 & 0x1fffff);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x63, Return x140);
+ uint32_t x144 = (x119 & 0x3fffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x66, Return x144);
+ uint32_t x148 = (x119 & 0x1fffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x69, Return x148);
+ uint32_t x152 = (x119 & 0x1fffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x72, Return x152);
+ uint32_t x156 = (x119 & 0x1fffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x75, Return x156);
+ uint32_t x160 = (x119 & 0x3fffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x78, Return x160);
+ uint32_t x164 = (x119 & 0x1fffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x81, Return x164);
+ uint32_t x168 = (x119 & 0x1fffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x84, Return x168);
+ uint32_t x172 = (x119 & 0x3fffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x87, Return x172);
+ uint32_t x176 = (x119 & 0x1fffff);
+ uint32_t x178, uint8_t x179 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x90, Return x176);
+ uint32_t x180 = (x119 & 0x1fffff);
+ uint32_t x182, uint8_t x183 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x179, Return x93, Return x180);
+ uint32_t x184 = (x119 & 0x1fffff);
+ uint32_t x186, uint8_t x187 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x183, Return x96, Return x184);
+ uint32_t x188 = (x119 & 0x3fffff);
+ uint32_t x190, uint8_t x191 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x187, Return x99, Return x188);
+ uint32_t x192 = (x119 & 0x1fffff);
+ uint32_t x194, uint8_t x195 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x191, Return x102, Return x192);
+ uint32_t x196 = (x119 & 0x1fffff);
+ uint32_t x198, uint8_t x199 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x195, Return x105, Return x196);
+ uint32_t x200 = (x119 & 0x3fffff);
+ uint32_t x202, uint8_t x203 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x199, Return x108, Return x200);
+ uint32_t x204 = (x119 & 0x1fffff);
+ uint32_t x206, uint8_t x207 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x203, Return x111, Return x204);
+ uint32_t x208 = (x119 & 0x1fffff);
+ uint32_t x210, uint8_t x211 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x207, Return x114, Return x208);
+ uint32_t x212 = (x119 & 0x1fffff);
+ uint32_t x214, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x211, Return x117, Return x212);
+ (Return x214, Return x210, Return x206, Return x202, Return x198, Return x194, Return x190, Return x186, Return x182, Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_24limbs/feadd.c b/src/Specific/solinas32_2e512m569_24limbs/feadd.c
new file mode 100644
index 000000000..115132981
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/feadd.c
@@ -0,0 +1,75 @@
+static void feadd(uint32_t out[24], const uint32_t in1[24], const uint32_t in2[24]) {
+ { const uint32_t x48 = in1[23];
+ { const uint32_t x49 = in1[22];
+ { const uint32_t x47 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x94 = in2[23];
+ { const uint32_t x95 = in2[22];
+ { const uint32_t x93 = in2[21];
+ { const uint32_t x91 = in2[20];
+ { const uint32_t x89 = in2[19];
+ { const uint32_t x87 = in2[18];
+ { const uint32_t x85 = in2[17];
+ { const uint32_t x83 = in2[16];
+ { const uint32_t x81 = in2[15];
+ { const uint32_t x79 = in2[14];
+ { const uint32_t x77 = in2[13];
+ { const uint32_t x75 = in2[12];
+ { const uint32_t x73 = in2[11];
+ { const uint32_t x71 = in2[10];
+ { const uint32_t x69 = in2[9];
+ { const uint32_t x67 = in2[8];
+ { const uint32_t x65 = in2[7];
+ { const uint32_t x63 = in2[6];
+ { const uint32_t x61 = in2[5];
+ { const uint32_t x59 = in2[4];
+ { const uint32_t x57 = in2[3];
+ { const uint32_t x55 = in2[2];
+ { const uint32_t x53 = in2[1];
+ { const uint32_t x51 = in2[0];
+ out[0] = (x5 + x51);
+ out[1] = (x7 + x53);
+ out[2] = (x9 + x55);
+ out[3] = (x11 + x57);
+ out[4] = (x13 + x59);
+ out[5] = (x15 + x61);
+ out[6] = (x17 + x63);
+ out[7] = (x19 + x65);
+ out[8] = (x21 + x67);
+ out[9] = (x23 + x69);
+ out[10] = (x25 + x71);
+ out[11] = (x27 + x73);
+ out[12] = (x29 + x75);
+ out[13] = (x31 + x77);
+ out[14] = (x33 + x79);
+ out[15] = (x35 + x81);
+ out[16] = (x37 + x83);
+ out[17] = (x39 + x85);
+ out[18] = (x41 + x87);
+ out[19] = (x43 + x89);
+ out[20] = (x45 + x91);
+ out[21] = (x47 + x93);
+ out[22] = (x49 + x95);
+ out[23] = (x48 + x94);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e512m569_24limbs/feaddDisplay.log b/src/Specific/solinas32_2e512m569_24limbs/feaddDisplay.log
new file mode 100644
index 000000000..8ec776f44
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x48, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x94, x95, x93, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51))%core,
+ ((x48 + x94), (x49 + x95), (x47 + x93), (x45 + x91), (x43 + x89), (x41 + x87), (x39 + x85), (x37 + x83), (x35 + x81), (x33 + x79), (x31 + x77), (x29 + x75), (x27 + x73), (x25 + x71), (x23 + x69), (x21 + x67), (x19 + x65), (x17 + x63), (x15 + x61), (x13 + x59), (x11 + x57), (x9 + x55), (x7 + x53), (x5 + x51)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_24limbs/fesquare.c b/src/Specific/solinas32_2e512m569_24limbs/fesquare.c
new file mode 100644
index 000000000..e1d0ea01d
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/fesquare.c
@@ -0,0 +1,152 @@
+static void fesquare(uint32_t out[24], const uint32_t in1[24]) {
+ { const uint32_t x45 = in1[23];
+ { const uint32_t x46 = in1[22];
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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 x47 = (((uint64_t)x2 * x45) + ((0x2 * ((uint64_t)x4 * x46)) + (((uint64_t)x6 * x44) + (((uint64_t)x8 * x42) + ((0x2 * ((uint64_t)x10 * x40)) + (((uint64_t)x12 * x38) + (((uint64_t)x14 * x36) + ((0x2 * ((uint64_t)x16 * x34)) + (((uint64_t)x18 * x32) + (((uint64_t)x20 * x30) + ((0x2 * ((uint64_t)x22 * x28)) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + ((0x2 * ((uint64_t)x28 * x22)) + (((uint64_t)x30 * x20) + (((uint64_t)x32 * x18) + ((0x2 * ((uint64_t)x34 * x16)) + (((uint64_t)x36 * x14) + (((uint64_t)x38 * x12) + ((0x2 * ((uint64_t)x40 * x10)) + (((uint64_t)x42 * x8) + (((uint64_t)x44 * x6) + ((0x2 * ((uint64_t)x46 * x4)) + ((uint64_t)x45 * x2))))))))))))))))))))))));
+ { uint64_t x48 = ((((uint64_t)x2 * x46) + (((uint64_t)x4 * x44) + (((uint64_t)x6 * x42) + (((uint64_t)x8 * x40) + (((uint64_t)x10 * x38) + (((uint64_t)x12 * x36) + (((uint64_t)x14 * x34) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + (((uint64_t)x34 * x14) + (((uint64_t)x36 * x12) + (((uint64_t)x38 * x10) + (((uint64_t)x40 * x8) + (((uint64_t)x42 * x6) + (((uint64_t)x44 * x4) + ((uint64_t)x46 * x2))))))))))))))))))))))) + (0x239 * ((uint64_t)x45 * x45)));
+ { uint64_t x49 = ((((uint64_t)x2 * x44) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + (((uint64_t)x8 * x38) + ((0x2 * ((uint64_t)x10 * x36)) + ((0x2 * ((uint64_t)x12 * x34)) + (((uint64_t)x14 * x32) + ((0x2 * ((uint64_t)x16 * x30)) + ((0x2 * ((uint64_t)x18 * x28)) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + ((0x2 * ((uint64_t)x28 * x18)) + ((0x2 * ((uint64_t)x30 * x16)) + (((uint64_t)x32 * x14) + ((0x2 * ((uint64_t)x34 * x12)) + ((0x2 * ((uint64_t)x36 * x10)) + (((uint64_t)x38 * x8) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x46 * x45)) + (0x2 * ((uint64_t)x45 * x46)))));
+ { uint64_t x50 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + (((uint64_t)x6 * x38) + (((uint64_t)x8 * x36) + ((0x2 * ((uint64_t)x10 * x34)) + (((uint64_t)x12 * x32) + (((uint64_t)x14 * x30) + ((0x2 * ((uint64_t)x16 * x28)) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + ((0x2 * ((uint64_t)x28 * x16)) + (((uint64_t)x30 * x14) + (((uint64_t)x32 * x12) + ((0x2 * ((uint64_t)x34 * x10)) + (((uint64_t)x36 * x8) + (((uint64_t)x38 * x6) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0x239 * (((uint64_t)x44 * x45) + ((0x2 * ((uint64_t)x46 * x46)) + ((uint64_t)x45 * x44)))));
+ { uint64_t x51 = ((((uint64_t)x2 * x40) + (((uint64_t)x4 * x38) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + (((uint64_t)x38 * x4) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0x239 * (((uint64_t)x42 * x45) + (((uint64_t)x44 * x46) + (((uint64_t)x46 * x44) + ((uint64_t)x45 * x42))))));
+ { uint64_t x52 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + (((uint64_t)x8 * x32) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (((uint64_t)x32 * x8) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x40 * x45)) + ((0x2 * ((uint64_t)x42 * x46)) + (((uint64_t)x44 * x44) + ((0x2 * ((uint64_t)x46 * x42)) + (0x2 * ((uint64_t)x45 * x40))))))));
+ { uint64_t x53 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + (((uint64_t)x6 * x32) + (((uint64_t)x8 * x30) + ((0x2 * ((uint64_t)x10 * x28)) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + ((0x2 * ((uint64_t)x28 * x10)) + (((uint64_t)x30 * x8) + (((uint64_t)x32 * x6) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0x239 * (((uint64_t)x38 * x45) + ((0x2 * ((uint64_t)x40 * x46)) + (((uint64_t)x42 * x44) + (((uint64_t)x44 * x42) + ((0x2 * ((uint64_t)x46 * x40)) + ((uint64_t)x45 * x38))))))));
+ { uint64_t x54 = ((((uint64_t)x2 * x34) + (((uint64_t)x4 * x32) + (((uint64_t)x6 * x30) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + (((uint64_t)x30 * x6) + (((uint64_t)x32 * x4) + ((uint64_t)x34 * x2))))))))))))))))) + (0x239 * (((uint64_t)x36 * x45) + (((uint64_t)x38 * x46) + (((uint64_t)x40 * x44) + (((uint64_t)x42 * x42) + (((uint64_t)x44 * x40) + (((uint64_t)x46 * x38) + ((uint64_t)x45 * x36)))))))));
+ { uint64_t x55 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + (((uint64_t)x8 * x26) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + (((uint64_t)x26 * x8) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x34 * x45)) + ((0x2 * ((uint64_t)x36 * x46)) + (((uint64_t)x38 * x44) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (((uint64_t)x44 * x38) + ((0x2 * ((uint64_t)x46 * x36)) + (0x2 * ((uint64_t)x45 * x34)))))))))));
+ { uint64_t x56 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + ((0x2 * ((uint64_t)x10 * x22)) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + ((0x2 * ((uint64_t)x16 * x16)) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (0x239 * (((uint64_t)x32 * x45) + ((0x2 * ((uint64_t)x34 * x46)) + (((uint64_t)x36 * x44) + (((uint64_t)x38 * x42) + ((0x2 * ((uint64_t)x40 * x40)) + (((uint64_t)x42 * x38) + (((uint64_t)x44 * x36) + ((0x2 * ((uint64_t)x46 * x34)) + ((uint64_t)x45 * x32)))))))))));
+ { uint64_t x57 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((uint64_t)x8 * x22) + (((uint64_t)x10 * x20) + (((uint64_t)x12 * x18) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + (((uint64_t)x18 * x12) + (((uint64_t)x20 * x10) + (((uint64_t)x22 * x8) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x239 * (((uint64_t)x30 * x45) + (((uint64_t)x32 * x46) + (((uint64_t)x34 * x44) + (((uint64_t)x36 * x42) + (((uint64_t)x38 * x40) + (((uint64_t)x40 * x38) + (((uint64_t)x42 * x36) + (((uint64_t)x44 * x34) + (((uint64_t)x46 * x32) + ((uint64_t)x45 * x30))))))))))));
+ { uint64_t x58 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + ((0x2 * ((uint64_t)x10 * x18)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + ((0x2 * ((uint64_t)x18 * x10)) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x28 * x45)) + ((0x2 * ((uint64_t)x30 * x46)) + (((uint64_t)x32 * x44) + ((0x2 * ((uint64_t)x34 * x42)) + ((0x2 * ((uint64_t)x36 * x40)) + (((uint64_t)x38 * x38) + ((0x2 * ((uint64_t)x40 * x36)) + ((0x2 * ((uint64_t)x42 * x34)) + (((uint64_t)x44 * x32) + ((0x2 * ((uint64_t)x46 * x30)) + (0x2 * ((uint64_t)x45 * x28))))))))))))));
+ { uint64_t x59 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x239 * (((uint64_t)x26 * x45) + ((0x2 * ((uint64_t)x28 * x46)) + (((uint64_t)x30 * x44) + (((uint64_t)x32 * x42) + ((0x2 * ((uint64_t)x34 * x40)) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((0x2 * ((uint64_t)x40 * x34)) + (((uint64_t)x42 * x32) + (((uint64_t)x44 * x30) + ((0x2 * ((uint64_t)x46 * x28)) + ((uint64_t)x45 * x26))))))))))))));
+ { uint64_t x60 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x239 * (((uint64_t)x24 * x45) + (((uint64_t)x26 * x46) + (((uint64_t)x28 * x44) + (((uint64_t)x30 * x42) + (((uint64_t)x32 * x40) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + (((uint64_t)x40 * x32) + (((uint64_t)x42 * x30) + (((uint64_t)x44 * x28) + (((uint64_t)x46 * x26) + ((uint64_t)x45 * x24)))))))))))))));
+ { uint64_t x61 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x239 * ((0x2 * ((uint64_t)x22 * x45)) + ((0x2 * ((uint64_t)x24 * x46)) + (((uint64_t)x26 * x44) + ((0x2 * ((uint64_t)x28 * x42)) + ((0x2 * ((uint64_t)x30 * x40)) + (((uint64_t)x32 * x38) + ((0x2 * ((uint64_t)x34 * x36)) + ((0x2 * ((uint64_t)x36 * x34)) + (((uint64_t)x38 * x32) + ((0x2 * ((uint64_t)x40 * x30)) + ((0x2 * ((uint64_t)x42 * x28)) + (((uint64_t)x44 * x26) + ((0x2 * ((uint64_t)x46 * x24)) + (0x2 * ((uint64_t)x45 * x22)))))))))))))))));
+ { uint64_t x62 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x239 * (((uint64_t)x20 * x45) + ((0x2 * ((uint64_t)x22 * x46)) + (((uint64_t)x24 * x44) + (((uint64_t)x26 * x42) + ((0x2 * ((uint64_t)x28 * x40)) + (((uint64_t)x30 * x38) + (((uint64_t)x32 * x36) + ((0x2 * ((uint64_t)x34 * x34)) + (((uint64_t)x36 * x32) + (((uint64_t)x38 * x30) + ((0x2 * ((uint64_t)x40 * x28)) + (((uint64_t)x42 * x26) + (((uint64_t)x44 * x24) + ((0x2 * ((uint64_t)x46 * x22)) + ((uint64_t)x45 * x20)))))))))))))))));
+ { uint64_t x63 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x239 * (((uint64_t)x18 * x45) + (((uint64_t)x20 * x46) + (((uint64_t)x22 * x44) + (((uint64_t)x24 * x42) + (((uint64_t)x26 * x40) + (((uint64_t)x28 * x38) + (((uint64_t)x30 * x36) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + (((uint64_t)x36 * x30) + (((uint64_t)x38 * x28) + (((uint64_t)x40 * x26) + (((uint64_t)x42 * x24) + (((uint64_t)x44 * x22) + (((uint64_t)x46 * x20) + ((uint64_t)x45 * x18))))))))))))))))));
+ { uint64_t x64 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x239 * ((0x2 * ((uint64_t)x16 * x45)) + ((0x2 * ((uint64_t)x18 * x46)) + (((uint64_t)x20 * x44) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + (((uint64_t)x26 * x38) + ((0x2 * ((uint64_t)x28 * x36)) + ((0x2 * ((uint64_t)x30 * x34)) + (((uint64_t)x32 * x32) + ((0x2 * ((uint64_t)x34 * x30)) + ((0x2 * ((uint64_t)x36 * x28)) + (((uint64_t)x38 * x26) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (((uint64_t)x44 * x20) + ((0x2 * ((uint64_t)x46 * x18)) + (0x2 * ((uint64_t)x45 * x16))))))))))))))))))));
+ { uint64_t x65 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (0x239 * (((uint64_t)x14 * x45) + ((0x2 * ((uint64_t)x16 * x46)) + (((uint64_t)x18 * x44) + (((uint64_t)x20 * x42) + ((0x2 * ((uint64_t)x22 * x40)) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + ((0x2 * ((uint64_t)x28 * x34)) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + ((0x2 * ((uint64_t)x34 * x28)) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((0x2 * ((uint64_t)x40 * x22)) + (((uint64_t)x42 * x20) + (((uint64_t)x44 * x18) + ((0x2 * ((uint64_t)x46 * x16)) + ((uint64_t)x45 * x14))))))))))))))))))));
+ { uint64_t x66 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x239 * (((uint64_t)x12 * x45) + (((uint64_t)x14 * x46) + (((uint64_t)x16 * x44) + (((uint64_t)x18 * x42) + (((uint64_t)x20 * x40) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + (((uint64_t)x40 * x20) + (((uint64_t)x42 * x18) + (((uint64_t)x44 * x16) + (((uint64_t)x46 * x14) + ((uint64_t)x45 * x12)))))))))))))))))))));
+ { uint64_t x67 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x239 * ((0x2 * ((uint64_t)x10 * x45)) + ((0x2 * ((uint64_t)x12 * x46)) + (((uint64_t)x14 * x44) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + (((uint64_t)x20 * x38) + ((0x2 * ((uint64_t)x22 * x36)) + ((0x2 * ((uint64_t)x24 * x34)) + (((uint64_t)x26 * x32) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (((uint64_t)x32 * x26) + ((0x2 * ((uint64_t)x34 * x24)) + ((0x2 * ((uint64_t)x36 * x22)) + (((uint64_t)x38 * x20) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + (((uint64_t)x44 * x14) + ((0x2 * ((uint64_t)x46 * x12)) + (0x2 * ((uint64_t)x45 * x10)))))))))))))))))))))));
+ { uint64_t x68 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x239 * (((uint64_t)x8 * x45) + ((0x2 * ((uint64_t)x10 * x46)) + (((uint64_t)x12 * x44) + (((uint64_t)x14 * x42) + ((0x2 * ((uint64_t)x16 * x40)) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + ((0x2 * ((uint64_t)x22 * x34)) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + ((0x2 * ((uint64_t)x28 * x28)) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + ((0x2 * ((uint64_t)x34 * x22)) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((0x2 * ((uint64_t)x40 * x16)) + (((uint64_t)x42 * x14) + (((uint64_t)x44 * x12) + ((0x2 * ((uint64_t)x46 * x10)) + ((uint64_t)x45 * x8)))))))))))))))))))))));
+ { uint64_t x69 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x239 * (((uint64_t)x6 * x45) + (((uint64_t)x8 * x46) + (((uint64_t)x10 * x44) + (((uint64_t)x12 * x42) + (((uint64_t)x14 * x40) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + (((uint64_t)x22 * x32) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (((uint64_t)x32 * x22) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + (((uint64_t)x40 * x14) + (((uint64_t)x42 * x12) + (((uint64_t)x44 * x10) + (((uint64_t)x46 * x8) + ((uint64_t)x45 * x6))))))))))))))))))))))));
+ { uint64_t x70 = (((uint64_t)x2 * x2) + (0x239 * ((0x2 * ((uint64_t)x4 * x45)) + ((0x2 * ((uint64_t)x6 * x46)) + (((uint64_t)x8 * x44) + ((0x2 * ((uint64_t)x10 * x42)) + ((0x2 * ((uint64_t)x12 * x40)) + (((uint64_t)x14 * x38) + ((0x2 * ((uint64_t)x16 * x36)) + ((0x2 * ((uint64_t)x18 * x34)) + (((uint64_t)x20 * x32) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + (((uint64_t)x26 * x26) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + (((uint64_t)x32 * x20) + ((0x2 * ((uint64_t)x34 * x18)) + ((0x2 * ((uint64_t)x36 * x16)) + (((uint64_t)x38 * x14) + ((0x2 * ((uint64_t)x40 * x12)) + ((0x2 * ((uint64_t)x42 * x10)) + (((uint64_t)x44 * x8) + ((0x2 * ((uint64_t)x46 * x6)) + (0x2 * ((uint64_t)x45 * x4))))))))))))))))))))))))));
+ { uint64_t x71 = (x70 >> 0x16);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ { uint64_t x73 = (x71 + x69);
+ { uint64_t x74 = (x73 >> 0x15);
+ { uint32_t x75 = ((uint32_t)x73 & 0x1fffff);
+ { uint64_t x76 = (x74 + x68);
+ { uint64_t x77 = (x76 >> 0x15);
+ { uint32_t x78 = ((uint32_t)x76 & 0x1fffff);
+ { uint64_t x79 = (x77 + x67);
+ { uint64_t x80 = (x79 >> 0x16);
+ { uint32_t x81 = ((uint32_t)x79 & 0x3fffff);
+ { uint64_t x82 = (x80 + x66);
+ { uint64_t x83 = (x82 >> 0x15);
+ { uint32_t x84 = ((uint32_t)x82 & 0x1fffff);
+ { uint64_t x85 = (x83 + x65);
+ { uint64_t x86 = (x85 >> 0x15);
+ { uint32_t x87 = ((uint32_t)x85 & 0x1fffff);
+ { uint64_t x88 = (x86 + x64);
+ { uint64_t x89 = (x88 >> 0x16);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3fffff);
+ { uint64_t x91 = (x89 + x63);
+ { uint64_t x92 = (x91 >> 0x15);
+ { uint32_t x93 = ((uint32_t)x91 & 0x1fffff);
+ { uint64_t x94 = (x92 + x62);
+ { uint64_t x95 = (x94 >> 0x15);
+ { uint32_t x96 = ((uint32_t)x94 & 0x1fffff);
+ { uint64_t x97 = (x95 + x61);
+ { uint64_t x98 = (x97 >> 0x16);
+ { uint32_t x99 = ((uint32_t)x97 & 0x3fffff);
+ { uint64_t x100 = (x98 + x60);
+ { uint64_t x101 = (x100 >> 0x15);
+ { uint32_t x102 = ((uint32_t)x100 & 0x1fffff);
+ { uint64_t x103 = (x101 + x59);
+ { uint64_t x104 = (x103 >> 0x15);
+ { uint32_t x105 = ((uint32_t)x103 & 0x1fffff);
+ { uint64_t x106 = (x104 + x58);
+ { uint64_t x107 = (x106 >> 0x16);
+ { uint32_t x108 = ((uint32_t)x106 & 0x3fffff);
+ { uint64_t x109 = (x107 + x57);
+ { uint64_t x110 = (x109 >> 0x15);
+ { uint32_t x111 = ((uint32_t)x109 & 0x1fffff);
+ { uint64_t x112 = (x110 + x56);
+ { uint64_t x113 = (x112 >> 0x15);
+ { uint32_t x114 = ((uint32_t)x112 & 0x1fffff);
+ { uint64_t x115 = (x113 + x55);
+ { uint64_t x116 = (x115 >> 0x16);
+ { uint32_t x117 = ((uint32_t)x115 & 0x3fffff);
+ { uint64_t x118 = (x116 + x54);
+ { uint64_t x119 = (x118 >> 0x15);
+ { uint32_t x120 = ((uint32_t)x118 & 0x1fffff);
+ { uint64_t x121 = (x119 + x53);
+ { uint64_t x122 = (x121 >> 0x15);
+ { uint32_t x123 = ((uint32_t)x121 & 0x1fffff);
+ { uint64_t x124 = (x122 + x52);
+ { uint64_t x125 = (x124 >> 0x16);
+ { uint32_t x126 = ((uint32_t)x124 & 0x3fffff);
+ { uint64_t x127 = (x125 + x51);
+ { uint64_t x128 = (x127 >> 0x15);
+ { uint32_t x129 = ((uint32_t)x127 & 0x1fffff);
+ { uint64_t x130 = (x128 + x50);
+ { uint64_t x131 = (x130 >> 0x15);
+ { uint32_t x132 = ((uint32_t)x130 & 0x1fffff);
+ { uint64_t x133 = (x131 + x49);
+ { uint64_t x134 = (x133 >> 0x16);
+ { uint32_t x135 = ((uint32_t)x133 & 0x3fffff);
+ { uint64_t x136 = (x134 + x48);
+ { uint64_t x137 = (x136 >> 0x15);
+ { uint32_t x138 = ((uint32_t)x136 & 0x1fffff);
+ { uint64_t x139 = (x137 + x47);
+ { uint32_t x140 = (uint32_t) (x139 >> 0x15);
+ { uint32_t x141 = ((uint32_t)x139 & 0x1fffff);
+ { uint64_t x142 = (x72 + ((uint64_t)0x239 * x140));
+ { uint32_t x143 = (uint32_t) (x142 >> 0x16);
+ { uint32_t x144 = ((uint32_t)x142 & 0x3fffff);
+ { uint32_t x145 = (x143 + x75);
+ { uint32_t x146 = (x145 >> 0x15);
+ { uint32_t x147 = (x145 & 0x1fffff);
+ out[0] = x144;
+ out[1] = x147;
+ out[2] = (x146 + x78);
+ out[3] = x81;
+ out[4] = x84;
+ out[5] = x87;
+ out[6] = x90;
+ out[7] = x93;
+ out[8] = x96;
+ out[9] = x99;
+ out[10] = x102;
+ out[11] = x105;
+ out[12] = x108;
+ out[13] = x111;
+ out[14] = x114;
+ out[15] = x117;
+ out[16] = x120;
+ out[17] = x123;
+ out[18] = x126;
+ out[19] = x129;
+ out[20] = x132;
+ out[21] = x135;
+ out[22] = x138;
+ out[23] = x141;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e512m569_24limbs/fesquareDisplay.log b/src/Specific/solinas32_2e512m569_24limbs/fesquareDisplay.log
new file mode 100644
index 000000000..a942ed88f
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/fesquareDisplay.log
@@ -0,0 +1,108 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x45, x46, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x47 = (((uint64_t)x2 * x45) + ((0x2 * ((uint64_t)x4 * x46)) + (((uint64_t)x6 * x44) + (((uint64_t)x8 * x42) + ((0x2 * ((uint64_t)x10 * x40)) + (((uint64_t)x12 * x38) + (((uint64_t)x14 * x36) + ((0x2 * ((uint64_t)x16 * x34)) + (((uint64_t)x18 * x32) + (((uint64_t)x20 * x30) + ((0x2 * ((uint64_t)x22 * x28)) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + ((0x2 * ((uint64_t)x28 * x22)) + (((uint64_t)x30 * x20) + (((uint64_t)x32 * x18) + ((0x2 * ((uint64_t)x34 * x16)) + (((uint64_t)x36 * x14) + (((uint64_t)x38 * x12) + ((0x2 * ((uint64_t)x40 * x10)) + (((uint64_t)x42 * x8) + (((uint64_t)x44 * x6) + ((0x2 * ((uint64_t)x46 * x4)) + ((uint64_t)x45 * x2))))))))))))))))))))))));
+ uint64_t x48 = ((((uint64_t)x2 * x46) + (((uint64_t)x4 * x44) + (((uint64_t)x6 * x42) + (((uint64_t)x8 * x40) + (((uint64_t)x10 * x38) + (((uint64_t)x12 * x36) + (((uint64_t)x14 * x34) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + (((uint64_t)x34 * x14) + (((uint64_t)x36 * x12) + (((uint64_t)x38 * x10) + (((uint64_t)x40 * x8) + (((uint64_t)x42 * x6) + (((uint64_t)x44 * x4) + ((uint64_t)x46 * x2))))))))))))))))))))))) + (0x239 * ((uint64_t)x45 * x45)));
+ uint64_t x49 = ((((uint64_t)x2 * x44) + ((0x2 * ((uint64_t)x4 * x42)) + ((0x2 * ((uint64_t)x6 * x40)) + (((uint64_t)x8 * x38) + ((0x2 * ((uint64_t)x10 * x36)) + ((0x2 * ((uint64_t)x12 * x34)) + (((uint64_t)x14 * x32) + ((0x2 * ((uint64_t)x16 * x30)) + ((0x2 * ((uint64_t)x18 * x28)) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + ((0x2 * ((uint64_t)x28 * x18)) + ((0x2 * ((uint64_t)x30 * x16)) + (((uint64_t)x32 * x14) + ((0x2 * ((uint64_t)x34 * x12)) + ((0x2 * ((uint64_t)x36 * x10)) + (((uint64_t)x38 * x8) + ((0x2 * ((uint64_t)x40 * x6)) + ((0x2 * ((uint64_t)x42 * x4)) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x46 * x45)) + (0x2 * ((uint64_t)x45 * x46)))));
+ uint64_t x50 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + (((uint64_t)x6 * x38) + (((uint64_t)x8 * x36) + ((0x2 * ((uint64_t)x10 * x34)) + (((uint64_t)x12 * x32) + (((uint64_t)x14 * x30) + ((0x2 * ((uint64_t)x16 * x28)) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + ((0x2 * ((uint64_t)x28 * x16)) + (((uint64_t)x30 * x14) + (((uint64_t)x32 * x12) + ((0x2 * ((uint64_t)x34 * x10)) + (((uint64_t)x36 * x8) + (((uint64_t)x38 * x6) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0x239 * (((uint64_t)x44 * x45) + ((0x2 * ((uint64_t)x46 * x46)) + ((uint64_t)x45 * x44)))));
+ uint64_t x51 = ((((uint64_t)x2 * x40) + (((uint64_t)x4 * x38) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + (((uint64_t)x38 * x4) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0x239 * (((uint64_t)x42 * x45) + (((uint64_t)x44 * x46) + (((uint64_t)x46 * x44) + ((uint64_t)x45 * x42))))));
+ uint64_t x52 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + (((uint64_t)x8 * x32) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (((uint64_t)x32 * x8) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x40 * x45)) + ((0x2 * ((uint64_t)x42 * x46)) + (((uint64_t)x44 * x44) + ((0x2 * ((uint64_t)x46 * x42)) + (0x2 * ((uint64_t)x45 * x40))))))));
+ uint64_t x53 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + (((uint64_t)x6 * x32) + (((uint64_t)x8 * x30) + ((0x2 * ((uint64_t)x10 * x28)) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + ((0x2 * ((uint64_t)x28 * x10)) + (((uint64_t)x30 * x8) + (((uint64_t)x32 * x6) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (0x239 * (((uint64_t)x38 * x45) + ((0x2 * ((uint64_t)x40 * x46)) + (((uint64_t)x42 * x44) + (((uint64_t)x44 * x42) + ((0x2 * ((uint64_t)x46 * x40)) + ((uint64_t)x45 * x38))))))));
+ uint64_t x54 = ((((uint64_t)x2 * x34) + (((uint64_t)x4 * x32) + (((uint64_t)x6 * x30) + (((uint64_t)x8 * x28) + (((uint64_t)x10 * x26) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + (((uint64_t)x26 * x10) + (((uint64_t)x28 * x8) + (((uint64_t)x30 * x6) + (((uint64_t)x32 * x4) + ((uint64_t)x34 * x2))))))))))))))))) + (0x239 * (((uint64_t)x36 * x45) + (((uint64_t)x38 * x46) + (((uint64_t)x40 * x44) + (((uint64_t)x42 * x42) + (((uint64_t)x44 * x40) + (((uint64_t)x46 * x38) + ((uint64_t)x45 * x36)))))))));
+ uint64_t x55 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + (((uint64_t)x8 * x26) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + (((uint64_t)x26 * x8) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x34 * x45)) + ((0x2 * ((uint64_t)x36 * x46)) + (((uint64_t)x38 * x44) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + (((uint64_t)x44 * x38) + ((0x2 * ((uint64_t)x46 * x36)) + (0x2 * ((uint64_t)x45 * x34)))))))))));
+ uint64_t x56 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + ((0x2 * ((uint64_t)x10 * x22)) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + ((0x2 * ((uint64_t)x16 * x16)) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (0x239 * (((uint64_t)x32 * x45) + ((0x2 * ((uint64_t)x34 * x46)) + (((uint64_t)x36 * x44) + (((uint64_t)x38 * x42) + ((0x2 * ((uint64_t)x40 * x40)) + (((uint64_t)x42 * x38) + (((uint64_t)x44 * x36) + ((0x2 * ((uint64_t)x46 * x34)) + ((uint64_t)x45 * x32)))))))))));
+ uint64_t x57 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((uint64_t)x8 * x22) + (((uint64_t)x10 * x20) + (((uint64_t)x12 * x18) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + (((uint64_t)x18 * x12) + (((uint64_t)x20 * x10) + (((uint64_t)x22 * x8) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x239 * (((uint64_t)x30 * x45) + (((uint64_t)x32 * x46) + (((uint64_t)x34 * x44) + (((uint64_t)x36 * x42) + (((uint64_t)x38 * x40) + (((uint64_t)x40 * x38) + (((uint64_t)x42 * x36) + (((uint64_t)x44 * x34) + (((uint64_t)x46 * x32) + ((uint64_t)x45 * x30))))))))))));
+ uint64_t x58 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + ((0x2 * ((uint64_t)x10 * x18)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + ((0x2 * ((uint64_t)x18 * x10)) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x28 * x45)) + ((0x2 * ((uint64_t)x30 * x46)) + (((uint64_t)x32 * x44) + ((0x2 * ((uint64_t)x34 * x42)) + ((0x2 * ((uint64_t)x36 * x40)) + (((uint64_t)x38 * x38) + ((0x2 * ((uint64_t)x40 * x36)) + ((0x2 * ((uint64_t)x42 * x34)) + (((uint64_t)x44 * x32) + ((0x2 * ((uint64_t)x46 * x30)) + (0x2 * ((uint64_t)x45 * x28))))))))))))));
+ uint64_t x59 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x239 * (((uint64_t)x26 * x45) + ((0x2 * ((uint64_t)x28 * x46)) + (((uint64_t)x30 * x44) + (((uint64_t)x32 * x42) + ((0x2 * ((uint64_t)x34 * x40)) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((0x2 * ((uint64_t)x40 * x34)) + (((uint64_t)x42 * x32) + (((uint64_t)x44 * x30) + ((0x2 * ((uint64_t)x46 * x28)) + ((uint64_t)x45 * x26))))))))))))));
+ uint64_t x60 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x239 * (((uint64_t)x24 * x45) + (((uint64_t)x26 * x46) + (((uint64_t)x28 * x44) + (((uint64_t)x30 * x42) + (((uint64_t)x32 * x40) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + (((uint64_t)x40 * x32) + (((uint64_t)x42 * x30) + (((uint64_t)x44 * x28) + (((uint64_t)x46 * x26) + ((uint64_t)x45 * x24)))))))))))))));
+ uint64_t x61 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x239 * ((0x2 * ((uint64_t)x22 * x45)) + ((0x2 * ((uint64_t)x24 * x46)) + (((uint64_t)x26 * x44) + ((0x2 * ((uint64_t)x28 * x42)) + ((0x2 * ((uint64_t)x30 * x40)) + (((uint64_t)x32 * x38) + ((0x2 * ((uint64_t)x34 * x36)) + ((0x2 * ((uint64_t)x36 * x34)) + (((uint64_t)x38 * x32) + ((0x2 * ((uint64_t)x40 * x30)) + ((0x2 * ((uint64_t)x42 * x28)) + (((uint64_t)x44 * x26) + ((0x2 * ((uint64_t)x46 * x24)) + (0x2 * ((uint64_t)x45 * x22)))))))))))))))));
+ uint64_t x62 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x239 * (((uint64_t)x20 * x45) + ((0x2 * ((uint64_t)x22 * x46)) + (((uint64_t)x24 * x44) + (((uint64_t)x26 * x42) + ((0x2 * ((uint64_t)x28 * x40)) + (((uint64_t)x30 * x38) + (((uint64_t)x32 * x36) + ((0x2 * ((uint64_t)x34 * x34)) + (((uint64_t)x36 * x32) + (((uint64_t)x38 * x30) + ((0x2 * ((uint64_t)x40 * x28)) + (((uint64_t)x42 * x26) + (((uint64_t)x44 * x24) + ((0x2 * ((uint64_t)x46 * x22)) + ((uint64_t)x45 * x20)))))))))))))))));
+ uint64_t x63 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x239 * (((uint64_t)x18 * x45) + (((uint64_t)x20 * x46) + (((uint64_t)x22 * x44) + (((uint64_t)x24 * x42) + (((uint64_t)x26 * x40) + (((uint64_t)x28 * x38) + (((uint64_t)x30 * x36) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + (((uint64_t)x36 * x30) + (((uint64_t)x38 * x28) + (((uint64_t)x40 * x26) + (((uint64_t)x42 * x24) + (((uint64_t)x44 * x22) + (((uint64_t)x46 * x20) + ((uint64_t)x45 * x18))))))))))))))))));
+ uint64_t x64 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x239 * ((0x2 * ((uint64_t)x16 * x45)) + ((0x2 * ((uint64_t)x18 * x46)) + (((uint64_t)x20 * x44) + ((0x2 * ((uint64_t)x22 * x42)) + ((0x2 * ((uint64_t)x24 * x40)) + (((uint64_t)x26 * x38) + ((0x2 * ((uint64_t)x28 * x36)) + ((0x2 * ((uint64_t)x30 * x34)) + (((uint64_t)x32 * x32) + ((0x2 * ((uint64_t)x34 * x30)) + ((0x2 * ((uint64_t)x36 * x28)) + (((uint64_t)x38 * x26) + ((0x2 * ((uint64_t)x40 * x24)) + ((0x2 * ((uint64_t)x42 * x22)) + (((uint64_t)x44 * x20) + ((0x2 * ((uint64_t)x46 * x18)) + (0x2 * ((uint64_t)x45 * x16))))))))))))))))))));
+ uint64_t x65 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (0x239 * (((uint64_t)x14 * x45) + ((0x2 * ((uint64_t)x16 * x46)) + (((uint64_t)x18 * x44) + (((uint64_t)x20 * x42) + ((0x2 * ((uint64_t)x22 * x40)) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + ((0x2 * ((uint64_t)x28 * x34)) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + ((0x2 * ((uint64_t)x34 * x28)) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((0x2 * ((uint64_t)x40 * x22)) + (((uint64_t)x42 * x20) + (((uint64_t)x44 * x18) + ((0x2 * ((uint64_t)x46 * x16)) + ((uint64_t)x45 * x14))))))))))))))))))));
+ uint64_t x66 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x239 * (((uint64_t)x12 * x45) + (((uint64_t)x14 * x46) + (((uint64_t)x16 * x44) + (((uint64_t)x18 * x42) + (((uint64_t)x20 * x40) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + (((uint64_t)x40 * x20) + (((uint64_t)x42 * x18) + (((uint64_t)x44 * x16) + (((uint64_t)x46 * x14) + ((uint64_t)x45 * x12)))))))))))))))))))));
+ uint64_t x67 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x239 * ((0x2 * ((uint64_t)x10 * x45)) + ((0x2 * ((uint64_t)x12 * x46)) + (((uint64_t)x14 * x44) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + (((uint64_t)x20 * x38) + ((0x2 * ((uint64_t)x22 * x36)) + ((0x2 * ((uint64_t)x24 * x34)) + (((uint64_t)x26 * x32) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (((uint64_t)x32 * x26) + ((0x2 * ((uint64_t)x34 * x24)) + ((0x2 * ((uint64_t)x36 * x22)) + (((uint64_t)x38 * x20) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + (((uint64_t)x44 * x14) + ((0x2 * ((uint64_t)x46 * x12)) + (0x2 * ((uint64_t)x45 * x10)))))))))))))))))))))));
+ uint64_t x68 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x239 * (((uint64_t)x8 * x45) + ((0x2 * ((uint64_t)x10 * x46)) + (((uint64_t)x12 * x44) + (((uint64_t)x14 * x42) + ((0x2 * ((uint64_t)x16 * x40)) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + ((0x2 * ((uint64_t)x22 * x34)) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + ((0x2 * ((uint64_t)x28 * x28)) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + ((0x2 * ((uint64_t)x34 * x22)) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((0x2 * ((uint64_t)x40 * x16)) + (((uint64_t)x42 * x14) + (((uint64_t)x44 * x12) + ((0x2 * ((uint64_t)x46 * x10)) + ((uint64_t)x45 * x8)))))))))))))))))))))));
+ uint64_t x69 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x239 * (((uint64_t)x6 * x45) + (((uint64_t)x8 * x46) + (((uint64_t)x10 * x44) + (((uint64_t)x12 * x42) + (((uint64_t)x14 * x40) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + (((uint64_t)x22 * x32) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (((uint64_t)x32 * x22) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + (((uint64_t)x40 * x14) + (((uint64_t)x42 * x12) + (((uint64_t)x44 * x10) + (((uint64_t)x46 * x8) + ((uint64_t)x45 * x6))))))))))))))))))))))));
+ uint64_t x70 = (((uint64_t)x2 * x2) + (0x239 * ((0x2 * ((uint64_t)x4 * x45)) + ((0x2 * ((uint64_t)x6 * x46)) + (((uint64_t)x8 * x44) + ((0x2 * ((uint64_t)x10 * x42)) + ((0x2 * ((uint64_t)x12 * x40)) + (((uint64_t)x14 * x38) + ((0x2 * ((uint64_t)x16 * x36)) + ((0x2 * ((uint64_t)x18 * x34)) + (((uint64_t)x20 * x32) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + (((uint64_t)x26 * x26) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + (((uint64_t)x32 * x20) + ((0x2 * ((uint64_t)x34 * x18)) + ((0x2 * ((uint64_t)x36 * x16)) + (((uint64_t)x38 * x14) + ((0x2 * ((uint64_t)x40 * x12)) + ((0x2 * ((uint64_t)x42 * x10)) + (((uint64_t)x44 * x8) + ((0x2 * ((uint64_t)x46 * x6)) + (0x2 * ((uint64_t)x45 * x4))))))))))))))))))))))))));
+ uint64_t x71 = (x70 >> 0x16);
+ uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ uint64_t x73 = (x71 + x69);
+ uint64_t x74 = (x73 >> 0x15);
+ uint32_t x75 = ((uint32_t)x73 & 0x1fffff);
+ uint64_t x76 = (x74 + x68);
+ uint64_t x77 = (x76 >> 0x15);
+ uint32_t x78 = ((uint32_t)x76 & 0x1fffff);
+ uint64_t x79 = (x77 + x67);
+ uint64_t x80 = (x79 >> 0x16);
+ uint32_t x81 = ((uint32_t)x79 & 0x3fffff);
+ uint64_t x82 = (x80 + x66);
+ uint64_t x83 = (x82 >> 0x15);
+ uint32_t x84 = ((uint32_t)x82 & 0x1fffff);
+ uint64_t x85 = (x83 + x65);
+ uint64_t x86 = (x85 >> 0x15);
+ uint32_t x87 = ((uint32_t)x85 & 0x1fffff);
+ uint64_t x88 = (x86 + x64);
+ uint64_t x89 = (x88 >> 0x16);
+ uint32_t x90 = ((uint32_t)x88 & 0x3fffff);
+ uint64_t x91 = (x89 + x63);
+ uint64_t x92 = (x91 >> 0x15);
+ uint32_t x93 = ((uint32_t)x91 & 0x1fffff);
+ uint64_t x94 = (x92 + x62);
+ uint64_t x95 = (x94 >> 0x15);
+ uint32_t x96 = ((uint32_t)x94 & 0x1fffff);
+ uint64_t x97 = (x95 + x61);
+ uint64_t x98 = (x97 >> 0x16);
+ uint32_t x99 = ((uint32_t)x97 & 0x3fffff);
+ uint64_t x100 = (x98 + x60);
+ uint64_t x101 = (x100 >> 0x15);
+ uint32_t x102 = ((uint32_t)x100 & 0x1fffff);
+ uint64_t x103 = (x101 + x59);
+ uint64_t x104 = (x103 >> 0x15);
+ uint32_t x105 = ((uint32_t)x103 & 0x1fffff);
+ uint64_t x106 = (x104 + x58);
+ uint64_t x107 = (x106 >> 0x16);
+ uint32_t x108 = ((uint32_t)x106 & 0x3fffff);
+ uint64_t x109 = (x107 + x57);
+ uint64_t x110 = (x109 >> 0x15);
+ uint32_t x111 = ((uint32_t)x109 & 0x1fffff);
+ uint64_t x112 = (x110 + x56);
+ uint64_t x113 = (x112 >> 0x15);
+ uint32_t x114 = ((uint32_t)x112 & 0x1fffff);
+ uint64_t x115 = (x113 + x55);
+ uint64_t x116 = (x115 >> 0x16);
+ uint32_t x117 = ((uint32_t)x115 & 0x3fffff);
+ uint64_t x118 = (x116 + x54);
+ uint64_t x119 = (x118 >> 0x15);
+ uint32_t x120 = ((uint32_t)x118 & 0x1fffff);
+ uint64_t x121 = (x119 + x53);
+ uint64_t x122 = (x121 >> 0x15);
+ uint32_t x123 = ((uint32_t)x121 & 0x1fffff);
+ uint64_t x124 = (x122 + x52);
+ uint64_t x125 = (x124 >> 0x16);
+ uint32_t x126 = ((uint32_t)x124 & 0x3fffff);
+ uint64_t x127 = (x125 + x51);
+ uint64_t x128 = (x127 >> 0x15);
+ uint32_t x129 = ((uint32_t)x127 & 0x1fffff);
+ uint64_t x130 = (x128 + x50);
+ uint64_t x131 = (x130 >> 0x15);
+ uint32_t x132 = ((uint32_t)x130 & 0x1fffff);
+ uint64_t x133 = (x131 + x49);
+ uint64_t x134 = (x133 >> 0x16);
+ uint32_t x135 = ((uint32_t)x133 & 0x3fffff);
+ uint64_t x136 = (x134 + x48);
+ uint64_t x137 = (x136 >> 0x15);
+ uint32_t x138 = ((uint32_t)x136 & 0x1fffff);
+ uint64_t x139 = (x137 + x47);
+ uint32_t x140 = (uint32_t) (x139 >> 0x15);
+ uint32_t x141 = ((uint32_t)x139 & 0x1fffff);
+ uint64_t x142 = (x72 + ((uint64_t)0x239 * x140));
+ uint32_t x143 = (uint32_t) (x142 >> 0x16);
+ uint32_t x144 = ((uint32_t)x142 & 0x3fffff);
+ uint32_t x145 = (x143 + x75);
+ uint32_t x146 = (x145 >> 0x15);
+ uint32_t x147 = (x145 & 0x1fffff);
+ return (Return x141, Return x138, Return x135, Return x132, Return x129, Return x126, Return x123, Return x120, Return x117, Return x114, Return x111, Return x108, Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, (x146 + x78), Return x147, Return x144))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_24limbs/fesub.c b/src/Specific/solinas32_2e512m569_24limbs/fesub.c
new file mode 100644
index 000000000..3acb523c0
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/fesub.c
@@ -0,0 +1,75 @@
+static void fesub(uint32_t out[24], const uint32_t in1[24], const uint32_t in2[24]) {
+ { const uint32_t x48 = in1[23];
+ { const uint32_t x49 = in1[22];
+ { const uint32_t x47 = in1[21];
+ { const uint32_t x45 = in1[20];
+ { const uint32_t x43 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x94 = in2[23];
+ { const uint32_t x95 = in2[22];
+ { const uint32_t x93 = in2[21];
+ { const uint32_t x91 = in2[20];
+ { const uint32_t x89 = in2[19];
+ { const uint32_t x87 = in2[18];
+ { const uint32_t x85 = in2[17];
+ { const uint32_t x83 = in2[16];
+ { const uint32_t x81 = in2[15];
+ { const uint32_t x79 = in2[14];
+ { const uint32_t x77 = in2[13];
+ { const uint32_t x75 = in2[12];
+ { const uint32_t x73 = in2[11];
+ { const uint32_t x71 = in2[10];
+ { const uint32_t x69 = in2[9];
+ { const uint32_t x67 = in2[8];
+ { const uint32_t x65 = in2[7];
+ { const uint32_t x63 = in2[6];
+ { const uint32_t x61 = in2[5];
+ { const uint32_t x59 = in2[4];
+ { const uint32_t x57 = in2[3];
+ { const uint32_t x55 = in2[2];
+ { const uint32_t x53 = in2[1];
+ { const uint32_t x51 = in2[0];
+ out[0] = ((0x7ffb8e + x5) - x51);
+ out[1] = ((0x3ffffe + x7) - x53);
+ out[2] = ((0x3ffffe + x9) - x55);
+ out[3] = ((0x7ffffe + x11) - x57);
+ out[4] = ((0x3ffffe + x13) - x59);
+ out[5] = ((0x3ffffe + x15) - x61);
+ out[6] = ((0x7ffffe + x17) - x63);
+ out[7] = ((0x3ffffe + x19) - x65);
+ out[8] = ((0x3ffffe + x21) - x67);
+ out[9] = ((0x7ffffe + x23) - x69);
+ out[10] = ((0x3ffffe + x25) - x71);
+ out[11] = ((0x3ffffe + x27) - x73);
+ out[12] = ((0x7ffffe + x29) - x75);
+ out[13] = ((0x3ffffe + x31) - x77);
+ out[14] = ((0x3ffffe + x33) - x79);
+ out[15] = ((0x7ffffe + x35) - x81);
+ out[16] = ((0x3ffffe + x37) - x83);
+ out[17] = ((0x3ffffe + x39) - x85);
+ out[18] = ((0x7ffffe + x41) - x87);
+ out[19] = ((0x3ffffe + x43) - x89);
+ out[20] = ((0x3ffffe + x45) - x91);
+ out[21] = ((0x7ffffe + x47) - x93);
+ out[22] = ((0x3ffffe + x49) - x95);
+ out[23] = ((0x3ffffe + x48) - x94);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e512m569_24limbs/fesubDisplay.log b/src/Specific/solinas32_2e512m569_24limbs/fesubDisplay.log
new file mode 100644
index 000000000..a92e47200
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x48, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x94, x95, x93, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51))%core,
+ (((0x3ffffe + x48) - x94), ((0x3ffffe + x49) - x95), ((0x7ffffe + x47) - x93), ((0x3ffffe + x45) - x91), ((0x3ffffe + x43) - x89), ((0x7ffffe + x41) - x87), ((0x3ffffe + x39) - x85), ((0x3ffffe + x37) - x83), ((0x7ffffe + x35) - x81), ((0x3ffffe + x33) - x79), ((0x3ffffe + x31) - x77), ((0x7ffffe + x29) - x75), ((0x3ffffe + x27) - x73), ((0x3ffffe + x25) - x71), ((0x7ffffe + x23) - x69), ((0x3ffffe + x21) - x67), ((0x3ffffe + x19) - x65), ((0x7ffffe + x17) - x63), ((0x3ffffe + x15) - x61), ((0x3ffffe + x13) - x59), ((0x7ffffe + x11) - x57), ((0x3ffffe + x9) - x55), ((0x3ffffe + x7) - x53), ((0x7ffb8e + x5) - x51)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_24limbs/freeze.c b/src/Specific/solinas32_2e512m569_24limbs/freeze.c
new file mode 100644
index 000000000..a06bca255
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/freeze.c
@@ -0,0 +1,124 @@
+static void freeze(uint32_t out[24], const uint32_t in1[24]) {
+ { const uint32_t x45 = in1[23];
+ { const uint32_t x46 = in1[22];
+ { const uint32_t x44 = in1[21];
+ { const uint32_t x42 = in1[20];
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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];
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffdc7);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x4, 0x1fffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x6, 0x1fffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x8, 0x3fffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x10, 0x1fffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x12, 0x1fffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x14, 0x3fffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x16, 0x1fffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x18, 0x1fffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x20, 0x3fffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x22, 0x1fffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x24, 0x1fffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x26, 0x3fffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x28, 0x1fffff);
+ { uint32_t x90, uint8_t x91 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x30, 0x1fffff);
+ { uint32_t x93, uint8_t x94 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x32, 0x3fffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x34, 0x1fffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x36, 0x1fffff);
+ { uint32_t x102, uint8_t x103 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x38, 0x3fffff);
+ { uint32_t x105, uint8_t x106 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x40, 0x1fffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x42, 0x1fffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x44, 0x3fffff);
+ { uint32_t x114, uint8_t x115 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x46, 0x1fffff);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x45, 0x1fffff);
+ { uint32_t x119 = cmovznz32(x118, 0x0, 0xffffffff);
+ { uint32_t x120 = (x119 & 0x3ffdc7);
+ { uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x48, Return x120);
+ { uint32_t x124 = (x119 & 0x1fffff);
+ { uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x51, Return x124);
+ { uint32_t x128 = (x119 & 0x1fffff);
+ { uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x54, Return x128);
+ { uint32_t x132 = (x119 & 0x3fffff);
+ { uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x57, Return x132);
+ { uint32_t x136 = (x119 & 0x1fffff);
+ { uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x60, Return x136);
+ { uint32_t x140 = (x119 & 0x1fffff);
+ { uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x63, Return x140);
+ { uint32_t x144 = (x119 & 0x3fffff);
+ { uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x66, Return x144);
+ { uint32_t x148 = (x119 & 0x1fffff);
+ { uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x69, Return x148);
+ { uint32_t x152 = (x119 & 0x1fffff);
+ { uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x72, Return x152);
+ { uint32_t x156 = (x119 & 0x3fffff);
+ { uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x75, Return x156);
+ { uint32_t x160 = (x119 & 0x1fffff);
+ { uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x78, Return x160);
+ { uint32_t x164 = (x119 & 0x1fffff);
+ { uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x81, Return x164);
+ { uint32_t x168 = (x119 & 0x3fffff);
+ { uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x84, Return x168);
+ { uint32_t x172 = (x119 & 0x1fffff);
+ { uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x87, Return x172);
+ { uint32_t x176 = (x119 & 0x1fffff);
+ { uint32_t x178, uint8_t x179 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x90, Return x176);
+ { uint32_t x180 = (x119 & 0x3fffff);
+ { uint32_t x182, uint8_t x183 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x179, Return x93, Return x180);
+ { uint32_t x184 = (x119 & 0x1fffff);
+ { uint32_t x186, uint8_t x187 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x183, Return x96, Return x184);
+ { uint32_t x188 = (x119 & 0x1fffff);
+ { uint32_t x190, uint8_t x191 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x187, Return x99, Return x188);
+ { uint32_t x192 = (x119 & 0x3fffff);
+ { uint32_t x194, uint8_t x195 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x191, Return x102, Return x192);
+ { uint32_t x196 = (x119 & 0x1fffff);
+ { uint32_t x198, uint8_t x199 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x195, Return x105, Return x196);
+ { uint32_t x200 = (x119 & 0x1fffff);
+ { uint32_t x202, uint8_t x203 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x199, Return x108, Return x200);
+ { uint32_t x204 = (x119 & 0x3fffff);
+ { uint32_t x206, uint8_t x207 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x203, Return x111, Return x204);
+ { uint32_t x208 = (x119 & 0x1fffff);
+ { uint32_t x210, uint8_t x211 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x207, Return x114, Return x208);
+ { uint32_t x212 = (x119 & 0x1fffff);
+ { uint32_t x214, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x211, Return x117, Return x212);
+ out[0] = x122;
+ out[1] = x126;
+ out[2] = x130;
+ out[3] = x134;
+ out[4] = x138;
+ out[5] = x142;
+ out[6] = x146;
+ out[7] = x150;
+ out[8] = x154;
+ out[9] = x158;
+ out[10] = x162;
+ out[11] = x166;
+ out[12] = x170;
+ out[13] = x174;
+ out[14] = x178;
+ out[15] = x182;
+ out[16] = x186;
+ out[17] = x190;
+ out[18] = x194;
+ out[19] = x198;
+ out[20] = x202;
+ out[21] = x206;
+ out[22] = x210;
+ out[23] = x214;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e512m569_24limbs/freezeDisplay.log b/src/Specific/solinas32_2e512m569_24limbs/freezeDisplay.log
new file mode 100644
index 000000000..d3f60da16
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_24limbs/freezeDisplay.log
@@ -0,0 +1,80 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x45, x46, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffdc7);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x4, 0x1fffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x6, 0x1fffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x8, 0x3fffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x10, 0x1fffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x12, 0x1fffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x14, 0x3fffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x16, 0x1fffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x18, 0x1fffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x20, 0x3fffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x22, 0x1fffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x24, 0x1fffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x26, 0x3fffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x28, 0x1fffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x30, 0x1fffff);
+ uint32_t x93, uint8_t x94 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x32, 0x3fffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x34, 0x1fffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x36, 0x1fffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x38, 0x3fffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x40, 0x1fffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x42, 0x1fffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x44, 0x3fffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x46, 0x1fffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x45, 0x1fffff);
+ uint32_t x119 = cmovznz32(x118, 0x0, 0xffffffff);
+ uint32_t x120 = (x119 & 0x3ffdc7);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x48, Return x120);
+ uint32_t x124 = (x119 & 0x1fffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x51, Return x124);
+ uint32_t x128 = (x119 & 0x1fffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x54, Return x128);
+ uint32_t x132 = (x119 & 0x3fffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x57, Return x132);
+ uint32_t x136 = (x119 & 0x1fffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x60, Return x136);
+ uint32_t x140 = (x119 & 0x1fffff);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x63, Return x140);
+ uint32_t x144 = (x119 & 0x3fffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x66, Return x144);
+ uint32_t x148 = (x119 & 0x1fffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x69, Return x148);
+ uint32_t x152 = (x119 & 0x1fffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x72, Return x152);
+ uint32_t x156 = (x119 & 0x3fffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x75, Return x156);
+ uint32_t x160 = (x119 & 0x1fffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x78, Return x160);
+ uint32_t x164 = (x119 & 0x1fffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x81, Return x164);
+ uint32_t x168 = (x119 & 0x3fffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x84, Return x168);
+ uint32_t x172 = (x119 & 0x1fffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x87, Return x172);
+ uint32_t x176 = (x119 & 0x1fffff);
+ uint32_t x178, uint8_t x179 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x90, Return x176);
+ uint32_t x180 = (x119 & 0x3fffff);
+ uint32_t x182, uint8_t x183 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x179, Return x93, Return x180);
+ uint32_t x184 = (x119 & 0x1fffff);
+ uint32_t x186, uint8_t x187 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x183, Return x96, Return x184);
+ uint32_t x188 = (x119 & 0x1fffff);
+ uint32_t x190, uint8_t x191 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x187, Return x99, Return x188);
+ uint32_t x192 = (x119 & 0x3fffff);
+ uint32_t x194, uint8_t x195 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x191, Return x102, Return x192);
+ uint32_t x196 = (x119 & 0x1fffff);
+ uint32_t x198, uint8_t x199 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x195, Return x105, Return x196);
+ uint32_t x200 = (x119 & 0x1fffff);
+ uint32_t x202, uint8_t x203 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x199, Return x108, Return x200);
+ uint32_t x204 = (x119 & 0x3fffff);
+ uint32_t x206, uint8_t x207 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x203, Return x111, Return x204);
+ uint32_t x208 = (x119 & 0x1fffff);
+ uint32_t x210, uint8_t x211 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x207, Return x114, Return x208);
+ uint32_t x212 = (x119 & 0x1fffff);
+ uint32_t x214, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x211, Return x117, Return x212);
+ (Return x214, Return x210, Return x206, Return x202, Return x198, Return x194, Return x190, Return x186, Return x182, Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_25limbs/feaddDisplay.log b/src/Specific/solinas32_2e512m569_25limbs/feaddDisplay.log
new file mode 100644
index 000000000..a5f61c9b9
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_25limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x98, x99, x97, x95, x93, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53))%core,
+ ((x50 + x98), (x51 + x99), (x49 + x97), (x47 + x95), (x45 + x93), (x43 + x91), (x41 + x89), (x39 + x87), (x37 + x85), (x35 + x83), (x33 + x81), (x31 + x79), (x29 + x77), (x27 + x75), (x25 + x73), (x23 + x71), (x21 + x69), (x19 + x67), (x17 + x65), (x15 + x63), (x13 + x61), (x11 + x59), (x9 + x57), (x7 + x55), (x5 + x53)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_25limbs/fesquareDisplay.log b/src/Specific/solinas32_2e512m569_25limbs/fesquareDisplay.log
new file mode 100644
index 000000000..656e9ee16
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_25limbs/fesquareDisplay.log
@@ -0,0 +1,112 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x47, x48, x46, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x49 = (((uint64_t)x2 * x47) + ((0x2 * ((uint64_t)x4 * x48)) + (((uint64_t)x6 * x46) + ((0x2 * ((uint64_t)x8 * x44)) + (((uint64_t)x10 * x42) + ((0x2 * ((uint64_t)x12 * x40)) + (((uint64_t)x14 * x38) + ((0x2 * ((uint64_t)x16 * x36)) + (((uint64_t)x18 * x34) + ((0x2 * ((uint64_t)x20 * x32)) + (((uint64_t)x22 * x30) + ((0x2 * ((uint64_t)x24 * x28)) + (((uint64_t)x26 * x26) + ((0x2 * ((uint64_t)x28 * x24)) + (((uint64_t)x30 * x22) + ((0x2 * ((uint64_t)x32 * x20)) + (((uint64_t)x34 * x18) + ((0x2 * ((uint64_t)x36 * x16)) + (((uint64_t)x38 * x14) + ((0x2 * ((uint64_t)x40 * x12)) + (((uint64_t)x42 * x10) + ((0x2 * ((uint64_t)x44 * x8)) + (((uint64_t)x46 * x6) + ((0x2 * ((uint64_t)x48 * x4)) + ((uint64_t)x47 * x2)))))))))))))))))))))))));
+ uint64_t x50 = ((((uint64_t)x2 * x48) + (((uint64_t)x4 * x46) + (((uint64_t)x6 * x44) + (((uint64_t)x8 * x42) + (((uint64_t)x10 * x40) + (((uint64_t)x12 * x38) + (((uint64_t)x14 * x36) + (((uint64_t)x16 * x34) + (((uint64_t)x18 * x32) + (((uint64_t)x20 * x30) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + (((uint64_t)x30 * x20) + (((uint64_t)x32 * x18) + (((uint64_t)x34 * x16) + (((uint64_t)x36 * x14) + (((uint64_t)x38 * x12) + (((uint64_t)x40 * x10) + (((uint64_t)x42 * x8) + (((uint64_t)x44 * x6) + (((uint64_t)x46 * x4) + ((uint64_t)x48 * x2)))))))))))))))))))))))) + (0x239 * ((uint64_t)x47 * x47)));
+ uint64_t x51 = ((((uint64_t)x2 * x46) + ((0x2 * ((uint64_t)x4 * x44)) + (((uint64_t)x6 * x42) + ((0x2 * ((uint64_t)x8 * x40)) + (((uint64_t)x10 * x38) + ((0x2 * ((uint64_t)x12 * x36)) + (((uint64_t)x14 * x34) + ((0x2 * ((uint64_t)x16 * x32)) + (((uint64_t)x18 * x30) + ((0x2 * ((uint64_t)x20 * x28)) + (((uint64_t)x22 * x26) + ((0x2 * ((uint64_t)x24 * x24)) + (((uint64_t)x26 * x22) + ((0x2 * ((uint64_t)x28 * x20)) + (((uint64_t)x30 * x18) + ((0x2 * ((uint64_t)x32 * x16)) + (((uint64_t)x34 * x14) + ((0x2 * ((uint64_t)x36 * x12)) + (((uint64_t)x38 * x10) + ((0x2 * ((uint64_t)x40 * x8)) + (((uint64_t)x42 * x6) + ((0x2 * ((uint64_t)x44 * x4)) + ((uint64_t)x46 * x2))))))))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x48 * x47)) + (0x2 * ((uint64_t)x47 * x48)))));
+ uint64_t x52 = ((((uint64_t)x2 * x44) + (((uint64_t)x4 * x42) + (((uint64_t)x6 * x40) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + (((uint64_t)x12 * x34) + (((uint64_t)x14 * x32) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + (((uint64_t)x32 * x14) + (((uint64_t)x34 * x12) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + (((uint64_t)x40 * x6) + (((uint64_t)x42 * x4) + ((uint64_t)x44 * x2)))))))))))))))))))))) + (0x239 * (((uint64_t)x46 * x47) + ((0x2 * ((uint64_t)x48 * x48)) + ((uint64_t)x47 * x46)))));
+ uint64_t x53 = ((((uint64_t)x2 * x42) + ((0x2 * ((uint64_t)x4 * x40)) + (((uint64_t)x6 * x38) + ((0x2 * ((uint64_t)x8 * x36)) + (((uint64_t)x10 * x34) + ((0x2 * ((uint64_t)x12 * x32)) + (((uint64_t)x14 * x30) + ((0x2 * ((uint64_t)x16 * x28)) + (((uint64_t)x18 * x26) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + (((uint64_t)x26 * x18) + ((0x2 * ((uint64_t)x28 * x16)) + (((uint64_t)x30 * x14) + ((0x2 * ((uint64_t)x32 * x12)) + (((uint64_t)x34 * x10) + ((0x2 * ((uint64_t)x36 * x8)) + (((uint64_t)x38 * x6) + ((0x2 * ((uint64_t)x40 * x4)) + ((uint64_t)x42 * x2))))))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x44 * x47)) + ((0x2 * ((uint64_t)x46 * x48)) + ((0x2 * ((uint64_t)x48 * x46)) + (0x2 * ((uint64_t)x47 * x44)))))));
+ uint64_t x54 = ((((uint64_t)x2 * x40) + (((uint64_t)x4 * x38) + (((uint64_t)x6 * x36) + (((uint64_t)x8 * x34) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + (((uint64_t)x34 * x8) + (((uint64_t)x36 * x6) + (((uint64_t)x38 * x4) + ((uint64_t)x40 * x2)))))))))))))))))))) + (0x239 * (((uint64_t)x42 * x47) + ((0x2 * ((uint64_t)x44 * x48)) + (((uint64_t)x46 * x46) + ((0x2 * ((uint64_t)x48 * x44)) + ((uint64_t)x47 * x42)))))));
+ uint64_t x55 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + (((uint64_t)x6 * x34) + ((0x2 * ((uint64_t)x8 * x32)) + (((uint64_t)x10 * x30) + ((0x2 * ((uint64_t)x12 * x28)) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + ((0x2 * ((uint64_t)x28 * x12)) + (((uint64_t)x30 * x10) + ((0x2 * ((uint64_t)x32 * x8)) + (((uint64_t)x34 * x6) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x40 * x47)) + ((0x2 * ((uint64_t)x42 * x48)) + ((0x2 * ((uint64_t)x44 * x46)) + ((0x2 * ((uint64_t)x46 * x44)) + ((0x2 * ((uint64_t)x48 * x42)) + (0x2 * ((uint64_t)x47 * x40)))))))));
+ uint64_t x56 = ((((uint64_t)x2 * x36) + (((uint64_t)x4 * x34) + (((uint64_t)x6 * x32) + (((uint64_t)x8 * x30) + (((uint64_t)x10 * x28) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + (((uint64_t)x16 * x22) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + (((uint64_t)x22 * x16) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + (((uint64_t)x28 * x10) + (((uint64_t)x30 * x8) + (((uint64_t)x32 * x6) + (((uint64_t)x34 * x4) + ((uint64_t)x36 * x2)))))))))))))))))) + (0x239 * (((uint64_t)x38 * x47) + ((0x2 * ((uint64_t)x40 * x48)) + (((uint64_t)x42 * x46) + ((0x2 * ((uint64_t)x44 * x44)) + (((uint64_t)x46 * x42) + ((0x2 * ((uint64_t)x48 * x40)) + ((uint64_t)x47 * x38)))))))));
+ uint64_t x57 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + (((uint64_t)x6 * x30) + ((0x2 * ((uint64_t)x8 * x28)) + (((uint64_t)x10 * x26) + ((0x2 * ((uint64_t)x12 * x24)) + (((uint64_t)x14 * x22) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + (((uint64_t)x22 * x14) + ((0x2 * ((uint64_t)x24 * x12)) + (((uint64_t)x26 * x10) + ((0x2 * ((uint64_t)x28 * x8)) + (((uint64_t)x30 * x6) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x36 * x47)) + ((0x2 * ((uint64_t)x38 * x48)) + ((0x2 * ((uint64_t)x40 * x46)) + ((0x2 * ((uint64_t)x42 * x44)) + ((0x2 * ((uint64_t)x44 * x42)) + ((0x2 * ((uint64_t)x46 * x40)) + ((0x2 * ((uint64_t)x48 * x38)) + (0x2 * ((uint64_t)x47 * x36)))))))))));
+ uint64_t x58 = ((((uint64_t)x2 * x32) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x32 * x2)))))))))))))))) + (0x239 * (((uint64_t)x34 * x47) + ((0x2 * ((uint64_t)x36 * x48)) + (((uint64_t)x38 * x46) + ((0x2 * ((uint64_t)x40 * x44)) + (((uint64_t)x42 * x42) + ((0x2 * ((uint64_t)x44 * x40)) + (((uint64_t)x46 * x38) + ((0x2 * ((uint64_t)x48 * x36)) + ((uint64_t)x47 * x34)))))))))));
+ uint64_t x59 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + (((uint64_t)x6 * x26) + ((0x2 * ((uint64_t)x8 * x24)) + (((uint64_t)x10 * x22) + ((0x2 * ((uint64_t)x12 * x20)) + (((uint64_t)x14 * x18) + ((0x2 * ((uint64_t)x16 * x16)) + (((uint64_t)x18 * x14) + ((0x2 * ((uint64_t)x20 * x12)) + (((uint64_t)x22 * x10) + ((0x2 * ((uint64_t)x24 * x8)) + (((uint64_t)x26 * x6) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x32 * x47)) + ((0x2 * ((uint64_t)x34 * x48)) + ((0x2 * ((uint64_t)x36 * x46)) + ((0x2 * ((uint64_t)x38 * x44)) + ((0x2 * ((uint64_t)x40 * x42)) + ((0x2 * ((uint64_t)x42 * x40)) + ((0x2 * ((uint64_t)x44 * x38)) + ((0x2 * ((uint64_t)x46 * x36)) + ((0x2 * ((uint64_t)x48 * x34)) + (0x2 * ((uint64_t)x47 * x32)))))))))))));
+ uint64_t x60 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((uint64_t)x8 * x22) + (((uint64_t)x10 * x20) + (((uint64_t)x12 * x18) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + (((uint64_t)x18 * x12) + (((uint64_t)x20 * x10) + (((uint64_t)x22 * x8) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x239 * (((uint64_t)x30 * x47) + ((0x2 * ((uint64_t)x32 * x48)) + (((uint64_t)x34 * x46) + ((0x2 * ((uint64_t)x36 * x44)) + (((uint64_t)x38 * x42) + ((0x2 * ((uint64_t)x40 * x40)) + (((uint64_t)x42 * x38) + ((0x2 * ((uint64_t)x44 * x36)) + (((uint64_t)x46 * x34) + ((0x2 * ((uint64_t)x48 * x32)) + ((uint64_t)x47 * x30)))))))))))));
+ uint64_t x61 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + (((uint64_t)x6 * x22) + ((0x2 * ((uint64_t)x8 * x20)) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + ((0x2 * ((uint64_t)x20 * x8)) + (((uint64_t)x22 * x6) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x239 * ((0x2 * ((uint64_t)x28 * x47)) + ((0x2 * ((uint64_t)x30 * x48)) + ((0x2 * ((uint64_t)x32 * x46)) + ((0x2 * ((uint64_t)x34 * x44)) + ((0x2 * ((uint64_t)x36 * x42)) + ((0x2 * ((uint64_t)x38 * x40)) + ((0x2 * ((uint64_t)x40 * x38)) + ((0x2 * ((uint64_t)x42 * x36)) + ((0x2 * ((uint64_t)x44 * x34)) + ((0x2 * ((uint64_t)x46 * x32)) + ((0x2 * ((uint64_t)x48 * x30)) + (0x2 * ((uint64_t)x47 * x28)))))))))))))));
+ uint64_t x62 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x239 * (((uint64_t)x26 * x47) + ((0x2 * ((uint64_t)x28 * x48)) + (((uint64_t)x30 * x46) + ((0x2 * ((uint64_t)x32 * x44)) + (((uint64_t)x34 * x42) + ((0x2 * ((uint64_t)x36 * x40)) + (((uint64_t)x38 * x38) + ((0x2 * ((uint64_t)x40 * x36)) + (((uint64_t)x42 * x34) + ((0x2 * ((uint64_t)x44 * x32)) + (((uint64_t)x46 * x30) + ((0x2 * ((uint64_t)x48 * x28)) + ((uint64_t)x47 * x26)))))))))))))));
+ uint64_t x63 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + (((uint64_t)x6 * x18) + ((0x2 * ((uint64_t)x8 * x16)) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + ((0x2 * ((uint64_t)x16 * x8)) + (((uint64_t)x18 * x6) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0x239 * ((0x2 * ((uint64_t)x24 * x47)) + ((0x2 * ((uint64_t)x26 * x48)) + ((0x2 * ((uint64_t)x28 * x46)) + ((0x2 * ((uint64_t)x30 * x44)) + ((0x2 * ((uint64_t)x32 * x42)) + ((0x2 * ((uint64_t)x34 * x40)) + ((0x2 * ((uint64_t)x36 * x38)) + ((0x2 * ((uint64_t)x38 * x36)) + ((0x2 * ((uint64_t)x40 * x34)) + ((0x2 * ((uint64_t)x42 * x32)) + ((0x2 * ((uint64_t)x44 * x30)) + ((0x2 * ((uint64_t)x46 * x28)) + ((0x2 * ((uint64_t)x48 * x26)) + (0x2 * ((uint64_t)x47 * x24)))))))))))))))));
+ uint64_t x64 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x239 * (((uint64_t)x22 * x47) + ((0x2 * ((uint64_t)x24 * x48)) + (((uint64_t)x26 * x46) + ((0x2 * ((uint64_t)x28 * x44)) + (((uint64_t)x30 * x42) + ((0x2 * ((uint64_t)x32 * x40)) + (((uint64_t)x34 * x38) + ((0x2 * ((uint64_t)x36 * x36)) + (((uint64_t)x38 * x34) + ((0x2 * ((uint64_t)x40 * x32)) + (((uint64_t)x42 * x30) + ((0x2 * ((uint64_t)x44 * x28)) + (((uint64_t)x46 * x26) + ((0x2 * ((uint64_t)x48 * x24)) + ((uint64_t)x47 * x22)))))))))))))))));
+ uint64_t x65 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + (((uint64_t)x6 * x14) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + (((uint64_t)x14 * x6) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x239 * ((0x2 * ((uint64_t)x20 * x47)) + ((0x2 * ((uint64_t)x22 * x48)) + ((0x2 * ((uint64_t)x24 * x46)) + ((0x2 * ((uint64_t)x26 * x44)) + ((0x2 * ((uint64_t)x28 * x42)) + ((0x2 * ((uint64_t)x30 * x40)) + ((0x2 * ((uint64_t)x32 * x38)) + ((0x2 * ((uint64_t)x34 * x36)) + ((0x2 * ((uint64_t)x36 * x34)) + ((0x2 * ((uint64_t)x38 * x32)) + ((0x2 * ((uint64_t)x40 * x30)) + ((0x2 * ((uint64_t)x42 * x28)) + ((0x2 * ((uint64_t)x44 * x26)) + ((0x2 * ((uint64_t)x46 * x24)) + ((0x2 * ((uint64_t)x48 * x22)) + (0x2 * ((uint64_t)x47 * x20)))))))))))))))))));
+ uint64_t x66 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x239 * (((uint64_t)x18 * x47) + ((0x2 * ((uint64_t)x20 * x48)) + (((uint64_t)x22 * x46) + ((0x2 * ((uint64_t)x24 * x44)) + (((uint64_t)x26 * x42) + ((0x2 * ((uint64_t)x28 * x40)) + (((uint64_t)x30 * x38) + ((0x2 * ((uint64_t)x32 * x36)) + (((uint64_t)x34 * x34) + ((0x2 * ((uint64_t)x36 * x32)) + (((uint64_t)x38 * x30) + ((0x2 * ((uint64_t)x40 * x28)) + (((uint64_t)x42 * x26) + ((0x2 * ((uint64_t)x44 * x24)) + (((uint64_t)x46 * x22) + ((0x2 * ((uint64_t)x48 * x20)) + ((uint64_t)x47 * x18)))))))))))))))))));
+ uint64_t x67 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + ((0x2 * ((uint64_t)x8 * x8)) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x239 * ((0x2 * ((uint64_t)x16 * x47)) + ((0x2 * ((uint64_t)x18 * x48)) + ((0x2 * ((uint64_t)x20 * x46)) + ((0x2 * ((uint64_t)x22 * x44)) + ((0x2 * ((uint64_t)x24 * x42)) + ((0x2 * ((uint64_t)x26 * x40)) + ((0x2 * ((uint64_t)x28 * x38)) + ((0x2 * ((uint64_t)x30 * x36)) + ((0x2 * ((uint64_t)x32 * x34)) + ((0x2 * ((uint64_t)x34 * x32)) + ((0x2 * ((uint64_t)x36 * x30)) + ((0x2 * ((uint64_t)x38 * x28)) + ((0x2 * ((uint64_t)x40 * x26)) + ((0x2 * ((uint64_t)x42 * x24)) + ((0x2 * ((uint64_t)x44 * x22)) + ((0x2 * ((uint64_t)x46 * x20)) + ((0x2 * ((uint64_t)x48 * x18)) + (0x2 * ((uint64_t)x47 * x16)))))))))))))))))))));
+ uint64_t x68 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x239 * (((uint64_t)x14 * x47) + ((0x2 * ((uint64_t)x16 * x48)) + (((uint64_t)x18 * x46) + ((0x2 * ((uint64_t)x20 * x44)) + (((uint64_t)x22 * x42) + ((0x2 * ((uint64_t)x24 * x40)) + (((uint64_t)x26 * x38) + ((0x2 * ((uint64_t)x28 * x36)) + (((uint64_t)x30 * x34) + ((0x2 * ((uint64_t)x32 * x32)) + (((uint64_t)x34 * x30) + ((0x2 * ((uint64_t)x36 * x28)) + (((uint64_t)x38 * x26) + ((0x2 * ((uint64_t)x40 * x24)) + (((uint64_t)x42 * x22) + ((0x2 * ((uint64_t)x44 * x20)) + (((uint64_t)x46 * x18) + ((0x2 * ((uint64_t)x48 * x16)) + ((uint64_t)x47 * x14)))))))))))))))))))));
+ uint64_t x69 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + (((uint64_t)x6 * x6) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x239 * ((0x2 * ((uint64_t)x12 * x47)) + ((0x2 * ((uint64_t)x14 * x48)) + ((0x2 * ((uint64_t)x16 * x46)) + ((0x2 * ((uint64_t)x18 * x44)) + ((0x2 * ((uint64_t)x20 * x42)) + ((0x2 * ((uint64_t)x22 * x40)) + ((0x2 * ((uint64_t)x24 * x38)) + ((0x2 * ((uint64_t)x26 * x36)) + ((0x2 * ((uint64_t)x28 * x34)) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + ((0x2 * ((uint64_t)x34 * x28)) + ((0x2 * ((uint64_t)x36 * x26)) + ((0x2 * ((uint64_t)x38 * x24)) + ((0x2 * ((uint64_t)x40 * x22)) + ((0x2 * ((uint64_t)x42 * x20)) + ((0x2 * ((uint64_t)x44 * x18)) + ((0x2 * ((uint64_t)x46 * x16)) + ((0x2 * ((uint64_t)x48 * x14)) + (0x2 * ((uint64_t)x47 * x12)))))))))))))))))))))));
+ uint64_t x70 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x239 * (((uint64_t)x10 * x47) + ((0x2 * ((uint64_t)x12 * x48)) + (((uint64_t)x14 * x46) + ((0x2 * ((uint64_t)x16 * x44)) + (((uint64_t)x18 * x42) + ((0x2 * ((uint64_t)x20 * x40)) + (((uint64_t)x22 * x38) + ((0x2 * ((uint64_t)x24 * x36)) + (((uint64_t)x26 * x34) + ((0x2 * ((uint64_t)x28 * x32)) + (((uint64_t)x30 * x30) + ((0x2 * ((uint64_t)x32 * x28)) + (((uint64_t)x34 * x26) + ((0x2 * ((uint64_t)x36 * x24)) + (((uint64_t)x38 * x22) + ((0x2 * ((uint64_t)x40 * x20)) + (((uint64_t)x42 * x18) + ((0x2 * ((uint64_t)x44 * x16)) + (((uint64_t)x46 * x14) + ((0x2 * ((uint64_t)x48 * x12)) + ((uint64_t)x47 * x10)))))))))))))))))))))));
+ uint64_t x71 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x239 * ((0x2 * ((uint64_t)x8 * x47)) + ((0x2 * ((uint64_t)x10 * x48)) + ((0x2 * ((uint64_t)x12 * x46)) + ((0x2 * ((uint64_t)x14 * x44)) + ((0x2 * ((uint64_t)x16 * x42)) + ((0x2 * ((uint64_t)x18 * x40)) + ((0x2 * ((uint64_t)x20 * x38)) + ((0x2 * ((uint64_t)x22 * x36)) + ((0x2 * ((uint64_t)x24 * x34)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + ((0x2 * ((uint64_t)x34 * x24)) + ((0x2 * ((uint64_t)x36 * x22)) + ((0x2 * ((uint64_t)x38 * x20)) + ((0x2 * ((uint64_t)x40 * x18)) + ((0x2 * ((uint64_t)x42 * x16)) + ((0x2 * ((uint64_t)x44 * x14)) + ((0x2 * ((uint64_t)x46 * x12)) + ((0x2 * ((uint64_t)x48 * x10)) + (0x2 * ((uint64_t)x47 * x8)))))))))))))))))))))))));
+ uint64_t x72 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x239 * (((uint64_t)x6 * x47) + ((0x2 * ((uint64_t)x8 * x48)) + (((uint64_t)x10 * x46) + ((0x2 * ((uint64_t)x12 * x44)) + (((uint64_t)x14 * x42) + ((0x2 * ((uint64_t)x16 * x40)) + (((uint64_t)x18 * x38) + ((0x2 * ((uint64_t)x20 * x36)) + (((uint64_t)x22 * x34) + ((0x2 * ((uint64_t)x24 * x32)) + (((uint64_t)x26 * x30) + ((0x2 * ((uint64_t)x28 * x28)) + (((uint64_t)x30 * x26) + ((0x2 * ((uint64_t)x32 * x24)) + (((uint64_t)x34 * x22) + ((0x2 * ((uint64_t)x36 * x20)) + (((uint64_t)x38 * x18) + ((0x2 * ((uint64_t)x40 * x16)) + (((uint64_t)x42 * x14) + ((0x2 * ((uint64_t)x44 * x12)) + (((uint64_t)x46 * x10) + ((0x2 * ((uint64_t)x48 * x8)) + ((uint64_t)x47 * x6)))))))))))))))))))))))));
+ uint64_t x73 = (((uint64_t)x2 * x2) + (0x239 * ((0x2 * ((uint64_t)x4 * x47)) + ((0x2 * ((uint64_t)x6 * x48)) + ((0x2 * ((uint64_t)x8 * x46)) + ((0x2 * ((uint64_t)x10 * x44)) + ((0x2 * ((uint64_t)x12 * x42)) + ((0x2 * ((uint64_t)x14 * x40)) + ((0x2 * ((uint64_t)x16 * x38)) + ((0x2 * ((uint64_t)x18 * x36)) + ((0x2 * ((uint64_t)x20 * x34)) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + ((0x2 * ((uint64_t)x34 * x20)) + ((0x2 * ((uint64_t)x36 * x18)) + ((0x2 * ((uint64_t)x38 * x16)) + ((0x2 * ((uint64_t)x40 * x14)) + ((0x2 * ((uint64_t)x42 * x12)) + ((0x2 * ((uint64_t)x44 * x10)) + ((0x2 * ((uint64_t)x46 * x8)) + ((0x2 * ((uint64_t)x48 * x6)) + (0x2 * ((uint64_t)x47 * x4)))))))))))))))))))))))))));
+ uint64_t x74 = (x73 >> 0x15);
+ uint32_t x75 = ((uint32_t)x73 & 0x1fffff);
+ uint64_t x76 = (x74 + x72);
+ uint64_t x77 = (x76 >> 0x14);
+ uint32_t x78 = ((uint32_t)x76 & 0xfffff);
+ uint64_t x79 = (x77 + x71);
+ uint64_t x80 = (x79 >> 0x15);
+ uint32_t x81 = ((uint32_t)x79 & 0x1fffff);
+ uint64_t x82 = (x80 + x70);
+ uint64_t x83 = (x82 >> 0x14);
+ uint32_t x84 = ((uint32_t)x82 & 0xfffff);
+ uint64_t x85 = (x83 + x69);
+ uint64_t x86 = (x85 >> 0x15);
+ uint32_t x87 = ((uint32_t)x85 & 0x1fffff);
+ uint64_t x88 = (x86 + x68);
+ uint64_t x89 = (x88 >> 0x14);
+ uint32_t x90 = ((uint32_t)x88 & 0xfffff);
+ uint64_t x91 = (x89 + x67);
+ uint64_t x92 = (x91 >> 0x15);
+ uint32_t x93 = ((uint32_t)x91 & 0x1fffff);
+ uint64_t x94 = (x92 + x66);
+ uint64_t x95 = (x94 >> 0x14);
+ uint32_t x96 = ((uint32_t)x94 & 0xfffff);
+ uint64_t x97 = (x95 + x65);
+ uint64_t x98 = (x97 >> 0x15);
+ uint32_t x99 = ((uint32_t)x97 & 0x1fffff);
+ uint64_t x100 = (x98 + x64);
+ uint64_t x101 = (x100 >> 0x14);
+ uint32_t x102 = ((uint32_t)x100 & 0xfffff);
+ uint64_t x103 = (x101 + x63);
+ uint64_t x104 = (x103 >> 0x15);
+ uint32_t x105 = ((uint32_t)x103 & 0x1fffff);
+ uint64_t x106 = (x104 + x62);
+ uint64_t x107 = (x106 >> 0x14);
+ uint32_t x108 = ((uint32_t)x106 & 0xfffff);
+ uint64_t x109 = (x107 + x61);
+ uint64_t x110 = (x109 >> 0x15);
+ uint32_t x111 = ((uint32_t)x109 & 0x1fffff);
+ uint64_t x112 = (x110 + x60);
+ uint64_t x113 = (x112 >> 0x14);
+ uint32_t x114 = ((uint32_t)x112 & 0xfffff);
+ uint64_t x115 = (x113 + x59);
+ uint64_t x116 = (x115 >> 0x15);
+ uint32_t x117 = ((uint32_t)x115 & 0x1fffff);
+ uint64_t x118 = (x116 + x58);
+ uint64_t x119 = (x118 >> 0x14);
+ uint32_t x120 = ((uint32_t)x118 & 0xfffff);
+ uint64_t x121 = (x119 + x57);
+ uint64_t x122 = (x121 >> 0x15);
+ uint32_t x123 = ((uint32_t)x121 & 0x1fffff);
+ uint64_t x124 = (x122 + x56);
+ uint64_t x125 = (x124 >> 0x14);
+ uint32_t x126 = ((uint32_t)x124 & 0xfffff);
+ uint64_t x127 = (x125 + x55);
+ uint64_t x128 = (x127 >> 0x15);
+ uint32_t x129 = ((uint32_t)x127 & 0x1fffff);
+ uint64_t x130 = (x128 + x54);
+ uint64_t x131 = (x130 >> 0x14);
+ uint32_t x132 = ((uint32_t)x130 & 0xfffff);
+ uint64_t x133 = (x131 + x53);
+ uint64_t x134 = (x133 >> 0x15);
+ uint32_t x135 = ((uint32_t)x133 & 0x1fffff);
+ uint64_t x136 = (x134 + x52);
+ uint64_t x137 = (x136 >> 0x14);
+ uint32_t x138 = ((uint32_t)x136 & 0xfffff);
+ uint64_t x139 = (x137 + x51);
+ uint64_t x140 = (x139 >> 0x15);
+ uint32_t x141 = ((uint32_t)x139 & 0x1fffff);
+ uint64_t x142 = (x140 + x50);
+ uint64_t x143 = (x142 >> 0x14);
+ uint32_t x144 = ((uint32_t)x142 & 0xfffff);
+ uint64_t x145 = (x143 + x49);
+ uint32_t x146 = (uint32_t) (x145 >> 0x14);
+ uint32_t x147 = ((uint32_t)x145 & 0xfffff);
+ uint64_t x148 = (x75 + ((uint64_t)0x239 * x146));
+ uint32_t x149 = (uint32_t) (x148 >> 0x15);
+ uint32_t x150 = ((uint32_t)x148 & 0x1fffff);
+ uint32_t x151 = (x149 + x78);
+ uint32_t x152 = (x151 >> 0x14);
+ uint32_t x153 = (x151 & 0xfffff);
+ return (Return x147, Return x144, Return x141, Return x138, Return x135, Return x132, Return x129, Return x126, Return x123, Return x120, Return x117, Return x114, Return x111, Return x108, Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, (x152 + x81), Return x153, Return x150))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_25limbs/fesubDisplay.log b/src/Specific/solinas32_2e512m569_25limbs/fesubDisplay.log
new file mode 100644
index 000000000..41ab7d34a
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_25limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x98, x99, x97, x95, x93, x91, x89, x87, x85, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53))%core,
+ (((0x1ffffe + x50) - x98), ((0x1ffffe + x51) - x99), ((0x3ffffe + x49) - x97), ((0x1ffffe + x47) - x95), ((0x3ffffe + x45) - x93), ((0x1ffffe + x43) - x91), ((0x3ffffe + x41) - x89), ((0x1ffffe + x39) - x87), ((0x3ffffe + x37) - x85), ((0x1ffffe + x35) - x83), ((0x3ffffe + x33) - x81), ((0x1ffffe + x31) - x79), ((0x3ffffe + x29) - x77), ((0x1ffffe + x27) - x75), ((0x3ffffe + x25) - x73), ((0x1ffffe + x23) - x71), ((0x3ffffe + x21) - x69), ((0x1ffffe + x19) - x67), ((0x3ffffe + x17) - x65), ((0x1ffffe + x15) - x63), ((0x3ffffe + x13) - x61), ((0x1ffffe + x11) - x59), ((0x3ffffe + x9) - x57), ((0x1ffffe + x7) - x55), ((Const 4193166 + x5) - x53)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e512m569_25limbs/freezeDisplay.log b/src/Specific/solinas32_2e512m569_25limbs/freezeDisplay.log
new file mode 100644
index 000000000..2f13026af
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569_25limbs/freezeDisplay.log
@@ -0,0 +1,83 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x47, x48, x46, x44, x42, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 2096583);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x4, 0xfffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x6, 0x1fffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x8, 0xfffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x10, 0x1fffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x12, 0xfffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x14, 0x1fffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x16, 0xfffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x18, 0x1fffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x20, 0xfffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x22, 0x1fffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x24, 0xfffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x26, 0x1fffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x28, 0xfffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x30, 0x1fffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x32, 0xfffff);
+ uint32_t x98, uint8_t x99 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x34, 0x1fffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x36, 0xfffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x38, 0x1fffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x40, 0xfffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x42, 0x1fffff);
+ uint32_t x113, uint8_t x114 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x44, 0xfffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x46, 0x1fffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x48, 0xfffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x47, 0xfffff);
+ uint32_t x124 = cmovznz32(x123, 0x0, 0xffffffff);
+ uint32_t x125 = (x124 & Const 2096583);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x50, Return x125);
+ uint32_t x129 = (x124 & 0xfffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x53, Return x129);
+ uint32_t x133 = (x124 & 0x1fffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x56, Return x133);
+ uint32_t x137 = (x124 & 0xfffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x59, Return x137);
+ uint32_t x141 = (x124 & 0x1fffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x62, Return x141);
+ uint32_t x145 = (x124 & 0xfffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x65, Return x145);
+ uint32_t x149 = (x124 & 0x1fffff);
+ uint32_t x151, uint8_t x152 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x68, Return x149);
+ uint32_t x153 = (x124 & 0xfffff);
+ uint32_t x155, uint8_t x156 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x152, Return x71, Return x153);
+ uint32_t x157 = (x124 & 0x1fffff);
+ uint32_t x159, uint8_t x160 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x156, Return x74, Return x157);
+ uint32_t x161 = (x124 & 0xfffff);
+ uint32_t x163, uint8_t x164 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x160, Return x77, Return x161);
+ uint32_t x165 = (x124 & 0x1fffff);
+ uint32_t x167, uint8_t x168 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x164, Return x80, Return x165);
+ uint32_t x169 = (x124 & 0xfffff);
+ uint32_t x171, uint8_t x172 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x168, Return x83, Return x169);
+ uint32_t x173 = (x124 & 0x1fffff);
+ uint32_t x175, uint8_t x176 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x172, Return x86, Return x173);
+ uint32_t x177 = (x124 & 0xfffff);
+ uint32_t x179, uint8_t x180 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x176, Return x89, Return x177);
+ uint32_t x181 = (x124 & 0x1fffff);
+ uint32_t x183, uint8_t x184 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x180, Return x92, Return x181);
+ uint32_t x185 = (x124 & 0xfffff);
+ uint32_t x187, uint8_t x188 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x184, Return x95, Return x185);
+ uint32_t x189 = (x124 & 0x1fffff);
+ uint32_t x191, uint8_t x192 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x188, Return x98, Return x189);
+ uint32_t x193 = (x124 & 0xfffff);
+ uint32_t x195, uint8_t x196 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x192, Return x101, Return x193);
+ uint32_t x197 = (x124 & 0x1fffff);
+ uint32_t x199, uint8_t x200 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x196, Return x104, Return x197);
+ uint32_t x201 = (x124 & 0xfffff);
+ uint32_t x203, uint8_t x204 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x200, Return x107, Return x201);
+ uint32_t x205 = (x124 & 0x1fffff);
+ uint32_t x207, uint8_t x208 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x204, Return x110, Return x205);
+ uint32_t x209 = (x124 & 0xfffff);
+ uint32_t x211, uint8_t x212 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x208, Return x113, Return x209);
+ uint32_t x213 = (x124 & 0x1fffff);
+ uint32_t x215, uint8_t x216 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x212, Return x116, Return x213);
+ uint32_t x217 = (x124 & 0xfffff);
+ uint32_t x219, uint8_t x220 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x216, Return x119, Return x217);
+ uint32_t x221 = (x124 & 0xfffff);
+ uint32_t x223, uint8_t _ = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x220, Return x122, Return x221);
+ (Return x223, Return x219, Return x215, Return x211, Return x207, Return x203, Return x199, Return x195, Return x191, Return x187, Return x183, Return x179, Return x175, Return x171, Return x167, Return x163, Return x159, Return x155, Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_20limbs/feadd.c b/src/Specific/solinas32_2e521m1_20limbs/feadd.c
new file mode 100644
index 000000000..28ee6f665
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/feadd.c
@@ -0,0 +1,63 @@
+static void feadd(uint32_t out[20], const uint32_t in1[20], const uint32_t in2[20]) {
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x78 = in2[19];
+ { const uint32_t x79 = in2[18];
+ { const uint32_t x77 = in2[17];
+ { const uint32_t x75 = in2[16];
+ { const uint32_t x73 = in2[15];
+ { const uint32_t x71 = in2[14];
+ { const uint32_t x69 = in2[13];
+ { const uint32_t x67 = in2[12];
+ { const uint32_t x65 = in2[11];
+ { const uint32_t x63 = in2[10];
+ { const uint32_t x61 = in2[9];
+ { const uint32_t x59 = in2[8];
+ { const uint32_t x57 = in2[7];
+ { const uint32_t x55 = in2[6];
+ { const uint32_t x53 = in2[5];
+ { const uint32_t x51 = in2[4];
+ { const uint32_t x49 = in2[3];
+ { const uint32_t x47 = in2[2];
+ { const uint32_t x45 = in2[1];
+ { const uint32_t x43 = in2[0];
+ out[0] = (x5 + x43);
+ out[1] = (x7 + x45);
+ out[2] = (x9 + x47);
+ out[3] = (x11 + x49);
+ out[4] = (x13 + x51);
+ out[5] = (x15 + x53);
+ out[6] = (x17 + x55);
+ out[7] = (x19 + x57);
+ out[8] = (x21 + x59);
+ out[9] = (x23 + x61);
+ out[10] = (x25 + x63);
+ out[11] = (x27 + x65);
+ out[12] = (x29 + x67);
+ out[13] = (x31 + x69);
+ out[14] = (x33 + x71);
+ out[15] = (x35 + x73);
+ out[16] = (x37 + x75);
+ out[17] = (x39 + x77);
+ out[18] = (x41 + x79);
+ out[19] = (x40 + x78);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e521m1_20limbs/feaddDisplay.log b/src/Specific/solinas32_2e521m1_20limbs/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ ((x40 + x78), (x41 + x79), (x39 + x77), (x37 + x75), (x35 + x73), (x33 + x71), (x31 + x69), (x29 + x67), (x27 + x65), (x25 + x63), (x23 + x61), (x21 + x59), (x19 + x57), (x17 + x55), (x15 + x53), (x13 + x51), (x11 + x49), (x9 + x47), (x7 + x45), (x5 + x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_20limbs/femul.c b/src/Specific/solinas32_2e521m1_20limbs/femul.c
new file mode 100644
index 000000000..5d3dd9fd8
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/femul.c
@@ -0,0 +1,148 @@
+static void femul(uint32_t out[20], const uint32_t in1[20], const uint32_t in2[20]) {
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x78 = in2[19];
+ { const uint32_t x79 = in2[18];
+ { const uint32_t x77 = in2[17];
+ { const uint32_t x75 = in2[16];
+ { const uint32_t x73 = in2[15];
+ { const uint32_t x71 = in2[14];
+ { const uint32_t x69 = in2[13];
+ { const uint32_t x67 = in2[12];
+ { const uint32_t x65 = in2[11];
+ { const uint32_t x63 = in2[10];
+ { const uint32_t x61 = in2[9];
+ { const uint32_t x59 = in2[8];
+ { const uint32_t x57 = in2[7];
+ { const uint32_t x55 = in2[6];
+ { const uint32_t x53 = in2[5];
+ { const uint32_t x51 = in2[4];
+ { const uint32_t x49 = in2[3];
+ { const uint32_t x47 = in2[2];
+ { const uint32_t x45 = in2[1];
+ { const uint32_t x43 = in2[0];
+ { uint64_t x80 = (((uint64_t)x5 * x78) + ((0x2 * ((uint64_t)x7 * x79)) + ((0x2 * ((uint64_t)x9 * x77)) + ((0x2 * ((uint64_t)x11 * x75)) + ((0x2 * ((uint64_t)x13 * x73)) + ((0x2 * ((uint64_t)x15 * x71)) + ((0x2 * ((uint64_t)x17 * x69)) + ((0x2 * ((uint64_t)x19 * x67)) + ((0x2 * ((uint64_t)x21 * x65)) + ((0x2 * ((uint64_t)x23 * x63)) + ((0x2 * ((uint64_t)x25 * x61)) + ((0x2 * ((uint64_t)x27 * x59)) + ((0x2 * ((uint64_t)x29 * x57)) + ((0x2 * ((uint64_t)x31 * x55)) + ((0x2 * ((uint64_t)x33 * x53)) + ((0x2 * ((uint64_t)x35 * x51)) + ((0x2 * ((uint64_t)x37 * x49)) + ((0x2 * ((uint64_t)x39 * x47)) + ((0x2 * ((uint64_t)x41 * x45)) + ((uint64_t)x40 * x43))))))))))))))))))));
+ { uint64_t x81 = ((((uint64_t)x5 * x79) + ((0x2 * ((uint64_t)x7 * x77)) + ((0x2 * ((uint64_t)x9 * x75)) + ((0x2 * ((uint64_t)x11 * x73)) + ((0x2 * ((uint64_t)x13 * x71)) + ((0x2 * ((uint64_t)x15 * x69)) + ((0x2 * ((uint64_t)x17 * x67)) + ((0x2 * ((uint64_t)x19 * x65)) + ((0x2 * ((uint64_t)x21 * x63)) + ((0x2 * ((uint64_t)x23 * x61)) + ((0x2 * ((uint64_t)x25 * x59)) + ((0x2 * ((uint64_t)x27 * x57)) + ((0x2 * ((uint64_t)x29 * x55)) + ((0x2 * ((uint64_t)x31 * x53)) + ((0x2 * ((uint64_t)x33 * x51)) + ((0x2 * ((uint64_t)x35 * x49)) + ((0x2 * ((uint64_t)x37 * x47)) + ((0x2 * ((uint64_t)x39 * x45)) + ((uint64_t)x41 * x43))))))))))))))))))) + ((uint64_t)x40 * x78));
+ { uint64_t x82 = ((((uint64_t)x5 * x77) + ((0x2 * ((uint64_t)x7 * x75)) + ((0x2 * ((uint64_t)x9 * x73)) + ((0x2 * ((uint64_t)x11 * x71)) + ((0x2 * ((uint64_t)x13 * x69)) + ((0x2 * ((uint64_t)x15 * x67)) + ((0x2 * ((uint64_t)x17 * x65)) + ((0x2 * ((uint64_t)x19 * x63)) + ((0x2 * ((uint64_t)x21 * x61)) + ((0x2 * ((uint64_t)x23 * x59)) + ((0x2 * ((uint64_t)x25 * x57)) + ((0x2 * ((uint64_t)x27 * x55)) + ((0x2 * ((uint64_t)x29 * x53)) + ((0x2 * ((uint64_t)x31 * x51)) + ((0x2 * ((uint64_t)x33 * x49)) + ((0x2 * ((uint64_t)x35 * x47)) + ((0x2 * ((uint64_t)x37 * x45)) + ((uint64_t)x39 * x43)))))))))))))))))) + (((uint64_t)x41 * x78) + ((uint64_t)x40 * x79)));
+ { uint64_t x83 = ((((uint64_t)x5 * x75) + ((0x2 * ((uint64_t)x7 * x73)) + ((0x2 * ((uint64_t)x9 * x71)) + ((0x2 * ((uint64_t)x11 * x69)) + ((0x2 * ((uint64_t)x13 * x67)) + ((0x2 * ((uint64_t)x15 * x65)) + ((0x2 * ((uint64_t)x17 * x63)) + ((0x2 * ((uint64_t)x19 * x61)) + ((0x2 * ((uint64_t)x21 * x59)) + ((0x2 * ((uint64_t)x23 * x57)) + ((0x2 * ((uint64_t)x25 * x55)) + ((0x2 * ((uint64_t)x27 * x53)) + ((0x2 * ((uint64_t)x29 * x51)) + ((0x2 * ((uint64_t)x31 * x49)) + ((0x2 * ((uint64_t)x33 * x47)) + ((0x2 * ((uint64_t)x35 * x45)) + ((uint64_t)x37 * x43))))))))))))))))) + (((uint64_t)x39 * x78) + (((uint64_t)x41 * x79) + ((uint64_t)x40 * x77))));
+ { uint64_t x84 = ((((uint64_t)x5 * x73) + ((0x2 * ((uint64_t)x7 * x71)) + ((0x2 * ((uint64_t)x9 * x69)) + ((0x2 * ((uint64_t)x11 * x67)) + ((0x2 * ((uint64_t)x13 * x65)) + ((0x2 * ((uint64_t)x15 * x63)) + ((0x2 * ((uint64_t)x17 * x61)) + ((0x2 * ((uint64_t)x19 * x59)) + ((0x2 * ((uint64_t)x21 * x57)) + ((0x2 * ((uint64_t)x23 * x55)) + ((0x2 * ((uint64_t)x25 * x53)) + ((0x2 * ((uint64_t)x27 * x51)) + ((0x2 * ((uint64_t)x29 * x49)) + ((0x2 * ((uint64_t)x31 * x47)) + ((0x2 * ((uint64_t)x33 * x45)) + ((uint64_t)x35 * x43)))))))))))))))) + (((uint64_t)x37 * x78) + (((uint64_t)x39 * x79) + (((uint64_t)x41 * x77) + ((uint64_t)x40 * x75)))));
+ { uint64_t x85 = ((((uint64_t)x5 * x71) + ((0x2 * ((uint64_t)x7 * x69)) + ((0x2 * ((uint64_t)x9 * x67)) + ((0x2 * ((uint64_t)x11 * x65)) + ((0x2 * ((uint64_t)x13 * x63)) + ((0x2 * ((uint64_t)x15 * x61)) + ((0x2 * ((uint64_t)x17 * x59)) + ((0x2 * ((uint64_t)x19 * x57)) + ((0x2 * ((uint64_t)x21 * x55)) + ((0x2 * ((uint64_t)x23 * x53)) + ((0x2 * ((uint64_t)x25 * x51)) + ((0x2 * ((uint64_t)x27 * x49)) + ((0x2 * ((uint64_t)x29 * x47)) + ((0x2 * ((uint64_t)x31 * x45)) + ((uint64_t)x33 * x43))))))))))))))) + (((uint64_t)x35 * x78) + (((uint64_t)x37 * x79) + (((uint64_t)x39 * x77) + (((uint64_t)x41 * x75) + ((uint64_t)x40 * x73))))));
+ { uint64_t x86 = ((((uint64_t)x5 * x69) + ((0x2 * ((uint64_t)x7 * x67)) + ((0x2 * ((uint64_t)x9 * x65)) + ((0x2 * ((uint64_t)x11 * x63)) + ((0x2 * ((uint64_t)x13 * x61)) + ((0x2 * ((uint64_t)x15 * x59)) + ((0x2 * ((uint64_t)x17 * x57)) + ((0x2 * ((uint64_t)x19 * x55)) + ((0x2 * ((uint64_t)x21 * x53)) + ((0x2 * ((uint64_t)x23 * x51)) + ((0x2 * ((uint64_t)x25 * x49)) + ((0x2 * ((uint64_t)x27 * x47)) + ((0x2 * ((uint64_t)x29 * x45)) + ((uint64_t)x31 * x43)))))))))))))) + (((uint64_t)x33 * x78) + (((uint64_t)x35 * x79) + (((uint64_t)x37 * x77) + (((uint64_t)x39 * x75) + (((uint64_t)x41 * x73) + ((uint64_t)x40 * x71)))))));
+ { uint64_t x87 = ((((uint64_t)x5 * x67) + ((0x2 * ((uint64_t)x7 * x65)) + ((0x2 * ((uint64_t)x9 * x63)) + ((0x2 * ((uint64_t)x11 * x61)) + ((0x2 * ((uint64_t)x13 * x59)) + ((0x2 * ((uint64_t)x15 * x57)) + ((0x2 * ((uint64_t)x17 * x55)) + ((0x2 * ((uint64_t)x19 * x53)) + ((0x2 * ((uint64_t)x21 * x51)) + ((0x2 * ((uint64_t)x23 * x49)) + ((0x2 * ((uint64_t)x25 * x47)) + ((0x2 * ((uint64_t)x27 * x45)) + ((uint64_t)x29 * x43))))))))))))) + (((uint64_t)x31 * x78) + (((uint64_t)x33 * x79) + (((uint64_t)x35 * x77) + (((uint64_t)x37 * x75) + (((uint64_t)x39 * x73) + (((uint64_t)x41 * x71) + ((uint64_t)x40 * x69))))))));
+ { uint64_t x88 = ((((uint64_t)x5 * x65) + ((0x2 * ((uint64_t)x7 * x63)) + ((0x2 * ((uint64_t)x9 * x61)) + ((0x2 * ((uint64_t)x11 * x59)) + ((0x2 * ((uint64_t)x13 * x57)) + ((0x2 * ((uint64_t)x15 * x55)) + ((0x2 * ((uint64_t)x17 * x53)) + ((0x2 * ((uint64_t)x19 * x51)) + ((0x2 * ((uint64_t)x21 * x49)) + ((0x2 * ((uint64_t)x23 * x47)) + ((0x2 * ((uint64_t)x25 * x45)) + ((uint64_t)x27 * x43)))))))))))) + (((uint64_t)x29 * x78) + (((uint64_t)x31 * x79) + (((uint64_t)x33 * x77) + (((uint64_t)x35 * x75) + (((uint64_t)x37 * x73) + (((uint64_t)x39 * x71) + (((uint64_t)x41 * x69) + ((uint64_t)x40 * x67)))))))));
+ { uint64_t x89 = ((((uint64_t)x5 * x63) + ((0x2 * ((uint64_t)x7 * x61)) + ((0x2 * ((uint64_t)x9 * x59)) + ((0x2 * ((uint64_t)x11 * x57)) + ((0x2 * ((uint64_t)x13 * x55)) + ((0x2 * ((uint64_t)x15 * x53)) + ((0x2 * ((uint64_t)x17 * x51)) + ((0x2 * ((uint64_t)x19 * x49)) + ((0x2 * ((uint64_t)x21 * x47)) + ((0x2 * ((uint64_t)x23 * x45)) + ((uint64_t)x25 * x43))))))))))) + (((uint64_t)x27 * x78) + (((uint64_t)x29 * x79) + (((uint64_t)x31 * x77) + (((uint64_t)x33 * x75) + (((uint64_t)x35 * x73) + (((uint64_t)x37 * x71) + (((uint64_t)x39 * x69) + (((uint64_t)x41 * x67) + ((uint64_t)x40 * x65))))))))));
+ { uint64_t x90 = ((((uint64_t)x5 * x61) + ((0x2 * ((uint64_t)x7 * x59)) + ((0x2 * ((uint64_t)x9 * x57)) + ((0x2 * ((uint64_t)x11 * x55)) + ((0x2 * ((uint64_t)x13 * x53)) + ((0x2 * ((uint64_t)x15 * x51)) + ((0x2 * ((uint64_t)x17 * x49)) + ((0x2 * ((uint64_t)x19 * x47)) + ((0x2 * ((uint64_t)x21 * x45)) + ((uint64_t)x23 * x43)))))))))) + (((uint64_t)x25 * x78) + (((uint64_t)x27 * x79) + (((uint64_t)x29 * x77) + (((uint64_t)x31 * x75) + (((uint64_t)x33 * x73) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + (((uint64_t)x39 * x67) + (((uint64_t)x41 * x65) + ((uint64_t)x40 * x63)))))))))));
+ { uint64_t x91 = ((((uint64_t)x5 * x59) + ((0x2 * ((uint64_t)x7 * x57)) + ((0x2 * ((uint64_t)x9 * x55)) + ((0x2 * ((uint64_t)x11 * x53)) + ((0x2 * ((uint64_t)x13 * x51)) + ((0x2 * ((uint64_t)x15 * x49)) + ((0x2 * ((uint64_t)x17 * x47)) + ((0x2 * ((uint64_t)x19 * x45)) + ((uint64_t)x21 * x43))))))))) + (((uint64_t)x23 * x78) + (((uint64_t)x25 * x79) + (((uint64_t)x27 * x77) + (((uint64_t)x29 * x75) + (((uint64_t)x31 * x73) + (((uint64_t)x33 * x71) + (((uint64_t)x35 * x69) + (((uint64_t)x37 * x67) + (((uint64_t)x39 * x65) + (((uint64_t)x41 * x63) + ((uint64_t)x40 * x61))))))))))));
+ { uint64_t x92 = ((((uint64_t)x5 * x57) + ((0x2 * ((uint64_t)x7 * x55)) + ((0x2 * ((uint64_t)x9 * x53)) + ((0x2 * ((uint64_t)x11 * x51)) + ((0x2 * ((uint64_t)x13 * x49)) + ((0x2 * ((uint64_t)x15 * x47)) + ((0x2 * ((uint64_t)x17 * x45)) + ((uint64_t)x19 * x43)))))))) + (((uint64_t)x21 * x78) + (((uint64_t)x23 * x79) + (((uint64_t)x25 * x77) + (((uint64_t)x27 * x75) + (((uint64_t)x29 * x73) + (((uint64_t)x31 * x71) + (((uint64_t)x33 * x69) + (((uint64_t)x35 * x67) + (((uint64_t)x37 * x65) + (((uint64_t)x39 * x63) + (((uint64_t)x41 * x61) + ((uint64_t)x40 * x59)))))))))))));
+ { uint64_t x93 = ((((uint64_t)x5 * x55) + ((0x2 * ((uint64_t)x7 * x53)) + ((0x2 * ((uint64_t)x9 * x51)) + ((0x2 * ((uint64_t)x11 * x49)) + ((0x2 * ((uint64_t)x13 * x47)) + ((0x2 * ((uint64_t)x15 * x45)) + ((uint64_t)x17 * x43))))))) + (((uint64_t)x19 * x78) + (((uint64_t)x21 * x79) + (((uint64_t)x23 * x77) + (((uint64_t)x25 * x75) + (((uint64_t)x27 * x73) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + (((uint64_t)x33 * x67) + (((uint64_t)x35 * x65) + (((uint64_t)x37 * x63) + (((uint64_t)x39 * x61) + (((uint64_t)x41 * x59) + ((uint64_t)x40 * x57))))))))))))));
+ { uint64_t x94 = ((((uint64_t)x5 * x53) + ((0x2 * ((uint64_t)x7 * x51)) + ((0x2 * ((uint64_t)x9 * x49)) + ((0x2 * ((uint64_t)x11 * x47)) + ((0x2 * ((uint64_t)x13 * x45)) + ((uint64_t)x15 * x43)))))) + (((uint64_t)x17 * x78) + (((uint64_t)x19 * x79) + (((uint64_t)x21 * x77) + (((uint64_t)x23 * x75) + (((uint64_t)x25 * x73) + (((uint64_t)x27 * x71) + (((uint64_t)x29 * x69) + (((uint64_t)x31 * x67) + (((uint64_t)x33 * x65) + (((uint64_t)x35 * x63) + (((uint64_t)x37 * x61) + (((uint64_t)x39 * x59) + (((uint64_t)x41 * x57) + ((uint64_t)x40 * x55)))))))))))))));
+ { uint64_t x95 = ((((uint64_t)x5 * x51) + ((0x2 * ((uint64_t)x7 * x49)) + ((0x2 * ((uint64_t)x9 * x47)) + ((0x2 * ((uint64_t)x11 * x45)) + ((uint64_t)x13 * x43))))) + (((uint64_t)x15 * x78) + (((uint64_t)x17 * x79) + (((uint64_t)x19 * x77) + (((uint64_t)x21 * x75) + (((uint64_t)x23 * x73) + (((uint64_t)x25 * x71) + (((uint64_t)x27 * x69) + (((uint64_t)x29 * x67) + (((uint64_t)x31 * x65) + (((uint64_t)x33 * x63) + (((uint64_t)x35 * x61) + (((uint64_t)x37 * x59) + (((uint64_t)x39 * x57) + (((uint64_t)x41 * x55) + ((uint64_t)x40 * x53))))))))))))))));
+ { uint64_t x96 = ((((uint64_t)x5 * x49) + ((0x2 * ((uint64_t)x7 * x47)) + ((0x2 * ((uint64_t)x9 * x45)) + ((uint64_t)x11 * x43)))) + (((uint64_t)x13 * x78) + (((uint64_t)x15 * x79) + (((uint64_t)x17 * x77) + (((uint64_t)x19 * x75) + (((uint64_t)x21 * x73) + (((uint64_t)x23 * x71) + (((uint64_t)x25 * x69) + (((uint64_t)x27 * x67) + (((uint64_t)x29 * x65) + (((uint64_t)x31 * x63) + (((uint64_t)x33 * x61) + (((uint64_t)x35 * x59) + (((uint64_t)x37 * x57) + (((uint64_t)x39 * x55) + (((uint64_t)x41 * x53) + ((uint64_t)x40 * x51)))))))))))))))));
+ { uint64_t x97 = ((((uint64_t)x5 * x47) + ((0x2 * ((uint64_t)x7 * x45)) + ((uint64_t)x9 * x43))) + (((uint64_t)x11 * x78) + (((uint64_t)x13 * x79) + (((uint64_t)x15 * x77) + (((uint64_t)x17 * x75) + (((uint64_t)x19 * x73) + (((uint64_t)x21 * x71) + (((uint64_t)x23 * x69) + (((uint64_t)x25 * x67) + (((uint64_t)x27 * x65) + (((uint64_t)x29 * x63) + (((uint64_t)x31 * x61) + (((uint64_t)x33 * x59) + (((uint64_t)x35 * x57) + (((uint64_t)x37 * x55) + (((uint64_t)x39 * x53) + (((uint64_t)x41 * x51) + ((uint64_t)x40 * x49))))))))))))))))));
+ { uint64_t x98 = ((((uint64_t)x5 * x45) + ((uint64_t)x7 * x43)) + (((uint64_t)x9 * x78) + (((uint64_t)x11 * x79) + (((uint64_t)x13 * x77) + (((uint64_t)x15 * x75) + (((uint64_t)x17 * x73) + (((uint64_t)x19 * x71) + (((uint64_t)x21 * x69) + (((uint64_t)x23 * x67) + (((uint64_t)x25 * x65) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + (((uint64_t)x31 * x59) + (((uint64_t)x33 * x57) + (((uint64_t)x35 * x55) + (((uint64_t)x37 * x53) + (((uint64_t)x39 * x51) + (((uint64_t)x41 * x49) + ((uint64_t)x40 * x47)))))))))))))))))));
+ { uint64_t x99 = (((uint64_t)x5 * x43) + ((0x2 * ((uint64_t)x7 * x78)) + ((0x2 * ((uint64_t)x9 * x79)) + ((0x2 * ((uint64_t)x11 * x77)) + ((0x2 * ((uint64_t)x13 * x75)) + ((0x2 * ((uint64_t)x15 * x73)) + ((0x2 * ((uint64_t)x17 * x71)) + ((0x2 * ((uint64_t)x19 * x69)) + ((0x2 * ((uint64_t)x21 * x67)) + ((0x2 * ((uint64_t)x23 * x65)) + ((0x2 * ((uint64_t)x25 * x63)) + ((0x2 * ((uint64_t)x27 * x61)) + ((0x2 * ((uint64_t)x29 * x59)) + ((0x2 * ((uint64_t)x31 * x57)) + ((0x2 * ((uint64_t)x33 * x55)) + ((0x2 * ((uint64_t)x35 * x53)) + ((0x2 * ((uint64_t)x37 * x51)) + ((0x2 * ((uint64_t)x39 * x49)) + ((0x2 * ((uint64_t)x41 * x47)) + (0x2 * ((uint64_t)x40 * x45)))))))))))))))))))));
+ { uint64_t x100 = (x99 >> 0x1b);
+ { uint32_t x101 = ((uint32_t)x99 & 0x7ffffff);
+ { uint64_t x102 = (x100 + x98);
+ { uint64_t x103 = (x102 >> 0x1a);
+ { uint32_t x104 = ((uint32_t)x102 & 0x3ffffff);
+ { uint64_t x105 = (x103 + x97);
+ { uint64_t x106 = (x105 >> 0x1a);
+ { uint32_t x107 = ((uint32_t)x105 & 0x3ffffff);
+ { uint64_t x108 = (x106 + x96);
+ { uint64_t x109 = (x108 >> 0x1a);
+ { uint32_t x110 = ((uint32_t)x108 & 0x3ffffff);
+ { uint64_t x111 = (x109 + x95);
+ { uint64_t x112 = (x111 >> 0x1a);
+ { uint32_t x113 = ((uint32_t)x111 & 0x3ffffff);
+ { uint64_t x114 = (x112 + x94);
+ { uint64_t x115 = (x114 >> 0x1a);
+ { uint32_t x116 = ((uint32_t)x114 & 0x3ffffff);
+ { uint64_t x117 = (x115 + x93);
+ { uint64_t x118 = (x117 >> 0x1a);
+ { uint32_t x119 = ((uint32_t)x117 & 0x3ffffff);
+ { uint64_t x120 = (x118 + x92);
+ { uint64_t x121 = (x120 >> 0x1a);
+ { uint32_t x122 = ((uint32_t)x120 & 0x3ffffff);
+ { uint64_t x123 = (x121 + x91);
+ { uint64_t x124 = (x123 >> 0x1a);
+ { uint32_t x125 = ((uint32_t)x123 & 0x3ffffff);
+ { uint64_t x126 = (x124 + x90);
+ { uint64_t x127 = (x126 >> 0x1a);
+ { uint32_t x128 = ((uint32_t)x126 & 0x3ffffff);
+ { uint64_t x129 = (x127 + x89);
+ { uint64_t x130 = (x129 >> 0x1a);
+ { uint32_t x131 = ((uint32_t)x129 & 0x3ffffff);
+ { uint64_t x132 = (x130 + x88);
+ { uint64_t x133 = (x132 >> 0x1a);
+ { uint32_t x134 = ((uint32_t)x132 & 0x3ffffff);
+ { uint64_t x135 = (x133 + x87);
+ { uint64_t x136 = (x135 >> 0x1a);
+ { uint32_t x137 = ((uint32_t)x135 & 0x3ffffff);
+ { uint64_t x138 = (x136 + x86);
+ { uint64_t x139 = (x138 >> 0x1a);
+ { uint32_t x140 = ((uint32_t)x138 & 0x3ffffff);
+ { uint64_t x141 = (x139 + x85);
+ { uint64_t x142 = (x141 >> 0x1a);
+ { uint32_t x143 = ((uint32_t)x141 & 0x3ffffff);
+ { uint64_t x144 = (x142 + x84);
+ { uint64_t x145 = (x144 >> 0x1a);
+ { uint32_t x146 = ((uint32_t)x144 & 0x3ffffff);
+ { uint64_t x147 = (x145 + x83);
+ { uint64_t x148 = (x147 >> 0x1a);
+ { uint32_t x149 = ((uint32_t)x147 & 0x3ffffff);
+ { uint64_t x150 = (x148 + x82);
+ { uint64_t x151 = (x150 >> 0x1a);
+ { uint32_t x152 = ((uint32_t)x150 & 0x3ffffff);
+ { uint64_t x153 = (x151 + x81);
+ { uint64_t x154 = (x153 >> 0x1a);
+ { uint32_t x155 = ((uint32_t)x153 & 0x3ffffff);
+ { uint64_t x156 = (x154 + x80);
+ { uint64_t x157 = (x156 >> 0x1a);
+ { uint32_t x158 = ((uint32_t)x156 & 0x3ffffff);
+ { uint64_t x159 = (x101 + x157);
+ { uint32_t x160 = (uint32_t) (x159 >> 0x1b);
+ { uint32_t x161 = ((uint32_t)x159 & 0x7ffffff);
+ { uint32_t x162 = (x160 + x104);
+ { uint32_t x163 = (x162 >> 0x1a);
+ { uint32_t x164 = (x162 & 0x3ffffff);
+ out[0] = x161;
+ out[1] = x164;
+ out[2] = (x163 + x107);
+ out[3] = x110;
+ out[4] = x113;
+ out[5] = x116;
+ out[6] = x119;
+ out[7] = x122;
+ out[8] = x125;
+ out[9] = x128;
+ out[10] = x131;
+ out[11] = x134;
+ out[12] = x137;
+ out[13] = x140;
+ out[14] = x143;
+ out[15] = x146;
+ out[16] = x149;
+ out[17] = x152;
+ out[18] = x155;
+ out[19] = x158;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e521m1_20limbs/femulDisplay.log b/src/Specific/solinas32_2e521m1_20limbs/femulDisplay.log
new file mode 100644
index 000000000..ef4833993
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/femulDisplay.log
@@ -0,0 +1,92 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ uint64_t x80 = (((uint64_t)x5 * x78) + ((0x2 * ((uint64_t)x7 * x79)) + ((0x2 * ((uint64_t)x9 * x77)) + ((0x2 * ((uint64_t)x11 * x75)) + ((0x2 * ((uint64_t)x13 * x73)) + ((0x2 * ((uint64_t)x15 * x71)) + ((0x2 * ((uint64_t)x17 * x69)) + ((0x2 * ((uint64_t)x19 * x67)) + ((0x2 * ((uint64_t)x21 * x65)) + ((0x2 * ((uint64_t)x23 * x63)) + ((0x2 * ((uint64_t)x25 * x61)) + ((0x2 * ((uint64_t)x27 * x59)) + ((0x2 * ((uint64_t)x29 * x57)) + ((0x2 * ((uint64_t)x31 * x55)) + ((0x2 * ((uint64_t)x33 * x53)) + ((0x2 * ((uint64_t)x35 * x51)) + ((0x2 * ((uint64_t)x37 * x49)) + ((0x2 * ((uint64_t)x39 * x47)) + ((0x2 * ((uint64_t)x41 * x45)) + ((uint64_t)x40 * x43))))))))))))))))))));
+ uint64_t x81 = ((((uint64_t)x5 * x79) + ((0x2 * ((uint64_t)x7 * x77)) + ((0x2 * ((uint64_t)x9 * x75)) + ((0x2 * ((uint64_t)x11 * x73)) + ((0x2 * ((uint64_t)x13 * x71)) + ((0x2 * ((uint64_t)x15 * x69)) + ((0x2 * ((uint64_t)x17 * x67)) + ((0x2 * ((uint64_t)x19 * x65)) + ((0x2 * ((uint64_t)x21 * x63)) + ((0x2 * ((uint64_t)x23 * x61)) + ((0x2 * ((uint64_t)x25 * x59)) + ((0x2 * ((uint64_t)x27 * x57)) + ((0x2 * ((uint64_t)x29 * x55)) + ((0x2 * ((uint64_t)x31 * x53)) + ((0x2 * ((uint64_t)x33 * x51)) + ((0x2 * ((uint64_t)x35 * x49)) + ((0x2 * ((uint64_t)x37 * x47)) + ((0x2 * ((uint64_t)x39 * x45)) + ((uint64_t)x41 * x43))))))))))))))))))) + ((uint64_t)x40 * x78));
+ uint64_t x82 = ((((uint64_t)x5 * x77) + ((0x2 * ((uint64_t)x7 * x75)) + ((0x2 * ((uint64_t)x9 * x73)) + ((0x2 * ((uint64_t)x11 * x71)) + ((0x2 * ((uint64_t)x13 * x69)) + ((0x2 * ((uint64_t)x15 * x67)) + ((0x2 * ((uint64_t)x17 * x65)) + ((0x2 * ((uint64_t)x19 * x63)) + ((0x2 * ((uint64_t)x21 * x61)) + ((0x2 * ((uint64_t)x23 * x59)) + ((0x2 * ((uint64_t)x25 * x57)) + ((0x2 * ((uint64_t)x27 * x55)) + ((0x2 * ((uint64_t)x29 * x53)) + ((0x2 * ((uint64_t)x31 * x51)) + ((0x2 * ((uint64_t)x33 * x49)) + ((0x2 * ((uint64_t)x35 * x47)) + ((0x2 * ((uint64_t)x37 * x45)) + ((uint64_t)x39 * x43)))))))))))))))))) + (((uint64_t)x41 * x78) + ((uint64_t)x40 * x79)));
+ uint64_t x83 = ((((uint64_t)x5 * x75) + ((0x2 * ((uint64_t)x7 * x73)) + ((0x2 * ((uint64_t)x9 * x71)) + ((0x2 * ((uint64_t)x11 * x69)) + ((0x2 * ((uint64_t)x13 * x67)) + ((0x2 * ((uint64_t)x15 * x65)) + ((0x2 * ((uint64_t)x17 * x63)) + ((0x2 * ((uint64_t)x19 * x61)) + ((0x2 * ((uint64_t)x21 * x59)) + ((0x2 * ((uint64_t)x23 * x57)) + ((0x2 * ((uint64_t)x25 * x55)) + ((0x2 * ((uint64_t)x27 * x53)) + ((0x2 * ((uint64_t)x29 * x51)) + ((0x2 * ((uint64_t)x31 * x49)) + ((0x2 * ((uint64_t)x33 * x47)) + ((0x2 * ((uint64_t)x35 * x45)) + ((uint64_t)x37 * x43))))))))))))))))) + (((uint64_t)x39 * x78) + (((uint64_t)x41 * x79) + ((uint64_t)x40 * x77))));
+ uint64_t x84 = ((((uint64_t)x5 * x73) + ((0x2 * ((uint64_t)x7 * x71)) + ((0x2 * ((uint64_t)x9 * x69)) + ((0x2 * ((uint64_t)x11 * x67)) + ((0x2 * ((uint64_t)x13 * x65)) + ((0x2 * ((uint64_t)x15 * x63)) + ((0x2 * ((uint64_t)x17 * x61)) + ((0x2 * ((uint64_t)x19 * x59)) + ((0x2 * ((uint64_t)x21 * x57)) + ((0x2 * ((uint64_t)x23 * x55)) + ((0x2 * ((uint64_t)x25 * x53)) + ((0x2 * ((uint64_t)x27 * x51)) + ((0x2 * ((uint64_t)x29 * x49)) + ((0x2 * ((uint64_t)x31 * x47)) + ((0x2 * ((uint64_t)x33 * x45)) + ((uint64_t)x35 * x43)))))))))))))))) + (((uint64_t)x37 * x78) + (((uint64_t)x39 * x79) + (((uint64_t)x41 * x77) + ((uint64_t)x40 * x75)))));
+ uint64_t x85 = ((((uint64_t)x5 * x71) + ((0x2 * ((uint64_t)x7 * x69)) + ((0x2 * ((uint64_t)x9 * x67)) + ((0x2 * ((uint64_t)x11 * x65)) + ((0x2 * ((uint64_t)x13 * x63)) + ((0x2 * ((uint64_t)x15 * x61)) + ((0x2 * ((uint64_t)x17 * x59)) + ((0x2 * ((uint64_t)x19 * x57)) + ((0x2 * ((uint64_t)x21 * x55)) + ((0x2 * ((uint64_t)x23 * x53)) + ((0x2 * ((uint64_t)x25 * x51)) + ((0x2 * ((uint64_t)x27 * x49)) + ((0x2 * ((uint64_t)x29 * x47)) + ((0x2 * ((uint64_t)x31 * x45)) + ((uint64_t)x33 * x43))))))))))))))) + (((uint64_t)x35 * x78) + (((uint64_t)x37 * x79) + (((uint64_t)x39 * x77) + (((uint64_t)x41 * x75) + ((uint64_t)x40 * x73))))));
+ uint64_t x86 = ((((uint64_t)x5 * x69) + ((0x2 * ((uint64_t)x7 * x67)) + ((0x2 * ((uint64_t)x9 * x65)) + ((0x2 * ((uint64_t)x11 * x63)) + ((0x2 * ((uint64_t)x13 * x61)) + ((0x2 * ((uint64_t)x15 * x59)) + ((0x2 * ((uint64_t)x17 * x57)) + ((0x2 * ((uint64_t)x19 * x55)) + ((0x2 * ((uint64_t)x21 * x53)) + ((0x2 * ((uint64_t)x23 * x51)) + ((0x2 * ((uint64_t)x25 * x49)) + ((0x2 * ((uint64_t)x27 * x47)) + ((0x2 * ((uint64_t)x29 * x45)) + ((uint64_t)x31 * x43)))))))))))))) + (((uint64_t)x33 * x78) + (((uint64_t)x35 * x79) + (((uint64_t)x37 * x77) + (((uint64_t)x39 * x75) + (((uint64_t)x41 * x73) + ((uint64_t)x40 * x71)))))));
+ uint64_t x87 = ((((uint64_t)x5 * x67) + ((0x2 * ((uint64_t)x7 * x65)) + ((0x2 * ((uint64_t)x9 * x63)) + ((0x2 * ((uint64_t)x11 * x61)) + ((0x2 * ((uint64_t)x13 * x59)) + ((0x2 * ((uint64_t)x15 * x57)) + ((0x2 * ((uint64_t)x17 * x55)) + ((0x2 * ((uint64_t)x19 * x53)) + ((0x2 * ((uint64_t)x21 * x51)) + ((0x2 * ((uint64_t)x23 * x49)) + ((0x2 * ((uint64_t)x25 * x47)) + ((0x2 * ((uint64_t)x27 * x45)) + ((uint64_t)x29 * x43))))))))))))) + (((uint64_t)x31 * x78) + (((uint64_t)x33 * x79) + (((uint64_t)x35 * x77) + (((uint64_t)x37 * x75) + (((uint64_t)x39 * x73) + (((uint64_t)x41 * x71) + ((uint64_t)x40 * x69))))))));
+ uint64_t x88 = ((((uint64_t)x5 * x65) + ((0x2 * ((uint64_t)x7 * x63)) + ((0x2 * ((uint64_t)x9 * x61)) + ((0x2 * ((uint64_t)x11 * x59)) + ((0x2 * ((uint64_t)x13 * x57)) + ((0x2 * ((uint64_t)x15 * x55)) + ((0x2 * ((uint64_t)x17 * x53)) + ((0x2 * ((uint64_t)x19 * x51)) + ((0x2 * ((uint64_t)x21 * x49)) + ((0x2 * ((uint64_t)x23 * x47)) + ((0x2 * ((uint64_t)x25 * x45)) + ((uint64_t)x27 * x43)))))))))))) + (((uint64_t)x29 * x78) + (((uint64_t)x31 * x79) + (((uint64_t)x33 * x77) + (((uint64_t)x35 * x75) + (((uint64_t)x37 * x73) + (((uint64_t)x39 * x71) + (((uint64_t)x41 * x69) + ((uint64_t)x40 * x67)))))))));
+ uint64_t x89 = ((((uint64_t)x5 * x63) + ((0x2 * ((uint64_t)x7 * x61)) + ((0x2 * ((uint64_t)x9 * x59)) + ((0x2 * ((uint64_t)x11 * x57)) + ((0x2 * ((uint64_t)x13 * x55)) + ((0x2 * ((uint64_t)x15 * x53)) + ((0x2 * ((uint64_t)x17 * x51)) + ((0x2 * ((uint64_t)x19 * x49)) + ((0x2 * ((uint64_t)x21 * x47)) + ((0x2 * ((uint64_t)x23 * x45)) + ((uint64_t)x25 * x43))))))))))) + (((uint64_t)x27 * x78) + (((uint64_t)x29 * x79) + (((uint64_t)x31 * x77) + (((uint64_t)x33 * x75) + (((uint64_t)x35 * x73) + (((uint64_t)x37 * x71) + (((uint64_t)x39 * x69) + (((uint64_t)x41 * x67) + ((uint64_t)x40 * x65))))))))));
+ uint64_t x90 = ((((uint64_t)x5 * x61) + ((0x2 * ((uint64_t)x7 * x59)) + ((0x2 * ((uint64_t)x9 * x57)) + ((0x2 * ((uint64_t)x11 * x55)) + ((0x2 * ((uint64_t)x13 * x53)) + ((0x2 * ((uint64_t)x15 * x51)) + ((0x2 * ((uint64_t)x17 * x49)) + ((0x2 * ((uint64_t)x19 * x47)) + ((0x2 * ((uint64_t)x21 * x45)) + ((uint64_t)x23 * x43)))))))))) + (((uint64_t)x25 * x78) + (((uint64_t)x27 * x79) + (((uint64_t)x29 * x77) + (((uint64_t)x31 * x75) + (((uint64_t)x33 * x73) + (((uint64_t)x35 * x71) + (((uint64_t)x37 * x69) + (((uint64_t)x39 * x67) + (((uint64_t)x41 * x65) + ((uint64_t)x40 * x63)))))))))));
+ uint64_t x91 = ((((uint64_t)x5 * x59) + ((0x2 * ((uint64_t)x7 * x57)) + ((0x2 * ((uint64_t)x9 * x55)) + ((0x2 * ((uint64_t)x11 * x53)) + ((0x2 * ((uint64_t)x13 * x51)) + ((0x2 * ((uint64_t)x15 * x49)) + ((0x2 * ((uint64_t)x17 * x47)) + ((0x2 * ((uint64_t)x19 * x45)) + ((uint64_t)x21 * x43))))))))) + (((uint64_t)x23 * x78) + (((uint64_t)x25 * x79) + (((uint64_t)x27 * x77) + (((uint64_t)x29 * x75) + (((uint64_t)x31 * x73) + (((uint64_t)x33 * x71) + (((uint64_t)x35 * x69) + (((uint64_t)x37 * x67) + (((uint64_t)x39 * x65) + (((uint64_t)x41 * x63) + ((uint64_t)x40 * x61))))))))))));
+ uint64_t x92 = ((((uint64_t)x5 * x57) + ((0x2 * ((uint64_t)x7 * x55)) + ((0x2 * ((uint64_t)x9 * x53)) + ((0x2 * ((uint64_t)x11 * x51)) + ((0x2 * ((uint64_t)x13 * x49)) + ((0x2 * ((uint64_t)x15 * x47)) + ((0x2 * ((uint64_t)x17 * x45)) + ((uint64_t)x19 * x43)))))))) + (((uint64_t)x21 * x78) + (((uint64_t)x23 * x79) + (((uint64_t)x25 * x77) + (((uint64_t)x27 * x75) + (((uint64_t)x29 * x73) + (((uint64_t)x31 * x71) + (((uint64_t)x33 * x69) + (((uint64_t)x35 * x67) + (((uint64_t)x37 * x65) + (((uint64_t)x39 * x63) + (((uint64_t)x41 * x61) + ((uint64_t)x40 * x59)))))))))))));
+ uint64_t x93 = ((((uint64_t)x5 * x55) + ((0x2 * ((uint64_t)x7 * x53)) + ((0x2 * ((uint64_t)x9 * x51)) + ((0x2 * ((uint64_t)x11 * x49)) + ((0x2 * ((uint64_t)x13 * x47)) + ((0x2 * ((uint64_t)x15 * x45)) + ((uint64_t)x17 * x43))))))) + (((uint64_t)x19 * x78) + (((uint64_t)x21 * x79) + (((uint64_t)x23 * x77) + (((uint64_t)x25 * x75) + (((uint64_t)x27 * x73) + (((uint64_t)x29 * x71) + (((uint64_t)x31 * x69) + (((uint64_t)x33 * x67) + (((uint64_t)x35 * x65) + (((uint64_t)x37 * x63) + (((uint64_t)x39 * x61) + (((uint64_t)x41 * x59) + ((uint64_t)x40 * x57))))))))))))));
+ uint64_t x94 = ((((uint64_t)x5 * x53) + ((0x2 * ((uint64_t)x7 * x51)) + ((0x2 * ((uint64_t)x9 * x49)) + ((0x2 * ((uint64_t)x11 * x47)) + ((0x2 * ((uint64_t)x13 * x45)) + ((uint64_t)x15 * x43)))))) + (((uint64_t)x17 * x78) + (((uint64_t)x19 * x79) + (((uint64_t)x21 * x77) + (((uint64_t)x23 * x75) + (((uint64_t)x25 * x73) + (((uint64_t)x27 * x71) + (((uint64_t)x29 * x69) + (((uint64_t)x31 * x67) + (((uint64_t)x33 * x65) + (((uint64_t)x35 * x63) + (((uint64_t)x37 * x61) + (((uint64_t)x39 * x59) + (((uint64_t)x41 * x57) + ((uint64_t)x40 * x55)))))))))))))));
+ uint64_t x95 = ((((uint64_t)x5 * x51) + ((0x2 * ((uint64_t)x7 * x49)) + ((0x2 * ((uint64_t)x9 * x47)) + ((0x2 * ((uint64_t)x11 * x45)) + ((uint64_t)x13 * x43))))) + (((uint64_t)x15 * x78) + (((uint64_t)x17 * x79) + (((uint64_t)x19 * x77) + (((uint64_t)x21 * x75) + (((uint64_t)x23 * x73) + (((uint64_t)x25 * x71) + (((uint64_t)x27 * x69) + (((uint64_t)x29 * x67) + (((uint64_t)x31 * x65) + (((uint64_t)x33 * x63) + (((uint64_t)x35 * x61) + (((uint64_t)x37 * x59) + (((uint64_t)x39 * x57) + (((uint64_t)x41 * x55) + ((uint64_t)x40 * x53))))))))))))))));
+ uint64_t x96 = ((((uint64_t)x5 * x49) + ((0x2 * ((uint64_t)x7 * x47)) + ((0x2 * ((uint64_t)x9 * x45)) + ((uint64_t)x11 * x43)))) + (((uint64_t)x13 * x78) + (((uint64_t)x15 * x79) + (((uint64_t)x17 * x77) + (((uint64_t)x19 * x75) + (((uint64_t)x21 * x73) + (((uint64_t)x23 * x71) + (((uint64_t)x25 * x69) + (((uint64_t)x27 * x67) + (((uint64_t)x29 * x65) + (((uint64_t)x31 * x63) + (((uint64_t)x33 * x61) + (((uint64_t)x35 * x59) + (((uint64_t)x37 * x57) + (((uint64_t)x39 * x55) + (((uint64_t)x41 * x53) + ((uint64_t)x40 * x51)))))))))))))))));
+ uint64_t x97 = ((((uint64_t)x5 * x47) + ((0x2 * ((uint64_t)x7 * x45)) + ((uint64_t)x9 * x43))) + (((uint64_t)x11 * x78) + (((uint64_t)x13 * x79) + (((uint64_t)x15 * x77) + (((uint64_t)x17 * x75) + (((uint64_t)x19 * x73) + (((uint64_t)x21 * x71) + (((uint64_t)x23 * x69) + (((uint64_t)x25 * x67) + (((uint64_t)x27 * x65) + (((uint64_t)x29 * x63) + (((uint64_t)x31 * x61) + (((uint64_t)x33 * x59) + (((uint64_t)x35 * x57) + (((uint64_t)x37 * x55) + (((uint64_t)x39 * x53) + (((uint64_t)x41 * x51) + ((uint64_t)x40 * x49))))))))))))))))));
+ uint64_t x98 = ((((uint64_t)x5 * x45) + ((uint64_t)x7 * x43)) + (((uint64_t)x9 * x78) + (((uint64_t)x11 * x79) + (((uint64_t)x13 * x77) + (((uint64_t)x15 * x75) + (((uint64_t)x17 * x73) + (((uint64_t)x19 * x71) + (((uint64_t)x21 * x69) + (((uint64_t)x23 * x67) + (((uint64_t)x25 * x65) + (((uint64_t)x27 * x63) + (((uint64_t)x29 * x61) + (((uint64_t)x31 * x59) + (((uint64_t)x33 * x57) + (((uint64_t)x35 * x55) + (((uint64_t)x37 * x53) + (((uint64_t)x39 * x51) + (((uint64_t)x41 * x49) + ((uint64_t)x40 * x47)))))))))))))))))));
+ uint64_t x99 = (((uint64_t)x5 * x43) + ((0x2 * ((uint64_t)x7 * x78)) + ((0x2 * ((uint64_t)x9 * x79)) + ((0x2 * ((uint64_t)x11 * x77)) + ((0x2 * ((uint64_t)x13 * x75)) + ((0x2 * ((uint64_t)x15 * x73)) + ((0x2 * ((uint64_t)x17 * x71)) + ((0x2 * ((uint64_t)x19 * x69)) + ((0x2 * ((uint64_t)x21 * x67)) + ((0x2 * ((uint64_t)x23 * x65)) + ((0x2 * ((uint64_t)x25 * x63)) + ((0x2 * ((uint64_t)x27 * x61)) + ((0x2 * ((uint64_t)x29 * x59)) + ((0x2 * ((uint64_t)x31 * x57)) + ((0x2 * ((uint64_t)x33 * x55)) + ((0x2 * ((uint64_t)x35 * x53)) + ((0x2 * ((uint64_t)x37 * x51)) + ((0x2 * ((uint64_t)x39 * x49)) + ((0x2 * ((uint64_t)x41 * x47)) + (0x2 * ((uint64_t)x40 * x45)))))))))))))))))))));
+ uint64_t x100 = (x99 >> 0x1b);
+ uint32_t x101 = ((uint32_t)x99 & 0x7ffffff);
+ uint64_t x102 = (x100 + x98);
+ uint64_t x103 = (x102 >> 0x1a);
+ uint32_t x104 = ((uint32_t)x102 & 0x3ffffff);
+ uint64_t x105 = (x103 + x97);
+ uint64_t x106 = (x105 >> 0x1a);
+ uint32_t x107 = ((uint32_t)x105 & 0x3ffffff);
+ uint64_t x108 = (x106 + x96);
+ uint64_t x109 = (x108 >> 0x1a);
+ uint32_t x110 = ((uint32_t)x108 & 0x3ffffff);
+ uint64_t x111 = (x109 + x95);
+ uint64_t x112 = (x111 >> 0x1a);
+ uint32_t x113 = ((uint32_t)x111 & 0x3ffffff);
+ uint64_t x114 = (x112 + x94);
+ uint64_t x115 = (x114 >> 0x1a);
+ uint32_t x116 = ((uint32_t)x114 & 0x3ffffff);
+ uint64_t x117 = (x115 + x93);
+ uint64_t x118 = (x117 >> 0x1a);
+ uint32_t x119 = ((uint32_t)x117 & 0x3ffffff);
+ uint64_t x120 = (x118 + x92);
+ uint64_t x121 = (x120 >> 0x1a);
+ uint32_t x122 = ((uint32_t)x120 & 0x3ffffff);
+ uint64_t x123 = (x121 + x91);
+ uint64_t x124 = (x123 >> 0x1a);
+ uint32_t x125 = ((uint32_t)x123 & 0x3ffffff);
+ uint64_t x126 = (x124 + x90);
+ uint64_t x127 = (x126 >> 0x1a);
+ uint32_t x128 = ((uint32_t)x126 & 0x3ffffff);
+ uint64_t x129 = (x127 + x89);
+ uint64_t x130 = (x129 >> 0x1a);
+ uint32_t x131 = ((uint32_t)x129 & 0x3ffffff);
+ uint64_t x132 = (x130 + x88);
+ uint64_t x133 = (x132 >> 0x1a);
+ uint32_t x134 = ((uint32_t)x132 & 0x3ffffff);
+ uint64_t x135 = (x133 + x87);
+ uint64_t x136 = (x135 >> 0x1a);
+ uint32_t x137 = ((uint32_t)x135 & 0x3ffffff);
+ uint64_t x138 = (x136 + x86);
+ uint64_t x139 = (x138 >> 0x1a);
+ uint32_t x140 = ((uint32_t)x138 & 0x3ffffff);
+ uint64_t x141 = (x139 + x85);
+ uint64_t x142 = (x141 >> 0x1a);
+ uint32_t x143 = ((uint32_t)x141 & 0x3ffffff);
+ uint64_t x144 = (x142 + x84);
+ uint64_t x145 = (x144 >> 0x1a);
+ uint32_t x146 = ((uint32_t)x144 & 0x3ffffff);
+ uint64_t x147 = (x145 + x83);
+ uint64_t x148 = (x147 >> 0x1a);
+ uint32_t x149 = ((uint32_t)x147 & 0x3ffffff);
+ uint64_t x150 = (x148 + x82);
+ uint64_t x151 = (x150 >> 0x1a);
+ uint32_t x152 = ((uint32_t)x150 & 0x3ffffff);
+ uint64_t x153 = (x151 + x81);
+ uint64_t x154 = (x153 >> 0x1a);
+ uint32_t x155 = ((uint32_t)x153 & 0x3ffffff);
+ uint64_t x156 = (x154 + x80);
+ uint64_t x157 = (x156 >> 0x1a);
+ uint32_t x158 = ((uint32_t)x156 & 0x3ffffff);
+ uint64_t x159 = (x101 + x157);
+ uint32_t x160 = (uint32_t) (x159 >> 0x1b);
+ uint32_t x161 = ((uint32_t)x159 & 0x7ffffff);
+ uint32_t x162 = (x160 + x104);
+ uint32_t x163 = (x162 >> 0x1a);
+ uint32_t x164 = (x162 & 0x3ffffff);
+ return (Return x158, Return x155, Return x152, Return x149, Return x146, Return x143, Return x140, Return x137, Return x134, Return x131, Return x128, Return x125, Return x122, Return x119, Return x116, Return x113, Return x110, (x163 + x107), Return x164, Return x161))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_20limbs/fesquare.c b/src/Specific/solinas32_2e521m1_20limbs/fesquare.c
new file mode 100644
index 000000000..fc2e62bc4
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/fesquare.c
@@ -0,0 +1,128 @@
+static void fesquare(uint32_t out[20], const uint32_t in1[20]) {
+ { const uint32_t x37 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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 x39 = (((uint64_t)x2 * x37) + ((0x2 * ((uint64_t)x4 * x38)) + ((0x2 * ((uint64_t)x6 * x36)) + ((0x2 * ((uint64_t)x8 * x34)) + ((0x2 * ((uint64_t)x10 * x32)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + ((0x2 * ((uint64_t)x32 * x10)) + ((0x2 * ((uint64_t)x34 * x8)) + ((0x2 * ((uint64_t)x36 * x6)) + ((0x2 * ((uint64_t)x38 * x4)) + ((uint64_t)x37 * x2))))))))))))))))))));
+ { uint64_t x40 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + ((0x2 * ((uint64_t)x8 * x32)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((0x2 * ((uint64_t)x32 * x8)) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + ((uint64_t)x37 * x37));
+ { uint64_t x41 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (((uint64_t)x38 * x37) + ((uint64_t)x37 * x38)));
+ { uint64_t x42 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (((uint64_t)x36 * x37) + (((uint64_t)x38 * x38) + ((uint64_t)x37 * x36))));
+ { uint64_t x43 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (((uint64_t)x34 * x37) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((uint64_t)x37 * x34)))));
+ { uint64_t x44 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + ((0x2 * ((uint64_t)x6 * x26)) + ((0x2 * ((uint64_t)x8 * x24)) + ((0x2 * ((uint64_t)x10 * x22)) + ((0x2 * ((uint64_t)x12 * x20)) + ((0x2 * ((uint64_t)x14 * x18)) + ((0x2 * ((uint64_t)x16 * x16)) + ((0x2 * ((uint64_t)x18 * x14)) + ((0x2 * ((uint64_t)x20 * x12)) + ((0x2 * ((uint64_t)x22 * x10)) + ((0x2 * ((uint64_t)x24 * x8)) + ((0x2 * ((uint64_t)x26 * x6)) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (((uint64_t)x32 * x37) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + ((uint64_t)x37 * x32))))));
+ { uint64_t x45 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (((uint64_t)x30 * x37) + (((uint64_t)x32 * x38) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + (((uint64_t)x38 * x32) + ((uint64_t)x37 * x30)))))));
+ { uint64_t x46 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + ((0x2 * ((uint64_t)x8 * x20)) + ((0x2 * ((uint64_t)x10 * x18)) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + ((0x2 * ((uint64_t)x18 * x10)) + ((0x2 * ((uint64_t)x20 * x8)) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (((uint64_t)x28 * x37) + (((uint64_t)x30 * x38) + (((uint64_t)x32 * x36) + (((uint64_t)x34 * x34) + (((uint64_t)x36 * x32) + (((uint64_t)x38 * x30) + ((uint64_t)x37 * x28))))))));
+ { uint64_t x47 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((0x2 * ((uint64_t)x6 * x20)) + ((0x2 * ((uint64_t)x8 * x18)) + ((0x2 * ((uint64_t)x10 * x16)) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + ((0x2 * ((uint64_t)x16 * x10)) + ((0x2 * ((uint64_t)x18 * x8)) + ((0x2 * ((uint64_t)x20 * x6)) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (((uint64_t)x26 * x37) + (((uint64_t)x28 * x38) + (((uint64_t)x30 * x36) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + (((uint64_t)x36 * x30) + (((uint64_t)x38 * x28) + ((uint64_t)x37 * x26)))))))));
+ { uint64_t x48 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + ((0x2 * ((uint64_t)x6 * x18)) + ((0x2 * ((uint64_t)x8 * x16)) + ((0x2 * ((uint64_t)x10 * x14)) + ((0x2 * ((uint64_t)x12 * x12)) + ((0x2 * ((uint64_t)x14 * x10)) + ((0x2 * ((uint64_t)x16 * x8)) + ((0x2 * ((uint64_t)x18 * x6)) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (((uint64_t)x24 * x37) + (((uint64_t)x26 * x38) + (((uint64_t)x28 * x36) + (((uint64_t)x30 * x34) + (((uint64_t)x32 * x32) + (((uint64_t)x34 * x30) + (((uint64_t)x36 * x28) + (((uint64_t)x38 * x26) + ((uint64_t)x37 * x24))))))))));
+ { uint64_t x49 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + ((0x2 * ((uint64_t)x8 * x14)) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + ((0x2 * ((uint64_t)x14 * x8)) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (((uint64_t)x22 * x37) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((uint64_t)x37 * x22)))))))))));
+ { uint64_t x50 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + ((0x2 * ((uint64_t)x10 * x10)) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (((uint64_t)x20 * x37) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + ((uint64_t)x37 * x20))))))))))));
+ { uint64_t x51 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + ((0x2 * ((uint64_t)x8 * x10)) + ((0x2 * ((uint64_t)x10 * x8)) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (((uint64_t)x18 * x37) + (((uint64_t)x20 * x38) + (((uint64_t)x22 * x36) + (((uint64_t)x24 * x34) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + (((uint64_t)x34 * x24) + (((uint64_t)x36 * x22) + (((uint64_t)x38 * x20) + ((uint64_t)x37 * x18)))))))))))));
+ { uint64_t x52 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + ((0x2 * ((uint64_t)x8 * x8)) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (((uint64_t)x16 * x37) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + (((uint64_t)x22 * x34) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + (((uint64_t)x34 * x22) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((uint64_t)x37 * x16))))))))))))));
+ { uint64_t x53 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + ((0x2 * ((uint64_t)x6 * x8)) + ((0x2 * ((uint64_t)x8 * x6)) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (((uint64_t)x14 * x37) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + (((uint64_t)x22 * x32) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (((uint64_t)x32 * x22) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + ((uint64_t)x37 * x14)))))))))))))));
+ { uint64_t x54 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (((uint64_t)x12 * x37) + (((uint64_t)x14 * x38) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + (((uint64_t)x38 * x14) + ((uint64_t)x37 * x12))))))))))))))));
+ { uint64_t x55 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (((uint64_t)x10 * x37) + (((uint64_t)x12 * x38) + (((uint64_t)x14 * x36) + (((uint64_t)x16 * x34) + (((uint64_t)x18 * x32) + (((uint64_t)x20 * x30) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + (((uint64_t)x30 * x20) + (((uint64_t)x32 * x18) + (((uint64_t)x34 * x16) + (((uint64_t)x36 * x14) + (((uint64_t)x38 * x12) + ((uint64_t)x37 * x10)))))))))))))))));
+ { uint64_t x56 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (((uint64_t)x8 * x37) + (((uint64_t)x10 * x38) + (((uint64_t)x12 * x36) + (((uint64_t)x14 * x34) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + (((uint64_t)x34 * x14) + (((uint64_t)x36 * x12) + (((uint64_t)x38 * x10) + ((uint64_t)x37 * x8))))))))))))))))));
+ { uint64_t x57 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (((uint64_t)x6 * x37) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + (((uint64_t)x12 * x34) + (((uint64_t)x14 * x32) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + (((uint64_t)x32 * x14) + (((uint64_t)x34 * x12) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + ((uint64_t)x37 * x6)))))))))))))))))));
+ { uint64_t x58 = (((uint64_t)x2 * x2) + ((0x2 * ((uint64_t)x4 * x37)) + ((0x2 * ((uint64_t)x6 * x38)) + ((0x2 * ((uint64_t)x8 * x36)) + ((0x2 * ((uint64_t)x10 * x34)) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + ((0x2 * ((uint64_t)x34 * x10)) + ((0x2 * ((uint64_t)x36 * x8)) + ((0x2 * ((uint64_t)x38 * x6)) + (0x2 * ((uint64_t)x37 * x4)))))))))))))))))))));
+ { uint64_t x59 = (x58 >> 0x1b);
+ { uint32_t x60 = ((uint32_t)x58 & 0x7ffffff);
+ { uint64_t x61 = (x59 + x57);
+ { uint64_t x62 = (x61 >> 0x1a);
+ { uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ { uint64_t x64 = (x62 + x56);
+ { uint64_t x65 = (x64 >> 0x1a);
+ { uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ { uint64_t x67 = (x65 + x55);
+ { uint64_t x68 = (x67 >> 0x1a);
+ { uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ { uint64_t x70 = (x68 + x54);
+ { uint64_t x71 = (x70 >> 0x1a);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ { uint64_t x73 = (x71 + x53);
+ { uint64_t x74 = (x73 >> 0x1a);
+ { uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ { uint64_t x76 = (x74 + x52);
+ { uint64_t x77 = (x76 >> 0x1a);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ { uint64_t x79 = (x77 + x51);
+ { uint64_t x80 = (x79 >> 0x1a);
+ { uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ { uint64_t x82 = (x80 + x50);
+ { uint64_t x83 = (x82 >> 0x1a);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ { uint64_t x85 = (x83 + x49);
+ { uint64_t x86 = (x85 >> 0x1a);
+ { uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ { uint64_t x88 = (x86 + x48);
+ { uint64_t x89 = (x88 >> 0x1a);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ { uint64_t x91 = (x89 + x47);
+ { uint64_t x92 = (x91 >> 0x1a);
+ { uint32_t x93 = ((uint32_t)x91 & 0x3ffffff);
+ { uint64_t x94 = (x92 + x46);
+ { uint64_t x95 = (x94 >> 0x1a);
+ { uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ { uint64_t x97 = (x95 + x45);
+ { uint64_t x98 = (x97 >> 0x1a);
+ { uint32_t x99 = ((uint32_t)x97 & 0x3ffffff);
+ { uint64_t x100 = (x98 + x44);
+ { uint64_t x101 = (x100 >> 0x1a);
+ { uint32_t x102 = ((uint32_t)x100 & 0x3ffffff);
+ { uint64_t x103 = (x101 + x43);
+ { uint64_t x104 = (x103 >> 0x1a);
+ { uint32_t x105 = ((uint32_t)x103 & 0x3ffffff);
+ { uint64_t x106 = (x104 + x42);
+ { uint64_t x107 = (x106 >> 0x1a);
+ { uint32_t x108 = ((uint32_t)x106 & 0x3ffffff);
+ { uint64_t x109 = (x107 + x41);
+ { uint64_t x110 = (x109 >> 0x1a);
+ { uint32_t x111 = ((uint32_t)x109 & 0x3ffffff);
+ { uint64_t x112 = (x110 + x40);
+ { uint64_t x113 = (x112 >> 0x1a);
+ { uint32_t x114 = ((uint32_t)x112 & 0x3ffffff);
+ { uint64_t x115 = (x113 + x39);
+ { uint64_t x116 = (x115 >> 0x1a);
+ { uint32_t x117 = ((uint32_t)x115 & 0x3ffffff);
+ { uint64_t x118 = (x60 + x116);
+ { uint32_t x119 = (uint32_t) (x118 >> 0x1b);
+ { uint32_t x120 = ((uint32_t)x118 & 0x7ffffff);
+ { uint32_t x121 = (x119 + x63);
+ { uint32_t x122 = (x121 >> 0x1a);
+ { uint32_t x123 = (x121 & 0x3ffffff);
+ out[0] = x120;
+ out[1] = x123;
+ out[2] = (x122 + x66);
+ out[3] = x69;
+ out[4] = x72;
+ out[5] = x75;
+ out[6] = x78;
+ out[7] = x81;
+ out[8] = x84;
+ out[9] = x87;
+ out[10] = x90;
+ out[11] = x93;
+ out[12] = x96;
+ out[13] = x99;
+ out[14] = x102;
+ out[15] = x105;
+ out[16] = x108;
+ out[17] = x111;
+ out[18] = x114;
+ out[19] = x117;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e521m1_20limbs/fesquareDisplay.log b/src/Specific/solinas32_2e521m1_20limbs/fesquareDisplay.log
new file mode 100644
index 000000000..eeef1dab4
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/fesquareDisplay.log
@@ -0,0 +1,92 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x37, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x39 = (((uint64_t)x2 * x37) + ((0x2 * ((uint64_t)x4 * x38)) + ((0x2 * ((uint64_t)x6 * x36)) + ((0x2 * ((uint64_t)x8 * x34)) + ((0x2 * ((uint64_t)x10 * x32)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + ((0x2 * ((uint64_t)x32 * x10)) + ((0x2 * ((uint64_t)x34 * x8)) + ((0x2 * ((uint64_t)x36 * x6)) + ((0x2 * ((uint64_t)x38 * x4)) + ((uint64_t)x37 * x2))))))))))))))))))));
+ uint64_t x40 = ((((uint64_t)x2 * x38) + ((0x2 * ((uint64_t)x4 * x36)) + ((0x2 * ((uint64_t)x6 * x34)) + ((0x2 * ((uint64_t)x8 * x32)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((0x2 * ((uint64_t)x32 * x8)) + ((0x2 * ((uint64_t)x34 * x6)) + ((0x2 * ((uint64_t)x36 * x4)) + ((uint64_t)x38 * x2))))))))))))))))))) + ((uint64_t)x37 * x37));
+ uint64_t x41 = ((((uint64_t)x2 * x36) + ((0x2 * ((uint64_t)x4 * x34)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + ((0x2 * ((uint64_t)x34 * x4)) + ((uint64_t)x36 * x2)))))))))))))))))) + (((uint64_t)x38 * x37) + ((uint64_t)x37 * x38)));
+ uint64_t x42 = ((((uint64_t)x2 * x34) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x34 * x2))))))))))))))))) + (((uint64_t)x36 * x37) + (((uint64_t)x38 * x38) + ((uint64_t)x37 * x36))));
+ uint64_t x43 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (((uint64_t)x34 * x37) + (((uint64_t)x36 * x38) + (((uint64_t)x38 * x36) + ((uint64_t)x37 * x34)))));
+ uint64_t x44 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + ((0x2 * ((uint64_t)x6 * x26)) + ((0x2 * ((uint64_t)x8 * x24)) + ((0x2 * ((uint64_t)x10 * x22)) + ((0x2 * ((uint64_t)x12 * x20)) + ((0x2 * ((uint64_t)x14 * x18)) + ((0x2 * ((uint64_t)x16 * x16)) + ((0x2 * ((uint64_t)x18 * x14)) + ((0x2 * ((uint64_t)x20 * x12)) + ((0x2 * ((uint64_t)x22 * x10)) + ((0x2 * ((uint64_t)x24 * x8)) + ((0x2 * ((uint64_t)x26 * x6)) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (((uint64_t)x32 * x37) + (((uint64_t)x34 * x38) + (((uint64_t)x36 * x36) + (((uint64_t)x38 * x34) + ((uint64_t)x37 * x32))))));
+ uint64_t x45 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (((uint64_t)x30 * x37) + (((uint64_t)x32 * x38) + (((uint64_t)x34 * x36) + (((uint64_t)x36 * x34) + (((uint64_t)x38 * x32) + ((uint64_t)x37 * x30)))))));
+ uint64_t x46 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + ((0x2 * ((uint64_t)x8 * x20)) + ((0x2 * ((uint64_t)x10 * x18)) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + ((0x2 * ((uint64_t)x18 * x10)) + ((0x2 * ((uint64_t)x20 * x8)) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (((uint64_t)x28 * x37) + (((uint64_t)x30 * x38) + (((uint64_t)x32 * x36) + (((uint64_t)x34 * x34) + (((uint64_t)x36 * x32) + (((uint64_t)x38 * x30) + ((uint64_t)x37 * x28))))))));
+ uint64_t x47 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((0x2 * ((uint64_t)x6 * x20)) + ((0x2 * ((uint64_t)x8 * x18)) + ((0x2 * ((uint64_t)x10 * x16)) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + ((0x2 * ((uint64_t)x16 * x10)) + ((0x2 * ((uint64_t)x18 * x8)) + ((0x2 * ((uint64_t)x20 * x6)) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (((uint64_t)x26 * x37) + (((uint64_t)x28 * x38) + (((uint64_t)x30 * x36) + (((uint64_t)x32 * x34) + (((uint64_t)x34 * x32) + (((uint64_t)x36 * x30) + (((uint64_t)x38 * x28) + ((uint64_t)x37 * x26)))))))));
+ uint64_t x48 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + ((0x2 * ((uint64_t)x6 * x18)) + ((0x2 * ((uint64_t)x8 * x16)) + ((0x2 * ((uint64_t)x10 * x14)) + ((0x2 * ((uint64_t)x12 * x12)) + ((0x2 * ((uint64_t)x14 * x10)) + ((0x2 * ((uint64_t)x16 * x8)) + ((0x2 * ((uint64_t)x18 * x6)) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (((uint64_t)x24 * x37) + (((uint64_t)x26 * x38) + (((uint64_t)x28 * x36) + (((uint64_t)x30 * x34) + (((uint64_t)x32 * x32) + (((uint64_t)x34 * x30) + (((uint64_t)x36 * x28) + (((uint64_t)x38 * x26) + ((uint64_t)x37 * x24))))))))));
+ uint64_t x49 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((0x2 * ((uint64_t)x6 * x16)) + ((0x2 * ((uint64_t)x8 * x14)) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + ((0x2 * ((uint64_t)x14 * x8)) + ((0x2 * ((uint64_t)x16 * x6)) + ((0x2 * ((uint64_t)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (((uint64_t)x22 * x37) + (((uint64_t)x24 * x38) + (((uint64_t)x26 * x36) + (((uint64_t)x28 * x34) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + (((uint64_t)x34 * x28) + (((uint64_t)x36 * x26) + (((uint64_t)x38 * x24) + ((uint64_t)x37 * x22)))))))))));
+ uint64_t x50 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + ((0x2 * ((uint64_t)x10 * x10)) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (((uint64_t)x20 * x37) + (((uint64_t)x22 * x38) + (((uint64_t)x24 * x36) + (((uint64_t)x26 * x34) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + (((uint64_t)x34 * x26) + (((uint64_t)x36 * x24) + (((uint64_t)x38 * x22) + ((uint64_t)x37 * x20))))))))))));
+ uint64_t x51 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + ((0x2 * ((uint64_t)x8 * x10)) + ((0x2 * ((uint64_t)x10 * x8)) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (((uint64_t)x18 * x37) + (((uint64_t)x20 * x38) + (((uint64_t)x22 * x36) + (((uint64_t)x24 * x34) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + (((uint64_t)x34 * x24) + (((uint64_t)x36 * x22) + (((uint64_t)x38 * x20) + ((uint64_t)x37 * x18)))))))))))));
+ uint64_t x52 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + ((0x2 * ((uint64_t)x8 * x8)) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (((uint64_t)x16 * x37) + (((uint64_t)x18 * x38) + (((uint64_t)x20 * x36) + (((uint64_t)x22 * x34) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + (((uint64_t)x34 * x22) + (((uint64_t)x36 * x20) + (((uint64_t)x38 * x18) + ((uint64_t)x37 * x16))))))))))))));
+ uint64_t x53 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + ((0x2 * ((uint64_t)x6 * x8)) + ((0x2 * ((uint64_t)x8 * x6)) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (((uint64_t)x14 * x37) + (((uint64_t)x16 * x38) + (((uint64_t)x18 * x36) + (((uint64_t)x20 * x34) + (((uint64_t)x22 * x32) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (((uint64_t)x32 * x22) + (((uint64_t)x34 * x20) + (((uint64_t)x36 * x18) + (((uint64_t)x38 * x16) + ((uint64_t)x37 * x14)))))))))))))));
+ uint64_t x54 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (((uint64_t)x12 * x37) + (((uint64_t)x14 * x38) + (((uint64_t)x16 * x36) + (((uint64_t)x18 * x34) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + (((uint64_t)x34 * x18) + (((uint64_t)x36 * x16) + (((uint64_t)x38 * x14) + ((uint64_t)x37 * x12))))))))))))))));
+ uint64_t x55 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (((uint64_t)x10 * x37) + (((uint64_t)x12 * x38) + (((uint64_t)x14 * x36) + (((uint64_t)x16 * x34) + (((uint64_t)x18 * x32) + (((uint64_t)x20 * x30) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + (((uint64_t)x30 * x20) + (((uint64_t)x32 * x18) + (((uint64_t)x34 * x16) + (((uint64_t)x36 * x14) + (((uint64_t)x38 * x12) + ((uint64_t)x37 * x10)))))))))))))))));
+ uint64_t x56 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (((uint64_t)x8 * x37) + (((uint64_t)x10 * x38) + (((uint64_t)x12 * x36) + (((uint64_t)x14 * x34) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + (((uint64_t)x34 * x14) + (((uint64_t)x36 * x12) + (((uint64_t)x38 * x10) + ((uint64_t)x37 * x8))))))))))))))))));
+ uint64_t x57 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (((uint64_t)x6 * x37) + (((uint64_t)x8 * x38) + (((uint64_t)x10 * x36) + (((uint64_t)x12 * x34) + (((uint64_t)x14 * x32) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + (((uint64_t)x32 * x14) + (((uint64_t)x34 * x12) + (((uint64_t)x36 * x10) + (((uint64_t)x38 * x8) + ((uint64_t)x37 * x6)))))))))))))))))));
+ uint64_t x58 = (((uint64_t)x2 * x2) + ((0x2 * ((uint64_t)x4 * x37)) + ((0x2 * ((uint64_t)x6 * x38)) + ((0x2 * ((uint64_t)x8 * x36)) + ((0x2 * ((uint64_t)x10 * x34)) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + ((0x2 * ((uint64_t)x34 * x10)) + ((0x2 * ((uint64_t)x36 * x8)) + ((0x2 * ((uint64_t)x38 * x6)) + (0x2 * ((uint64_t)x37 * x4)))))))))))))))))))));
+ uint64_t x59 = (x58 >> 0x1b);
+ uint32_t x60 = ((uint32_t)x58 & 0x7ffffff);
+ uint64_t x61 = (x59 + x57);
+ uint64_t x62 = (x61 >> 0x1a);
+ uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ uint64_t x64 = (x62 + x56);
+ uint64_t x65 = (x64 >> 0x1a);
+ uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ uint64_t x67 = (x65 + x55);
+ uint64_t x68 = (x67 >> 0x1a);
+ uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ uint64_t x70 = (x68 + x54);
+ uint64_t x71 = (x70 >> 0x1a);
+ uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ uint64_t x73 = (x71 + x53);
+ uint64_t x74 = (x73 >> 0x1a);
+ uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ uint64_t x76 = (x74 + x52);
+ uint64_t x77 = (x76 >> 0x1a);
+ uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ uint64_t x79 = (x77 + x51);
+ uint64_t x80 = (x79 >> 0x1a);
+ uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ uint64_t x82 = (x80 + x50);
+ uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ uint64_t x85 = (x83 + x49);
+ uint64_t x86 = (x85 >> 0x1a);
+ uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ uint64_t x88 = (x86 + x48);
+ uint64_t x89 = (x88 >> 0x1a);
+ uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ uint64_t x91 = (x89 + x47);
+ uint64_t x92 = (x91 >> 0x1a);
+ uint32_t x93 = ((uint32_t)x91 & 0x3ffffff);
+ uint64_t x94 = (x92 + x46);
+ uint64_t x95 = (x94 >> 0x1a);
+ uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ uint64_t x97 = (x95 + x45);
+ uint64_t x98 = (x97 >> 0x1a);
+ uint32_t x99 = ((uint32_t)x97 & 0x3ffffff);
+ uint64_t x100 = (x98 + x44);
+ uint64_t x101 = (x100 >> 0x1a);
+ uint32_t x102 = ((uint32_t)x100 & 0x3ffffff);
+ uint64_t x103 = (x101 + x43);
+ uint64_t x104 = (x103 >> 0x1a);
+ uint32_t x105 = ((uint32_t)x103 & 0x3ffffff);
+ uint64_t x106 = (x104 + x42);
+ uint64_t x107 = (x106 >> 0x1a);
+ uint32_t x108 = ((uint32_t)x106 & 0x3ffffff);
+ uint64_t x109 = (x107 + x41);
+ uint64_t x110 = (x109 >> 0x1a);
+ uint32_t x111 = ((uint32_t)x109 & 0x3ffffff);
+ uint64_t x112 = (x110 + x40);
+ uint64_t x113 = (x112 >> 0x1a);
+ uint32_t x114 = ((uint32_t)x112 & 0x3ffffff);
+ uint64_t x115 = (x113 + x39);
+ uint64_t x116 = (x115 >> 0x1a);
+ uint32_t x117 = ((uint32_t)x115 & 0x3ffffff);
+ uint64_t x118 = (x60 + x116);
+ uint32_t x119 = (uint32_t) (x118 >> 0x1b);
+ uint32_t x120 = ((uint32_t)x118 & 0x7ffffff);
+ uint32_t x121 = (x119 + x63);
+ uint32_t x122 = (x121 >> 0x1a);
+ uint32_t x123 = (x121 & 0x3ffffff);
+ return (Return x117, Return x114, Return x111, Return x108, Return x105, Return x102, Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, (x122 + x66), Return x123, Return x120))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_20limbs/fesub.c b/src/Specific/solinas32_2e521m1_20limbs/fesub.c
new file mode 100644
index 000000000..5fa57aceb
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/fesub.c
@@ -0,0 +1,63 @@
+static void fesub(uint32_t out[20], const uint32_t in1[20], const uint32_t in2[20]) {
+ { const uint32_t x40 = in1[19];
+ { const uint32_t x41 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x78 = in2[19];
+ { const uint32_t x79 = in2[18];
+ { const uint32_t x77 = in2[17];
+ { const uint32_t x75 = in2[16];
+ { const uint32_t x73 = in2[15];
+ { const uint32_t x71 = in2[14];
+ { const uint32_t x69 = in2[13];
+ { const uint32_t x67 = in2[12];
+ { const uint32_t x65 = in2[11];
+ { const uint32_t x63 = in2[10];
+ { const uint32_t x61 = in2[9];
+ { const uint32_t x59 = in2[8];
+ { const uint32_t x57 = in2[7];
+ { const uint32_t x55 = in2[6];
+ { const uint32_t x53 = in2[5];
+ { const uint32_t x51 = in2[4];
+ { const uint32_t x49 = in2[3];
+ { const uint32_t x47 = in2[2];
+ { const uint32_t x45 = in2[1];
+ { const uint32_t x43 = in2[0];
+ out[0] = ((0xffffffe + x5) - x43);
+ out[1] = ((0x7fffffe + x7) - x45);
+ out[2] = ((0x7fffffe + x9) - x47);
+ out[3] = ((0x7fffffe + x11) - x49);
+ out[4] = ((0x7fffffe + x13) - x51);
+ out[5] = ((0x7fffffe + x15) - x53);
+ out[6] = ((0x7fffffe + x17) - x55);
+ out[7] = ((0x7fffffe + x19) - x57);
+ out[8] = ((0x7fffffe + x21) - x59);
+ out[9] = ((0x7fffffe + x23) - x61);
+ out[10] = ((0x7fffffe + x25) - x63);
+ out[11] = ((0x7fffffe + x27) - x65);
+ out[12] = ((0x7fffffe + x29) - x67);
+ out[13] = ((0x7fffffe + x31) - x69);
+ out[14] = ((0x7fffffe + x33) - x71);
+ out[15] = ((0x7fffffe + x35) - x73);
+ out[16] = ((0x7fffffe + x37) - x75);
+ out[17] = ((0x7fffffe + x39) - x77);
+ out[18] = ((0x7fffffe + x41) - x79);
+ out[19] = ((0x7fffffe + x40) - x78);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e521m1_20limbs/fesubDisplay.log b/src/Specific/solinas32_2e521m1_20limbs/fesubDisplay.log
new file mode 100644
index 000000000..4baaf158b
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ (((0x7fffffe + x40) - x78), ((0x7fffffe + x41) - x79), ((0x7fffffe + x39) - x77), ((0x7fffffe + x37) - x75), ((0x7fffffe + x35) - x73), ((0x7fffffe + x33) - x71), ((0x7fffffe + x31) - x69), ((0x7fffffe + x29) - x67), ((0x7fffffe + x27) - x65), ((0x7fffffe + x25) - x63), ((0x7fffffe + x23) - x61), ((0x7fffffe + x21) - x59), ((0x7fffffe + x19) - x57), ((0x7fffffe + x17) - x55), ((0x7fffffe + x15) - x53), ((0x7fffffe + x13) - x51), ((0x7fffffe + x11) - x49), ((0x7fffffe + x9) - x47), ((0x7fffffe + x7) - x45), ((0xffffffe + x5) - x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_20limbs/freeze.c b/src/Specific/solinas32_2e521m1_20limbs/freeze.c
new file mode 100644
index 000000000..aa2e4e36c
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/freeze.c
@@ -0,0 +1,104 @@
+static void freeze(uint32_t out[20], const uint32_t in1[20]) {
+ { const uint32_t x37 = in1[19];
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = 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];
+ { uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x4, 0x3ffffff);
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x6, 0x3ffffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x8, 0x3ffffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x10, 0x3ffffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x12, 0x3ffffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x14, 0x3ffffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x16, 0x3ffffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x18, 0x3ffffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x20, 0x3ffffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x22, 0x3ffffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x24, 0x3ffffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x26, 0x3ffffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x28, 0x3ffffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x30, 0x3ffffff);
+ { uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x32, 0x3ffffff);
+ { uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x34, 0x3ffffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x36, 0x3ffffff);
+ { uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x38, 0x3ffffff);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x37, 0x3ffffff);
+ { uint32_t x99 = cmovznz32(x98, 0x0, 0xffffffff);
+ { uint32_t x100 = (x99 & 0x7ffffff);
+ { uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x40, Return x100);
+ { uint32_t x104 = (x99 & 0x3ffffff);
+ { uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x43, Return x104);
+ { uint32_t x108 = (x99 & 0x3ffffff);
+ { uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x46, Return x108);
+ { uint32_t x112 = (x99 & 0x3ffffff);
+ { uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x49, Return x112);
+ { uint32_t x116 = (x99 & 0x3ffffff);
+ { uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x52, Return x116);
+ { uint32_t x120 = (x99 & 0x3ffffff);
+ { uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x55, Return x120);
+ { uint32_t x124 = (x99 & 0x3ffffff);
+ { uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x58, Return x124);
+ { uint32_t x128 = (x99 & 0x3ffffff);
+ { uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x61, Return x128);
+ { uint32_t x132 = (x99 & 0x3ffffff);
+ { uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x64, Return x132);
+ { uint32_t x136 = (x99 & 0x3ffffff);
+ { uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x67, Return x136);
+ { uint32_t x140 = (x99 & 0x3ffffff);
+ { uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x70, Return x140);
+ { uint32_t x144 = (x99 & 0x3ffffff);
+ { uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x73, Return x144);
+ { uint32_t x148 = (x99 & 0x3ffffff);
+ { uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x76, Return x148);
+ { uint32_t x152 = (x99 & 0x3ffffff);
+ { uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x79, Return x152);
+ { uint32_t x156 = (x99 & 0x3ffffff);
+ { uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x82, Return x156);
+ { uint32_t x160 = (x99 & 0x3ffffff);
+ { uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x85, Return x160);
+ { uint32_t x164 = (x99 & 0x3ffffff);
+ { uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x88, Return x164);
+ { uint32_t x168 = (x99 & 0x3ffffff);
+ { uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x91, Return x168);
+ { uint32_t x172 = (x99 & 0x3ffffff);
+ { uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x94, Return x172);
+ { uint32_t x176 = (x99 & 0x3ffffff);
+ { uint32_t x178, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x97, Return x176);
+ out[0] = x102;
+ out[1] = x106;
+ out[2] = x110;
+ out[3] = x114;
+ out[4] = x118;
+ out[5] = x122;
+ out[6] = x126;
+ out[7] = x130;
+ out[8] = x134;
+ out[9] = x138;
+ out[10] = x142;
+ out[11] = x146;
+ out[12] = x150;
+ out[13] = x154;
+ out[14] = x158;
+ out[15] = x162;
+ out[16] = x166;
+ out[17] = x170;
+ out[18] = x174;
+ out[19] = x178;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e521m1_20limbs/freezeDisplay.log b/src/Specific/solinas32_2e521m1_20limbs/freezeDisplay.log
new file mode 100644
index 000000000..6abf83604
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_20limbs/freezeDisplay.log
@@ -0,0 +1,68 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x37, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x4, 0x3ffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x6, 0x3ffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x8, 0x3ffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x10, 0x3ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x12, 0x3ffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x14, 0x3ffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x16, 0x3ffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x18, 0x3ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x20, 0x3ffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x22, 0x3ffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x24, 0x3ffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x26, 0x3ffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x28, 0x3ffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x30, 0x3ffffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x32, 0x3ffffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x34, 0x3ffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x36, 0x3ffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x38, 0x3ffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x37, 0x3ffffff);
+ uint32_t x99 = cmovznz32(x98, 0x0, 0xffffffff);
+ uint32_t x100 = (x99 & 0x7ffffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x40, Return x100);
+ uint32_t x104 = (x99 & 0x3ffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x43, Return x104);
+ uint32_t x108 = (x99 & 0x3ffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x46, Return x108);
+ uint32_t x112 = (x99 & 0x3ffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x49, Return x112);
+ uint32_t x116 = (x99 & 0x3ffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x52, Return x116);
+ uint32_t x120 = (x99 & 0x3ffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x55, Return x120);
+ uint32_t x124 = (x99 & 0x3ffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x58, Return x124);
+ uint32_t x128 = (x99 & 0x3ffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x61, Return x128);
+ uint32_t x132 = (x99 & 0x3ffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x64, Return x132);
+ uint32_t x136 = (x99 & 0x3ffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x67, Return x136);
+ uint32_t x140 = (x99 & 0x3ffffff);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x70, Return x140);
+ uint32_t x144 = (x99 & 0x3ffffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x73, Return x144);
+ uint32_t x148 = (x99 & 0x3ffffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x76, Return x148);
+ uint32_t x152 = (x99 & 0x3ffffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x79, Return x152);
+ uint32_t x156 = (x99 & 0x3ffffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x82, Return x156);
+ uint32_t x160 = (x99 & 0x3ffffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x85, Return x160);
+ uint32_t x164 = (x99 & 0x3ffffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x88, Return x164);
+ uint32_t x168 = (x99 & 0x3ffffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x91, Return x168);
+ uint32_t x172 = (x99 & 0x3ffffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x94, Return x172);
+ uint32_t x176 = (x99 & 0x3ffffff);
+ uint32_t x178, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x97, Return x176);
+ (Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)