aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-03 14:09:44 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-11-03 14:09:44 -0400
commitd157a1040c67846b6afd922127247a94eb9c700e (patch)
treea35e59d00d15c31709aeb33312abb6c195c65386
parent20206a4e991ba18f3697ecab8e14bad55e1d455d (diff)
Update display logs and c files
-rw-r--r--src/Specific/solinas32_2e379m19/feadd.c57
-rw-r--r--src/Specific/solinas32_2e379m19/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e379m19/fesub.c57
-rw-r--r--src/Specific/solinas32_2e379m19/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e382m105/feadd.c63
-rw-r--r--src/Specific/solinas32_2e382m105/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e382m105/fesub.c63
-rw-r--r--src/Specific/solinas32_2e382m105/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e384m317/feadd.c57
-rw-r--r--src/Specific/solinas32_2e384m317/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e384m317/fesub.c57
-rw-r--r--src/Specific/solinas32_2e384m317/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e414m17/feadd.c57
-rw-r--r--src/Specific/solinas32_2e414m17/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e414m17/fesub.c57
-rw-r--r--src/Specific/solinas32_2e414m17/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e444m17/feadd.c63
-rw-r--r--src/Specific/solinas32_2e444m17/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e444m17/fesub.c63
-rw-r--r--src/Specific/solinas32_2e444m17/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e468m17/feadd.c57
-rw-r--r--src/Specific/solinas32_2e468m17/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e468m17/fesub.c57
-rw-r--r--src/Specific/solinas32_2e468m17/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e488m17/feadd.c75
-rw-r--r--src/Specific/solinas32_2e488m17/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e488m17/fesub.c75
-rw-r--r--src/Specific/solinas32_2e488m17/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e495m31/feadd.c60
-rw-r--r--src/Specific/solinas32_2e495m31/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e495m31/fesub.c60
-rw-r--r--src/Specific/solinas32_2e495m31/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e512m569/feadd.c75
-rw-r--r--src/Specific/solinas32_2e512m569/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e512m569/fesub.c75
-rw-r--r--src/Specific/solinas32_2e512m569/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e521m1/feadd.c63
-rw-r--r--src/Specific/solinas32_2e521m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e521m1/fesub.c63
-rw-r--r--src/Specific/solinas32_2e521m1/fesubDisplay.log7
40 files changed, 1394 insertions, 0 deletions
diff --git a/src/Specific/solinas32_2e379m19/feadd.c b/src/Specific/solinas32_2e379m19/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e379m19/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_2e379m19/feaddDisplay.log b/src/Specific/solinas32_2e379m19/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e379m19/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_2e379m19/fesub.c b/src/Specific/solinas32_2e379m19/fesub.c
new file mode 100644
index 000000000..85c753f0c
--- /dev/null
+++ b/src/Specific/solinas32_2e379m19/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] = ((Const 8388570 + x5) - x39);
+ out[1] = ((0x3ffffe + x7) - x41);
+ out[2] = ((0x3ffffe + x9) - x43);
+ out[3] = ((0x3ffffe + x11) - x45);
+ out[4] = ((0x3ffffe + x13) - x47);
+ out[5] = ((0x3ffffe + x15) - x49);
+ out[6] = ((0x3ffffe + x17) - x51);
+ out[7] = ((0x3ffffe + x19) - x53);
+ out[8] = ((0x3ffffe + x21) - x55);
+ out[9] = ((0x3ffffe + x23) - x57);
+ out[10] = ((0x3ffffe + x25) - x59);
+ out[11] = ((0x3ffffe + x27) - x61);
+ out[12] = ((0x3ffffe + x29) - x63);
+ out[13] = ((0x3ffffe + x31) - x65);
+ out[14] = ((0x3ffffe + x33) - x67);
+ out[15] = ((0x3ffffe + x35) - x69);
+ out[16] = ((0x3ffffe + x37) - x71);
+ out[17] = ((0x3ffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e379m19/fesubDisplay.log b/src/Specific/solinas32_2e379m19/fesubDisplay.log
new file mode 100644
index 000000000..5f57d5e92
--- /dev/null
+++ b/src/Specific/solinas32_2e379m19/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,
+ (((0x3ffffe + x36) - x70), ((0x3ffffe + x37) - x71), ((0x3ffffe + x35) - x69), ((0x3ffffe + x33) - x67), ((0x3ffffe + x31) - x65), ((0x3ffffe + x29) - x63), ((0x3ffffe + x27) - x61), ((0x3ffffe + x25) - x59), ((0x3ffffe + x23) - x57), ((0x3ffffe + x21) - x55), ((0x3ffffe + x19) - x53), ((0x3ffffe + x17) - x51), ((0x3ffffe + x15) - x49), ((0x3ffffe + x13) - x47), ((0x3ffffe + x11) - x45), ((0x3ffffe + x9) - x43), ((0x3ffffe + x7) - x41), ((Const 8388570 + 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_2e382m105/feadd.c b/src/Specific/solinas32_2e382m105/feadd.c
new file mode 100644
index 000000000..28ee6f665
--- /dev/null
+++ b/src/Specific/solinas32_2e382m105/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_2e382m105/feaddDisplay.log b/src/Specific/solinas32_2e382m105/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e382m105/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_2e382m105/fesub.c b/src/Specific/solinas32_2e382m105/fesub.c
new file mode 100644
index 000000000..ed2fff7ae
--- /dev/null
+++ b/src/Specific/solinas32_2e382m105/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] = ((Const 2096942 + x5) - x43);
+ out[1] = ((0xffffe + x7) - x45);
+ out[2] = ((0xffffe + x9) - x47);
+ out[3] = ((0xffffe + x11) - x49);
+ out[4] = ((0xffffe + x13) - x51);
+ out[5] = ((0xffffe + x15) - x53);
+ out[6] = ((0xffffe + x17) - x55);
+ out[7] = ((0xffffe + x19) - x57);
+ out[8] = ((0xffffe + x21) - x59);
+ out[9] = ((0xffffe + x23) - x61);
+ out[10] = ((0x1ffffe + x25) - x63);
+ out[11] = ((0xffffe + x27) - x65);
+ out[12] = ((0xffffe + x29) - x67);
+ out[13] = ((0xffffe + x31) - x69);
+ out[14] = ((0xffffe + x33) - x71);
+ out[15] = ((0xffffe + x35) - x73);
+ out[16] = ((0xffffe + x37) - x75);
+ out[17] = ((0xffffe + x39) - x77);
+ out[18] = ((0xffffe + x41) - x79);
+ out[19] = ((0xffffe + x40) - x78);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e382m105/fesubDisplay.log b/src/Specific/solinas32_2e382m105/fesubDisplay.log
new file mode 100644
index 000000000..edb1b4aef
--- /dev/null
+++ b/src/Specific/solinas32_2e382m105/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,
+ (((0xffffe + x40) - x78), ((0xffffe + x41) - x79), ((0xffffe + x39) - x77), ((0xffffe + x37) - x75), ((0xffffe + x35) - x73), ((0xffffe + x33) - x71), ((0xffffe + x31) - x69), ((0xffffe + x29) - x67), ((0xffffe + x27) - x65), ((0x1ffffe + x25) - x63), ((0xffffe + x23) - x61), ((0xffffe + x21) - x59), ((0xffffe + x19) - x57), ((0xffffe + x17) - x55), ((0xffffe + x15) - x53), ((0xffffe + x13) - x51), ((0xffffe + x11) - x49), ((0xffffe + x9) - x47), ((0xffffe + x7) - x45), ((Const 2096942 + 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_2e384m317/feadd.c b/src/Specific/solinas32_2e384m317/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317/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_2e384m317/feaddDisplay.log b/src/Specific/solinas32_2e384m317/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317/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_2e384m317/fesub.c b/src/Specific/solinas32_2e384m317/fesub.c
new file mode 100644
index 000000000..b06f1998b
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317/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] = ((Const 8387974 + x5) - x39);
+ out[1] = ((0x3ffffe + x7) - x41);
+ out[2] = ((0x3ffffe + x9) - x43);
+ out[3] = ((0x7ffffe + x11) - x45);
+ out[4] = ((0x3ffffe + x13) - x47);
+ out[5] = ((0x3ffffe + x15) - x49);
+ out[6] = ((0x7ffffe + x17) - x51);
+ out[7] = ((0x3ffffe + x19) - x53);
+ out[8] = ((0x3ffffe + x21) - x55);
+ out[9] = ((0x7ffffe + x23) - x57);
+ out[10] = ((0x3ffffe + x25) - x59);
+ out[11] = ((0x3ffffe + x27) - x61);
+ out[12] = ((0x7ffffe + x29) - x63);
+ out[13] = ((0x3ffffe + x31) - x65);
+ out[14] = ((0x3ffffe + x33) - x67);
+ out[15] = ((0x7ffffe + x35) - x69);
+ out[16] = ((0x3ffffe + x37) - x71);
+ out[17] = ((0x3ffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e384m317/fesubDisplay.log b/src/Specific/solinas32_2e384m317/fesubDisplay.log
new file mode 100644
index 000000000..811d34c55
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317/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,
+ (((0x3ffffe + x36) - x70), ((0x3ffffe + x37) - x71), ((0x7ffffe + x35) - x69), ((0x3ffffe + x33) - x67), ((0x3ffffe + x31) - x65), ((0x7ffffe + x29) - x63), ((0x3ffffe + x27) - x61), ((0x3ffffe + x25) - x59), ((0x7ffffe + x23) - x57), ((0x3ffffe + x21) - x55), ((0x3ffffe + x19) - x53), ((0x7ffffe + x17) - x51), ((0x3ffffe + x15) - x49), ((0x3ffffe + x13) - x47), ((0x7ffffe + x11) - x45), ((0x3ffffe + x9) - x43), ((0x3ffffe + x7) - x41), ((Const 8387974 + 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_2e414m17/feadd.c b/src/Specific/solinas32_2e414m17/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17/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_2e414m17/feaddDisplay.log b/src/Specific/solinas32_2e414m17/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17/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_2e414m17/fesub.c b/src/Specific/solinas32_2e414m17/fesub.c
new file mode 100644
index 000000000..b2b8f23e6
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17/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] = ((Const 16777182 + x5) - x39);
+ out[1] = ((0xfffffe + x7) - x41);
+ out[2] = ((0xfffffe + x9) - x43);
+ out[3] = ((0xfffffe + x11) - x45);
+ out[4] = ((0xfffffe + x13) - x47);
+ out[5] = ((0xfffffe + x15) - x49);
+ out[6] = ((0xfffffe + x17) - x51);
+ out[7] = ((0xfffffe + x19) - x53);
+ out[8] = ((0xfffffe + x21) - x55);
+ out[9] = ((0xfffffe + x23) - x57);
+ out[10] = ((0xfffffe + x25) - x59);
+ out[11] = ((0xfffffe + x27) - x61);
+ out[12] = ((0xfffffe + x29) - x63);
+ out[13] = ((0xfffffe + x31) - x65);
+ out[14] = ((0xfffffe + x33) - x67);
+ out[15] = ((0xfffffe + x35) - x69);
+ out[16] = ((0xfffffe + x37) - x71);
+ out[17] = ((0xfffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17/fesubDisplay.log b/src/Specific/solinas32_2e414m17/fesubDisplay.log
new file mode 100644
index 000000000..ea46be334
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17/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,
+ (((0xfffffe + x36) - x70), ((0xfffffe + x37) - x71), ((0xfffffe + x35) - x69), ((0xfffffe + x33) - x67), ((0xfffffe + x31) - x65), ((0xfffffe + x29) - x63), ((0xfffffe + x27) - x61), ((0xfffffe + x25) - x59), ((0xfffffe + x23) - x57), ((0xfffffe + x21) - x55), ((0xfffffe + x19) - x53), ((0xfffffe + x17) - x51), ((0xfffffe + x15) - x49), ((0xfffffe + x13) - x47), ((0xfffffe + x11) - x45), ((0xfffffe + x9) - x43), ((0xfffffe + x7) - x41), ((Const 16777182 + 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_2e444m17/feadd.c b/src/Specific/solinas32_2e444m17/feadd.c
new file mode 100644
index 000000000..28ee6f665
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17/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_2e444m17/feaddDisplay.log b/src/Specific/solinas32_2e444m17/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17/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_2e444m17/fesub.c b/src/Specific/solinas32_2e444m17/fesub.c
new file mode 100644
index 000000000..322b7d01b
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17/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] = ((Const 16777182 + x5) - x43);
+ out[1] = ((0x7ffffe + x7) - x45);
+ out[2] = ((0x7ffffe + x9) - x47);
+ out[3] = ((0x7ffffe + x11) - x49);
+ out[4] = ((0x7ffffe + x13) - x51);
+ out[5] = ((0xfffffe + x15) - x53);
+ out[6] = ((0x7ffffe + x17) - x55);
+ out[7] = ((0x7ffffe + x19) - x57);
+ out[8] = ((0x7ffffe + x21) - x59);
+ out[9] = ((0x7ffffe + x23) - x61);
+ out[10] = ((0xfffffe + x25) - x63);
+ out[11] = ((0x7ffffe + x27) - x65);
+ out[12] = ((0x7ffffe + x29) - x67);
+ out[13] = ((0x7ffffe + x31) - x69);
+ out[14] = ((0x7ffffe + x33) - x71);
+ out[15] = ((0xfffffe + x35) - x73);
+ out[16] = ((0x7ffffe + x37) - x75);
+ out[17] = ((0x7ffffe + x39) - x77);
+ out[18] = ((0x7ffffe + x41) - x79);
+ out[19] = ((0x7ffffe + x40) - x78);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17/fesubDisplay.log b/src/Specific/solinas32_2e444m17/fesubDisplay.log
new file mode 100644
index 000000000..15068005b
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17/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,
+ (((0x7ffffe + x40) - x78), ((0x7ffffe + x41) - x79), ((0x7ffffe + x39) - x77), ((0x7ffffe + x37) - x75), ((0xfffffe + x35) - x73), ((0x7ffffe + x33) - x71), ((0x7ffffe + x31) - x69), ((0x7ffffe + x29) - x67), ((0x7ffffe + x27) - x65), ((0xfffffe + x25) - x63), ((0x7ffffe + x23) - x61), ((0x7ffffe + x21) - x59), ((0x7ffffe + x19) - x57), ((0x7ffffe + x17) - x55), ((0xfffffe + x15) - x53), ((0x7ffffe + x13) - x51), ((0x7ffffe + x11) - x49), ((0x7ffffe + x9) - x47), ((0x7ffffe + x7) - x45), ((Const 16777182 + 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_2e468m17/feadd.c b/src/Specific/solinas32_2e468m17/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17/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/feaddDisplay.log b/src/Specific/solinas32_2e468m17/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17/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/fesub.c b/src/Specific/solinas32_2e468m17/fesub.c
new file mode 100644
index 000000000..033df9f0f
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17/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/fesubDisplay.log b/src/Specific/solinas32_2e468m17/fesubDisplay.log
new file mode 100644
index 000000000..0224e108e
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17/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_2e488m17/feadd.c b/src/Specific/solinas32_2e488m17/feadd.c
new file mode 100644
index 000000000..115132981
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17/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_2e488m17/feaddDisplay.log b/src/Specific/solinas32_2e488m17/feaddDisplay.log
new file mode 100644
index 000000000..8ec776f44
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17/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_2e488m17/fesub.c b/src/Specific/solinas32_2e488m17/fesub.c
new file mode 100644
index 000000000..ccff83b2b
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17/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] = ((Const 4194270 + x5) - x51);
+ out[1] = ((0x1ffffe + x7) - x53);
+ out[2] = ((0x1ffffe + x9) - x55);
+ out[3] = ((0x3ffffe + x11) - x57);
+ out[4] = ((0x1ffffe + x13) - x59);
+ out[5] = ((0x1ffffe + x15) - x61);
+ out[6] = ((0x3ffffe + x17) - x63);
+ out[7] = ((0x1ffffe + x19) - x65);
+ out[8] = ((0x1ffffe + x21) - x67);
+ out[9] = ((0x3ffffe + x23) - x69);
+ out[10] = ((0x1ffffe + x25) - x71);
+ out[11] = ((0x1ffffe + x27) - x73);
+ out[12] = ((0x3ffffe + x29) - x75);
+ out[13] = ((0x1ffffe + x31) - x77);
+ out[14] = ((0x1ffffe + x33) - x79);
+ out[15] = ((0x3ffffe + x35) - x81);
+ out[16] = ((0x1ffffe + x37) - x83);
+ out[17] = ((0x1ffffe + x39) - x85);
+ out[18] = ((0x3ffffe + x41) - x87);
+ out[19] = ((0x1ffffe + x43) - x89);
+ out[20] = ((0x1ffffe + x45) - x91);
+ out[21] = ((0x3ffffe + x47) - x93);
+ out[22] = ((0x1ffffe + x49) - x95);
+ out[23] = ((0x1ffffe + x48) - x94);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e488m17/fesubDisplay.log b/src/Specific/solinas32_2e488m17/fesubDisplay.log
new file mode 100644
index 000000000..4ebe02033
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17/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,
+ (((0x1ffffe + x48) - x94), ((0x1ffffe + x49) - x95), ((0x3ffffe + x47) - x93), ((0x1ffffe + x45) - x91), ((0x1ffffe + x43) - x89), ((0x3ffffe + x41) - x87), ((0x1ffffe + x39) - x85), ((0x1ffffe + x37) - x83), ((0x3ffffe + x35) - x81), ((0x1ffffe + x33) - x79), ((0x1ffffe + x31) - x77), ((0x3ffffe + x29) - x75), ((0x1ffffe + x27) - x73), ((0x1ffffe + x25) - x71), ((0x3ffffe + x23) - x69), ((0x1ffffe + x21) - x67), ((0x1ffffe + x19) - x65), ((0x3ffffe + x17) - x63), ((0x1ffffe + x15) - x61), ((0x1ffffe + x13) - x59), ((0x3ffffe + x11) - x57), ((0x1ffffe + x9) - x55), ((0x1ffffe + x7) - x53), ((Const 4194270 + 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_2e495m31/feadd.c b/src/Specific/solinas32_2e495m31/feadd.c
new file mode 100644
index 000000000..7432e2ef1
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31/feadd.c
@@ -0,0 +1,60 @@
+static void feadd(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = 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 x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = (x5 + x41);
+ out[1] = (x7 + x43);
+ out[2] = (x9 + x45);
+ out[3] = (x11 + x47);
+ out[4] = (x13 + x49);
+ out[5] = (x15 + x51);
+ out[6] = (x17 + x53);
+ out[7] = (x19 + x55);
+ out[8] = (x21 + x57);
+ out[9] = (x23 + x59);
+ out[10] = (x25 + x61);
+ out[11] = (x27 + x63);
+ out[12] = (x29 + x65);
+ out[13] = (x31 + x67);
+ out[14] = (x33 + x69);
+ out[15] = (x35 + x71);
+ out[16] = (x37 + x73);
+ out[17] = (x39 + x75);
+ out[18] = (x38 + x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e495m31/feaddDisplay.log b/src/Specific/solinas32_2e495m31/feaddDisplay.log
new file mode 100644
index 000000000..76a71b356
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31/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,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ ((x38 + x74), (x39 + x75), (x37 + x73), (x35 + x71), (x33 + x69), (x31 + x67), (x29 + x65), (x27 + x63), (x25 + x61), (x23 + x59), (x21 + x57), (x19 + x55), (x17 + x53), (x15 + x51), (x13 + x49), (x11 + x47), (x9 + x45), (x7 + x43), (x5 + x41)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e495m31/fesub.c b/src/Specific/solinas32_2e495m31/fesub.c
new file mode 100644
index 000000000..75979b0bc
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31/fesub.c
@@ -0,0 +1,60 @@
+static void fesub(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = 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 x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = ((Const 268435394 + x5) - x41);
+ out[1] = ((0x7fffffe + x7) - x43);
+ out[2] = ((0x7fffffe + x9) - x45);
+ out[3] = ((0x7fffffe + x11) - x47);
+ out[4] = ((0x7fffffe + x13) - x49);
+ out[5] = ((0x7fffffe + x15) - x51);
+ out[6] = ((0x7fffffe + x17) - x53);
+ out[7] = ((0x7fffffe + x19) - x55);
+ out[8] = ((0x7fffffe + x21) - x57);
+ out[9] = ((0x7fffffe + x23) - x59);
+ out[10] = ((0x7fffffe + x25) - x61);
+ out[11] = ((0x7fffffe + x27) - x63);
+ out[12] = ((0x7fffffe + x29) - x65);
+ out[13] = ((0x7fffffe + x31) - x67);
+ out[14] = ((0x7fffffe + x33) - x69);
+ out[15] = ((0x7fffffe + x35) - x71);
+ out[16] = ((0x7fffffe + x37) - x73);
+ out[17] = ((0x7fffffe + x39) - x75);
+ out[18] = ((0x7fffffe + x38) - x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e495m31/fesubDisplay.log b/src/Specific/solinas32_2e495m31/fesubDisplay.log
new file mode 100644
index 000000000..41df2f6c7
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31/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,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ (((0x7fffffe + x38) - x74), ((0x7fffffe + x39) - x75), ((0x7fffffe + x37) - x73), ((0x7fffffe + x35) - x71), ((0x7fffffe + x33) - x69), ((0x7fffffe + x31) - x67), ((0x7fffffe + x29) - x65), ((0x7fffffe + x27) - x63), ((0x7fffffe + x25) - x61), ((0x7fffffe + x23) - x59), ((0x7fffffe + x21) - x57), ((0x7fffffe + x19) - x55), ((0x7fffffe + x17) - x53), ((0x7fffffe + x15) - x51), ((0x7fffffe + x13) - x49), ((0x7fffffe + x11) - x47), ((0x7fffffe + x9) - x45), ((0x7fffffe + x7) - x43), ((Const 268435394 + x5) - x41)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e512m569/feadd.c b/src/Specific/solinas32_2e512m569/feadd.c
new file mode 100644
index 000000000..115132981
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569/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/feaddDisplay.log b/src/Specific/solinas32_2e512m569/feaddDisplay.log
new file mode 100644
index 000000000..8ec776f44
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569/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/fesub.c b/src/Specific/solinas32_2e512m569/fesub.c
new file mode 100644
index 000000000..d1b79af23
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569/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] = ((Const 8387470 + 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/fesubDisplay.log b/src/Specific/solinas32_2e512m569/fesubDisplay.log
new file mode 100644
index 000000000..c3a86a98f
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569/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), ((Const 8387470 + 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_2e521m1/feadd.c b/src/Specific/solinas32_2e521m1/feadd.c
new file mode 100644
index 000000000..28ee6f665
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1/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/feaddDisplay.log b/src/Specific/solinas32_2e521m1/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1/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/fesub.c b/src/Specific/solinas32_2e521m1/fesub.c
new file mode 100644
index 000000000..5fa57aceb
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1/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/fesubDisplay.log b/src/Specific/solinas32_2e521m1/fesubDisplay.log
new file mode 100644
index 000000000..4baaf158b
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1/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)