aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Specific/solinas32_2e206m5/feadd.c39
-rw-r--r--src/Specific/solinas32_2e206m5/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e206m5/fesub.c39
-rw-r--r--src/Specific/solinas32_2e206m5/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e255m765/feadd.c39
-rw-r--r--src/Specific/solinas32_2e255m765/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e255m765/fesub.c39
-rw-r--r--src/Specific/solinas32_2e255m765/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m189/feadd.c39
-rw-r--r--src/Specific/solinas32_2e256m189/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m189/fesub.c39
-rw-r--r--src/Specific/solinas32_2e256m189/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.c39
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m2e32m977/feadd.c39
-rw-r--r--src/Specific/solinas32_2e256m2e32m977/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m2e32m977/fesub.c39
-rw-r--r--src/Specific/solinas32_2e256m2e32m977/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m88x2e240m1/feadd.c39
-rw-r--r--src/Specific/solinas32_2e256m88x2e240m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m88x2e240m1/fesub.c39
-rw-r--r--src/Specific/solinas32_2e256m88x2e240m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e266m3/feadd.c39
-rw-r--r--src/Specific/solinas32_2e266m3/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e266m3/fesub.c39
-rw-r--r--src/Specific/solinas32_2e266m3/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e291m19/feadd.c39
-rw-r--r--src/Specific/solinas32_2e291m19/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e291m19/fesub.c39
-rw-r--r--src/Specific/solinas32_2e291m19/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e336m3/feadd.c39
-rw-r--r--src/Specific/solinas32_2e336m3/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e336m3/fesub.c39
-rw-r--r--src/Specific/solinas32_2e336m3/fesubDisplay.log7
34 files changed, 782 insertions, 0 deletions
diff --git a/src/Specific/solinas32_2e206m5/feadd.c b/src/Specific/solinas32_2e206m5/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e206m5/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e206m5/feaddDisplay.log b/src/Specific/solinas32_2e206m5/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e206m5/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e206m5/fesub.c b/src/Specific/solinas32_2e206m5/fesub.c
new file mode 100644
index 000000000..abe03d7e2
--- /dev/null
+++ b/src/Specific/solinas32_2e206m5/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((Const 524278 + x5) - x27);
+ out[1] = ((0x3fffe + x7) - x29);
+ out[2] = ((0x3fffe + x9) - x31);
+ out[3] = ((0x3fffe + x11) - x33);
+ out[4] = ((0x3fffe + x13) - x35);
+ out[5] = ((0x3fffe + x15) - x37);
+ out[6] = ((0x7fffe + x17) - x39);
+ out[7] = ((0x3fffe + x19) - x41);
+ out[8] = ((0x3fffe + x21) - x43);
+ out[9] = ((0x3fffe + x23) - x45);
+ out[10] = ((0x3fffe + x25) - x47);
+ out[11] = ((0x3fffe + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e206m5/fesubDisplay.log b/src/Specific/solinas32_2e206m5/fesubDisplay.log
new file mode 100644
index 000000000..47082369e
--- /dev/null
+++ b/src/Specific/solinas32_2e206m5/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((0x3fffe + x24) - x46), ((0x3fffe + x25) - x47), ((0x3fffe + x23) - x45), ((0x3fffe + x21) - x43), ((0x3fffe + x19) - x41), ((0x7fffe + x17) - x39), ((0x3fffe + x15) - x37), ((0x3fffe + x13) - x35), ((0x3fffe + x11) - x33), ((0x3fffe + x9) - x31), ((0x3fffe + x7) - x29), ((Const 524278 + x5) - x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e255m765/feadd.c b/src/Specific/solinas32_2e255m765/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e255m765/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e255m765/feaddDisplay.log b/src/Specific/solinas32_2e255m765/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e255m765/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e255m765/fesub.c b/src/Specific/solinas32_2e255m765/fesub.c
new file mode 100644
index 000000000..4bee18af5
--- /dev/null
+++ b/src/Specific/solinas32_2e255m765/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((Const 8387078 + x5) - x27);
+ out[1] = ((0x3ffffe + x7) - x29);
+ out[2] = ((0x3ffffe + x9) - x31);
+ out[3] = ((0x3ffffe + x11) - x33);
+ out[4] = ((0x7ffffe + x13) - x35);
+ out[5] = ((0x3ffffe + x15) - x37);
+ out[6] = ((0x3ffffe + x17) - x39);
+ out[7] = ((0x3ffffe + x19) - x41);
+ out[8] = ((0x7ffffe + x21) - x43);
+ out[9] = ((0x3ffffe + x23) - x45);
+ out[10] = ((0x3ffffe + x25) - x47);
+ out[11] = ((0x3ffffe + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e255m765/fesubDisplay.log b/src/Specific/solinas32_2e255m765/fesubDisplay.log
new file mode 100644
index 000000000..9e3409279
--- /dev/null
+++ b/src/Specific/solinas32_2e255m765/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((0x3ffffe + x24) - x46), ((0x3ffffe + x25) - x47), ((0x3ffffe + x23) - x45), ((0x7ffffe + x21) - x43), ((0x3ffffe + x19) - x41), ((0x3ffffe + x17) - x39), ((0x3ffffe + x15) - x37), ((0x7ffffe + x13) - x35), ((0x3ffffe + x11) - x33), ((0x3ffffe + x9) - x31), ((0x3ffffe + x7) - x29), ((Const 8387078 + x5) - x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e256m189/feadd.c b/src/Specific/solinas32_2e256m189/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e256m189/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e256m189/feaddDisplay.log b/src/Specific/solinas32_2e256m189/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e256m189/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e256m189/fesub.c b/src/Specific/solinas32_2e256m189/fesub.c
new file mode 100644
index 000000000..4fe32013a
--- /dev/null
+++ b/src/Specific/solinas32_2e256m189/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((Const 8388230 + x5) - x27);
+ out[1] = ((0x3ffffe + x7) - x29);
+ out[2] = ((0x3ffffe + x9) - x31);
+ out[3] = ((0x7ffffe + x11) - x33);
+ out[4] = ((0x3ffffe + x13) - x35);
+ out[5] = ((0x3ffffe + x15) - x37);
+ out[6] = ((0x7ffffe + x17) - x39);
+ out[7] = ((0x3ffffe + x19) - x41);
+ out[8] = ((0x3ffffe + x21) - x43);
+ out[9] = ((0x7ffffe + x23) - x45);
+ out[10] = ((0x3ffffe + x25) - x47);
+ out[11] = ((0x3ffffe + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e256m189/fesubDisplay.log b/src/Specific/solinas32_2e256m189/fesubDisplay.log
new file mode 100644
index 000000000..945965e24
--- /dev/null
+++ b/src/Specific/solinas32_2e256m189/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((0x3ffffe + x24) - x46), ((0x3ffffe + x25) - x47), ((0x7ffffe + x23) - x45), ((0x3ffffe + x21) - x43), ((0x3ffffe + x19) - x41), ((0x7ffffe + x17) - x39), ((0x3ffffe + x15) - x37), ((0x3ffffe + x13) - x35), ((0x7ffffe + x11) - x33), ((0x3ffffe + x9) - x31), ((0x3ffffe + x7) - x29), ((Const 8388230 + x5) - x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.c b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.log b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e256m2e32m977/feadd.c b/src/Specific/solinas32_2e256m2e32m977/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e256m2e32m977/feaddDisplay.log b/src/Specific/solinas32_2e256m2e32m977/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e256m2e32m977/fesub.c b/src/Specific/solinas32_2e256m2e32m977/fesub.c
new file mode 100644
index 000000000..80051da38
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((Const 8386654 + x5) - x27);
+ out[1] = ((Const 4192254 + x7) - x29);
+ out[2] = ((0x3ffffe + x9) - x31);
+ out[3] = ((0x7ffffe + x11) - x33);
+ out[4] = ((0x3ffffe + x13) - x35);
+ out[5] = ((0x3ffffe + x15) - x37);
+ out[6] = ((0x7ffffe + x17) - x39);
+ out[7] = ((0x3ffffe + x19) - x41);
+ out[8] = ((0x3ffffe + x21) - x43);
+ out[9] = ((0x7ffffe + x23) - x45);
+ out[10] = ((0x3ffffe + x25) - x47);
+ out[11] = ((0x3ffffe + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e256m2e32m977/fesubDisplay.log b/src/Specific/solinas32_2e256m2e32m977/fesubDisplay.log
new file mode 100644
index 000000000..7a6aa075f
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((0x3ffffe + x24) - x46), ((0x3ffffe + x25) - x47), ((0x7ffffe + x23) - x45), ((0x3ffffe + x21) - x43), ((0x3ffffe + x19) - x41), ((0x7ffffe + x17) - x39), ((0x3ffffe + x15) - x37), ((0x3ffffe + x13) - x35), ((0x7ffffe + x11) - x33), ((0x3ffffe + x9) - x31), ((Const 4192254 + x7) - x29), ((Const 8386654 + x5) - x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e256m88x2e240m1/feadd.c b/src/Specific/solinas32_2e256m88x2e240m1/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e256m88x2e240m1/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e256m88x2e240m1/feaddDisplay.log b/src/Specific/solinas32_2e256m88x2e240m1/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e256m88x2e240m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e256m88x2e240m1/fesub.c b/src/Specific/solinas32_2e256m88x2e240m1/fesub.c
new file mode 100644
index 000000000..f8919aeb3
--- /dev/null
+++ b/src/Specific/solinas32_2e256m88x2e240m1/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((0x7ffffe + x5) - x27);
+ out[1] = ((0x3ffffe + x7) - x29);
+ out[2] = ((0x3ffffe + x9) - x31);
+ out[3] = ((0x7ffffe + x11) - x33);
+ out[4] = ((0x3ffffe + x13) - x35);
+ out[5] = ((0x3ffffe + x15) - x37);
+ out[6] = ((0x7ffffe + x17) - x39);
+ out[7] = ((0x3ffffe + x19) - x41);
+ out[8] = ((0x3ffffe + x21) - x43);
+ out[9] = ((0x7ffffe + x23) - x45);
+ out[10] = ((0x3ffffe + x25) - x47);
+ out[11] = ((Const 4188670 + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e256m88x2e240m1/fesubDisplay.log b/src/Specific/solinas32_2e256m88x2e240m1/fesubDisplay.log
new file mode 100644
index 000000000..9390a43a9
--- /dev/null
+++ b/src/Specific/solinas32_2e256m88x2e240m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((Const 4188670 + x24) - x46), ((0x3ffffe + x25) - x47), ((0x7ffffe + x23) - x45), ((0x3ffffe + x21) - x43), ((0x3ffffe + x19) - x41), ((0x7ffffe + x17) - x39), ((0x3ffffe + x15) - x37), ((0x3ffffe + x13) - x35), ((0x7ffffe + x11) - x33), ((0x3ffffe + x9) - x31), ((0x3ffffe + x7) - x29), ((0x7ffffe + x5) - x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e266m3/feadd.c b/src/Specific/solinas32_2e266m3/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e266m3/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e266m3/feaddDisplay.log b/src/Specific/solinas32_2e266m3/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e266m3/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e266m3/fesub.c b/src/Specific/solinas32_2e266m3/fesub.c
new file mode 100644
index 000000000..edd487e90
--- /dev/null
+++ b/src/Specific/solinas32_2e266m3/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((0xfffffa + x5) - x27);
+ out[1] = ((0x7ffffe + x7) - x29);
+ out[2] = ((0x7ffffe + x9) - x31);
+ out[3] = ((0x7ffffe + x11) - x33);
+ out[4] = ((0x7ffffe + x13) - x35);
+ out[5] = ((0x7ffffe + x15) - x37);
+ out[6] = ((0xfffffe + x17) - x39);
+ out[7] = ((0x7ffffe + x19) - x41);
+ out[8] = ((0x7ffffe + x21) - x43);
+ out[9] = ((0x7ffffe + x23) - x45);
+ out[10] = ((0x7ffffe + x25) - x47);
+ out[11] = ((0x7ffffe + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e266m3/fesubDisplay.log b/src/Specific/solinas32_2e266m3/fesubDisplay.log
new file mode 100644
index 000000000..97c231ce6
--- /dev/null
+++ b/src/Specific/solinas32_2e266m3/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((0x7ffffe + x24) - x46), ((0x7ffffe + x25) - x47), ((0x7ffffe + x23) - x45), ((0x7ffffe + x21) - x43), ((0x7ffffe + x19) - x41), ((0xfffffe + x17) - x39), ((0x7ffffe + x15) - x37), ((0x7ffffe + x13) - x35), ((0x7ffffe + x11) - x33), ((0x7ffffe + x9) - x31), ((0x7ffffe + x7) - x29), ((0xfffffa + x5) - x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e291m19/feadd.c b/src/Specific/solinas32_2e291m19/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e291m19/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e291m19/feaddDisplay.log b/src/Specific/solinas32_2e291m19/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e291m19/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e291m19/fesub.c b/src/Specific/solinas32_2e291m19/fesub.c
new file mode 100644
index 000000000..e03912ca7
--- /dev/null
+++ b/src/Specific/solinas32_2e291m19/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((Const 67108826 + x5) - x27);
+ out[1] = ((0x1fffffe + x7) - x29);
+ out[2] = ((0x1fffffe + x9) - x31);
+ out[3] = ((0x1fffffe + x11) - x33);
+ out[4] = ((0x3fffffe + x13) - x35);
+ out[5] = ((0x1fffffe + x15) - x37);
+ out[6] = ((0x1fffffe + x17) - x39);
+ out[7] = ((0x1fffffe + x19) - x41);
+ out[8] = ((0x3fffffe + x21) - x43);
+ out[9] = ((0x1fffffe + x23) - x45);
+ out[10] = ((0x1fffffe + x25) - x47);
+ out[11] = ((0x1fffffe + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e291m19/fesubDisplay.log b/src/Specific/solinas32_2e291m19/fesubDisplay.log
new file mode 100644
index 000000000..29b0b2d39
--- /dev/null
+++ b/src/Specific/solinas32_2e291m19/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((0x1fffffe + x24) - x46), ((0x1fffffe + x25) - x47), ((0x1fffffe + x23) - x45), ((0x3fffffe + x21) - x43), ((0x1fffffe + x19) - x41), ((0x1fffffe + x17) - x39), ((0x1fffffe + x15) - x37), ((0x3fffffe + x13) - x35), ((0x1fffffe + x11) - x33), ((0x1fffffe + x9) - x31), ((0x1fffffe + x7) - x29), ((Const 67108826 + x5) - x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e336m3/feadd.c b/src/Specific/solinas32_2e336m3/feadd.c
new file mode 100644
index 000000000..68eccd2bc
--- /dev/null
+++ b/src/Specific/solinas32_2e336m3/feadd.c
@@ -0,0 +1,39 @@
+static void feadd(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = (x5 + x27);
+ out[1] = (x7 + x29);
+ out[2] = (x9 + x31);
+ out[3] = (x11 + x33);
+ out[4] = (x13 + x35);
+ out[5] = (x15 + x37);
+ out[6] = (x17 + x39);
+ out[7] = (x19 + x41);
+ out[8] = (x21 + x43);
+ out[9] = (x23 + x45);
+ out[10] = (x25 + x47);
+ out[11] = (x24 + x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e336m3/feaddDisplay.log b/src/Specific/solinas32_2e336m3/feaddDisplay.log
new file mode 100644
index 000000000..4109af59c
--- /dev/null
+++ b/src/Specific/solinas32_2e336m3/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ ((x24 + x46), (x25 + x47), (x23 + x45), (x21 + x43), (x19 + x41), (x17 + x39), (x15 + x37), (x13 + x35), (x11 + x33), (x9 + x31), (x7 + x29), (x5 + x27)))
+(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 → 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)
diff --git a/src/Specific/solinas32_2e336m3/fesub.c b/src/Specific/solinas32_2e336m3/fesub.c
new file mode 100644
index 000000000..1fbdaab1a
--- /dev/null
+++ b/src/Specific/solinas32_2e336m3/fesub.c
@@ -0,0 +1,39 @@
+static void fesub(uint32_t out[12], const uint32_t in1[12], const uint32_t in2[12]) {
+ { const uint32_t x24 = 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 x46 = in2[11];
+ { const uint32_t x47 = in2[10];
+ { const uint32_t x45 = in2[9];
+ { const uint32_t x43 = in2[8];
+ { const uint32_t x41 = in2[7];
+ { const uint32_t x39 = in2[6];
+ { const uint32_t x37 = in2[5];
+ { const uint32_t x35 = in2[4];
+ { const uint32_t x33 = in2[3];
+ { const uint32_t x31 = in2[2];
+ { const uint32_t x29 = in2[1];
+ { const uint32_t x27 = in2[0];
+ out[0] = ((0x1ffffffa + x5) - x27);
+ out[1] = ((0x1ffffffe + x7) - x29);
+ out[2] = ((0x1ffffffe + x9) - x31);
+ out[3] = ((0x1ffffffe + x11) - x33);
+ out[4] = ((0x1ffffffe + x13) - x35);
+ out[5] = ((0x1ffffffe + x15) - x37);
+ out[6] = ((0x1ffffffe + x17) - x39);
+ out[7] = ((0x1ffffffe + x19) - x41);
+ out[8] = ((0x1ffffffe + x21) - x43);
+ out[9] = ((0x1ffffffe + x23) - x45);
+ out[10] = ((0x1ffffffe + x25) - x47);
+ out[11] = ((0x1ffffffe + x24) - x46);
+ }}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e336m3/fesubDisplay.log b/src/Specific/solinas32_2e336m3/fesubDisplay.log
new file mode 100644
index 000000000..b5fc20900
--- /dev/null
+++ b/src/Specific/solinas32_2e336m3/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
+ (((0x1ffffffe + x24) - x46), ((0x1ffffffe + x25) - x47), ((0x1ffffffe + x23) - x45), ((0x1ffffffe + x21) - x43), ((0x1ffffffe + x19) - x41), ((0x1ffffffe + x17) - x39), ((0x1ffffffe + x15) - x37), ((0x1ffffffe + x13) - x35), ((0x1ffffffe + x11) - x33), ((0x1ffffffe + x9) - x31), ((0x1ffffffe + x7) - x29), ((0x1ffffffa + x5) - x27)))
+(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 → 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)