aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-02 12:45:12 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-11-02 12:45:12 -0400
commit30ce7aba6875215c0ab8237368bbb1cde0dc0b7d (patch)
treebee423c164e73a7d3da54a52e1f7b8424984764c /src
parent3a5c4795e1a0f7d4b8803022ac9f28e1bc8c031d (diff)
Update display logs and c files
Diffstat (limited to 'src')
-rw-r--r--src/Specific/solinas32_2e137m13/feadd.c27
-rw-r--r--src/Specific/solinas32_2e137m13/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e137m13/fesub.c27
-rw-r--r--src/Specific/solinas32_2e137m13/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e192m2e64m1/feadd.c27
-rw-r--r--src/Specific/solinas32_2e192m2e64m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e192m2e64m1/fesub.c27
-rw-r--r--src/Specific/solinas32_2e192m2e64m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e194m33/feadd.c27
-rw-r--r--src/Specific/solinas32_2e194m33/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e194m33/fesub.c27
-rw-r--r--src/Specific/solinas32_2e194m33/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e212m29/feadd.c27
-rw-r--r--src/Specific/solinas32_2e212m29/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e212m29/fesub.c27
-rw-r--r--src/Specific/solinas32_2e212m29/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e216m2e108m1/feadd.c27
-rw-r--r--src/Specific/solinas32_2e216m2e108m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e216m2e108m1/fesub.c27
-rw-r--r--src/Specific/solinas32_2e216m2e108m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e224m2e96p1/feadd.c27
-rw-r--r--src/Specific/solinas32_2e224m2e96p1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e226m5/feadd.c27
-rw-r--r--src/Specific/solinas32_2e226m5/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e226m5/fesub.c27
-rw-r--r--src/Specific/solinas32_2e226m5/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e369m25/feadd.c27
-rw-r--r--src/Specific/solinas64_2e369m25/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e369m25/fesub.c27
-rw-r--r--src/Specific/solinas64_2e369m25/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feadd.c27
-rw-r--r--src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m317/feadd.c27
-rw-r--r--src/Specific/solinas64_2e384m317/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m317/fesub.c27
-rw-r--r--src/Specific/solinas64_2e384m317/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m5x2e368m1/feadd.c27
-rw-r--r--src/Specific/solinas64_2e384m5x2e368m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m5x2e368m1/fesub.c27
-rw-r--r--src/Specific/solinas64_2e384m5x2e368m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m79x2e376m1/feadd.c27
-rw-r--r--src/Specific/solinas64_2e384m79x2e376m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m79x2e376m1/fesub.c27
-rw-r--r--src/Specific/solinas64_2e384m79x2e376m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e401m31/feadd.c27
-rw-r--r--src/Specific/solinas64_2e401m31/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e401m31/fesub.c27
-rw-r--r--src/Specific/solinas64_2e401m31/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e416m2e208m1/feadd.c27
-rw-r--r--src/Specific/solinas64_2e416m2e208m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e416m2e208m1/fesub.c27
-rw-r--r--src/Specific/solinas64_2e416m2e208m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e444m17/feadd.c27
-rw-r--r--src/Specific/solinas64_2e444m17/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e444m17/fesub.c27
-rw-r--r--src/Specific/solinas64_2e444m17/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e448m2e224m1/feadd.c27
-rw-r--r--src/Specific/solinas64_2e448m2e224m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e448m2e224m1/fesub.c27
-rw-r--r--src/Specific/solinas64_2e448m2e224m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e450m2e225m1/feadd.c27
-rw-r--r--src/Specific/solinas64_2e450m2e225m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e450m2e225m1/fesub.c27
-rw-r--r--src/Specific/solinas64_2e450m2e225m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e452m3/feadd.c27
-rw-r--r--src/Specific/solinas64_2e452m3/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e452m3/fesub.c27
-rw-r--r--src/Specific/solinas64_2e452m3/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e468m17/feadd.c27
-rw-r--r--src/Specific/solinas64_2e468m17/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e468m17/fesub.c27
-rw-r--r--src/Specific/solinas64_2e468m17/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e480m2e240m1/feadd.c27
-rw-r--r--src/Specific/solinas64_2e480m2e240m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e480m2e240m1/fesub.c27
-rw-r--r--src/Specific/solinas64_2e480m2e240m1/fesubDisplay.log7
76 files changed, 1292 insertions, 0 deletions
diff --git a/src/Specific/solinas32_2e137m13/feadd.c b/src/Specific/solinas32_2e137m13/feadd.c
new file mode 100644
index 000000000..cc3671f75
--- /dev/null
+++ b/src/Specific/solinas32_2e137m13/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e137m13/feaddDisplay.log b/src/Specific/solinas32_2e137m13/feaddDisplay.log
new file mode 100644
index 000000000..f25c10903
--- /dev/null
+++ b/src/Specific/solinas32_2e137m13/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e137m13/fesub.c b/src/Specific/solinas32_2e137m13/fesub.c
new file mode 100644
index 000000000..e464fe964
--- /dev/null
+++ b/src/Specific/solinas32_2e137m13/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = ((Const 524262 + x5) - x19);
+ out[1] = ((Const 262142 + x7) - x21);
+ out[2] = ((Const 262142 + x9) - x23);
+ out[3] = ((Const 262142 + x11) - x25);
+ out[4] = ((Const 262142 + x13) - x27);
+ out[5] = ((Const 262142 + x15) - x29);
+ out[6] = ((Const 262142 + x17) - x31);
+ out[7] = ((Const 262142 + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e137m13/fesubDisplay.log b/src/Specific/solinas32_2e137m13/fesubDisplay.log
new file mode 100644
index 000000000..aa440b343
--- /dev/null
+++ b/src/Specific/solinas32_2e137m13/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((Const 262142 + x16) - x30), ((Const 262142 + x17) - x31), ((Const 262142 + x15) - x29), ((Const 262142 + x13) - x27), ((Const 262142 + x11) - x25), ((Const 262142 + x9) - x23), ((Const 262142 + x7) - x21), ((Const 524262 + x5) - x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e192m2e64m1/feadd.c b/src/Specific/solinas32_2e192m2e64m1/feadd.c
new file mode 100644
index 000000000..cc3671f75
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e192m2e64m1/feaddDisplay.log b/src/Specific/solinas32_2e192m2e64m1/feaddDisplay.log
new file mode 100644
index 000000000..f25c10903
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e192m2e64m1/fesub.c b/src/Specific/solinas32_2e192m2e64m1/fesub.c
new file mode 100644
index 000000000..986f1b20c
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = ((0x1fffffe + x5) - x19);
+ out[1] = ((0x1fffffe + x7) - x21);
+ out[2] = ((Const 33423358 + x9) - x23);
+ out[3] = ((0x1fffffe + x11) - x25);
+ out[4] = ((0x1fffffe + x13) - x27);
+ out[5] = ((0x1fffffe + x15) - x29);
+ out[6] = ((0x1fffffe + x17) - x31);
+ out[7] = ((0x1fffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e192m2e64m1/fesubDisplay.log b/src/Specific/solinas32_2e192m2e64m1/fesubDisplay.log
new file mode 100644
index 000000000..93429a863
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1fffffe + x16) - x30), ((0x1fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x1fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((Const 33423358 + x9) - x23), ((0x1fffffe + x7) - x21), ((0x1fffffe + x5) - x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e194m33/feadd.c b/src/Specific/solinas32_2e194m33/feadd.c
new file mode 100644
index 000000000..cc3671f75
--- /dev/null
+++ b/src/Specific/solinas32_2e194m33/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e194m33/feaddDisplay.log b/src/Specific/solinas32_2e194m33/feaddDisplay.log
new file mode 100644
index 000000000..f25c10903
--- /dev/null
+++ b/src/Specific/solinas32_2e194m33/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e194m33/fesub.c b/src/Specific/solinas32_2e194m33/fesub.c
new file mode 100644
index 000000000..f9a586ca4
--- /dev/null
+++ b/src/Specific/solinas32_2e194m33/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = ((Const 67108798 + x5) - x19);
+ out[1] = ((0x1fffffe + x7) - x21);
+ out[2] = ((0x1fffffe + x9) - x23);
+ out[3] = ((0x1fffffe + x11) - x25);
+ out[4] = ((0x3fffffe + x13) - x27);
+ out[5] = ((0x1fffffe + x15) - x29);
+ out[6] = ((0x1fffffe + x17) - x31);
+ out[7] = ((0x1fffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e194m33/fesubDisplay.log b/src/Specific/solinas32_2e194m33/fesubDisplay.log
new file mode 100644
index 000000000..b7d9e6729
--- /dev/null
+++ b/src/Specific/solinas32_2e194m33/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1fffffe + x16) - x30), ((0x1fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x3fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((0x1fffffe + x9) - x23), ((0x1fffffe + x7) - x21), ((Const 67108798 + x5) - x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e212m29/feadd.c b/src/Specific/solinas32_2e212m29/feadd.c
new file mode 100644
index 000000000..cc3671f75
--- /dev/null
+++ b/src/Specific/solinas32_2e212m29/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e212m29/feaddDisplay.log b/src/Specific/solinas32_2e212m29/feaddDisplay.log
new file mode 100644
index 000000000..f25c10903
--- /dev/null
+++ b/src/Specific/solinas32_2e212m29/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e212m29/fesub.c b/src/Specific/solinas32_2e212m29/fesub.c
new file mode 100644
index 000000000..2742507bf
--- /dev/null
+++ b/src/Specific/solinas32_2e212m29/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = ((Const 268435398 + x5) - x19);
+ out[1] = ((0x7fffffe + x7) - x21);
+ out[2] = ((0xffffffe + x9) - x23);
+ out[3] = ((0x7fffffe + x11) - x25);
+ out[4] = ((0xffffffe + x13) - x27);
+ out[5] = ((0x7fffffe + x15) - x29);
+ out[6] = ((0xffffffe + x17) - x31);
+ out[7] = ((0x7fffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e212m29/fesubDisplay.log b/src/Specific/solinas32_2e212m29/fesubDisplay.log
new file mode 100644
index 000000000..fd46595d4
--- /dev/null
+++ b/src/Specific/solinas32_2e212m29/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x7fffffe + x16) - x30), ((0xffffffe + x17) - x31), ((0x7fffffe + x15) - x29), ((0xffffffe + x13) - x27), ((0x7fffffe + x11) - x25), ((0xffffffe + x9) - x23), ((0x7fffffe + x7) - x21), ((Const 268435398 + x5) - x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e216m2e108m1/feadd.c b/src/Specific/solinas32_2e216m2e108m1/feadd.c
new file mode 100644
index 000000000..cc3671f75
--- /dev/null
+++ b/src/Specific/solinas32_2e216m2e108m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e216m2e108m1/feaddDisplay.log b/src/Specific/solinas32_2e216m2e108m1/feaddDisplay.log
new file mode 100644
index 000000000..f25c10903
--- /dev/null
+++ b/src/Specific/solinas32_2e216m2e108m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e216m2e108m1/fesub.c b/src/Specific/solinas32_2e216m2e108m1/fesub.c
new file mode 100644
index 000000000..80857a32d
--- /dev/null
+++ b/src/Specific/solinas32_2e216m2e108m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = ((0xffffffe + x5) - x19);
+ out[1] = ((0xffffffe + x7) - x21);
+ out[2] = ((0xffffffe + x9) - x23);
+ out[3] = ((0xffffffe + x11) - x25);
+ out[4] = ((Const 268435452 + x13) - x27);
+ out[5] = ((0xffffffe + x15) - x29);
+ out[6] = ((0xffffffe + x17) - x31);
+ out[7] = ((0xffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e216m2e108m1/fesubDisplay.log b/src/Specific/solinas32_2e216m2e108m1/fesubDisplay.log
new file mode 100644
index 000000000..cbd824a7d
--- /dev/null
+++ b/src/Specific/solinas32_2e216m2e108m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0xffffffe + x16) - x30), ((0xffffffe + x17) - x31), ((0xffffffe + x15) - x29), ((Const 268435452 + x13) - x27), ((0xffffffe + x11) - x25), ((0xffffffe + x9) - x23), ((0xffffffe + x7) - x21), ((0xffffffe + x5) - x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e224m2e96p1/feadd.c b/src/Specific/solinas32_2e224m2e96p1/feadd.c
new file mode 100644
index 000000000..cc3671f75
--- /dev/null
+++ b/src/Specific/solinas32_2e224m2e96p1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e224m2e96p1/feaddDisplay.log b/src/Specific/solinas32_2e224m2e96p1/feaddDisplay.log
new file mode 100644
index 000000000..f25c10903
--- /dev/null
+++ b/src/Specific/solinas32_2e224m2e96p1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e226m5/feadd.c b/src/Specific/solinas32_2e226m5/feadd.c
new file mode 100644
index 000000000..cc3671f75
--- /dev/null
+++ b/src/Specific/solinas32_2e226m5/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e226m5/feaddDisplay.log b/src/Specific/solinas32_2e226m5/feaddDisplay.log
new file mode 100644
index 000000000..f25c10903
--- /dev/null
+++ b/src/Specific/solinas32_2e226m5/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e226m5/fesub.c b/src/Specific/solinas32_2e226m5/fesub.c
new file mode 100644
index 000000000..c04b22700
--- /dev/null
+++ b/src/Specific/solinas32_2e226m5/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8]) {
+ { const uint32_t x16 = 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 x30 = in2[7];
+ { const uint32_t x31 = in2[6];
+ { const uint32_t x29 = in2[5];
+ { const uint32_t x27 = in2[4];
+ { const uint32_t x25 = in2[3];
+ { const uint32_t x23 = in2[2];
+ { const uint32_t x21 = in2[1];
+ { const uint32_t x19 = in2[0];
+ out[0] = ((Const 1073741814 + x5) - x19);
+ out[1] = ((0x1ffffffe + x7) - x21);
+ out[2] = ((0x1ffffffe + x9) - x23);
+ out[3] = ((0x1ffffffe + x11) - x25);
+ out[4] = ((0x3ffffffe + x13) - x27);
+ out[5] = ((0x1ffffffe + x15) - x29);
+ out[6] = ((0x1ffffffe + x17) - x31);
+ out[7] = ((0x1ffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e226m5/fesubDisplay.log b/src/Specific/solinas32_2e226m5/fesubDisplay.log
new file mode 100644
index 000000000..3c74d260d
--- /dev/null
+++ b/src/Specific/solinas32_2e226m5/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1ffffffe + x16) - x30), ((0x1ffffffe + x17) - x31), ((0x1ffffffe + x15) - x29), ((0x3ffffffe + x13) - x27), ((0x1ffffffe + x11) - x25), ((0x1ffffffe + x9) - x23), ((0x1ffffffe + x7) - x21), ((Const 1073741814 + x5) - x19)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas64_2e369m25/feadd.c b/src/Specific/solinas64_2e369m25/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e369m25/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e369m25/feaddDisplay.log b/src/Specific/solinas64_2e369m25/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e369m25/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e369m25/fesub.c b/src/Specific/solinas64_2e369m25/fesub.c
new file mode 100644
index 000000000..3f3f3bea4
--- /dev/null
+++ b/src/Specific/solinas64_2e369m25/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((Const 281474976710606 + x5) - x19);
+ out[1] = ((0x7ffffffffffe + x7) - x21);
+ out[2] = ((0x7ffffffffffe + x9) - x23);
+ out[3] = ((0x7ffffffffffe + x11) - x25);
+ out[4] = ((0x7ffffffffffe + x13) - x27);
+ out[5] = ((0x7ffffffffffe + x15) - x29);
+ out[6] = ((0x7ffffffffffe + x17) - x31);
+ out[7] = ((0x7ffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e369m25/fesubDisplay.log b/src/Specific/solinas64_2e369m25/fesubDisplay.log
new file mode 100644
index 000000000..7f6742d9b
--- /dev/null
+++ b/src/Specific/solinas64_2e369m25/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x7ffffffffffe + x16) - x30), ((0x7ffffffffffe + x17) - x31), ((0x7ffffffffffe + x15) - x29), ((0x7ffffffffffe + x13) - x27), ((0x7ffffffffffe + x11) - x25), ((0x7ffffffffffe + x9) - x23), ((0x7ffffffffffe + x7) - x21), ((Const 281474976710606 + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feadd.c b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feaddDisplay.log b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m317/feadd.c b/src/Specific/solinas64_2e384m317/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e384m317/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e384m317/feaddDisplay.log b/src/Specific/solinas64_2e384m317/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e384m317/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m317/fesub.c b/src/Specific/solinas64_2e384m317/fesub.c
new file mode 100644
index 000000000..c0af3d09b
--- /dev/null
+++ b/src/Specific/solinas64_2e384m317/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((Const 562949953420678 + x5) - x19);
+ out[1] = ((0x1fffffffffffe + x7) - x21);
+ out[2] = ((0x1fffffffffffe + x9) - x23);
+ out[3] = ((0x1fffffffffffe + x11) - x25);
+ out[4] = ((0x1fffffffffffe + x13) - x27);
+ out[5] = ((0x1fffffffffffe + x15) - x29);
+ out[6] = ((0x1fffffffffffe + x17) - x31);
+ out[7] = ((0x1fffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e384m317/fesubDisplay.log b/src/Specific/solinas64_2e384m317/fesubDisplay.log
new file mode 100644
index 000000000..da6d96576
--- /dev/null
+++ b/src/Specific/solinas64_2e384m317/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1fffffffffffe + x16) - x30), ((0x1fffffffffffe + x17) - x31), ((0x1fffffffffffe + x15) - x29), ((0x1fffffffffffe + x13) - x27), ((0x1fffffffffffe + x11) - x25), ((0x1fffffffffffe + x9) - x23), ((0x1fffffffffffe + x7) - x21), ((Const 562949953420678 + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m5x2e368m1/feadd.c b/src/Specific/solinas64_2e384m5x2e368m1/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e384m5x2e368m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e384m5x2e368m1/feaddDisplay.log b/src/Specific/solinas64_2e384m5x2e368m1/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e384m5x2e368m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m5x2e368m1/fesub.c b/src/Specific/solinas64_2e384m5x2e368m1/fesub.c
new file mode 100644
index 000000000..4d7a2ddb0
--- /dev/null
+++ b/src/Specific/solinas64_2e384m5x2e368m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((0x1fffffffffffe + x5) - x19);
+ out[1] = ((0x1fffffffffffe + x7) - x21);
+ out[2] = ((0x1fffffffffffe + x9) - x23);
+ out[3] = ((0x1fffffffffffe + x11) - x25);
+ out[4] = ((0x1fffffffffffe + x13) - x27);
+ out[5] = ((0x1fffffffffffe + x15) - x29);
+ out[6] = ((0x1fffffffffffe + x17) - x31);
+ out[7] = ((Const 562907003748350 + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e384m5x2e368m1/fesubDisplay.log b/src/Specific/solinas64_2e384m5x2e368m1/fesubDisplay.log
new file mode 100644
index 000000000..ed106a446
--- /dev/null
+++ b/src/Specific/solinas64_2e384m5x2e368m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((Const 562907003748350 + x16) - x30), ((0x1fffffffffffe + x17) - x31), ((0x1fffffffffffe + x15) - x29), ((0x1fffffffffffe + x13) - x27), ((0x1fffffffffffe + x11) - x25), ((0x1fffffffffffe + x9) - x23), ((0x1fffffffffffe + x7) - x21), ((0x1fffffffffffe + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m79x2e376m1/feadd.c b/src/Specific/solinas64_2e384m79x2e376m1/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e384m79x2e376m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e384m79x2e376m1/feaddDisplay.log b/src/Specific/solinas64_2e384m79x2e376m1/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e384m79x2e376m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m79x2e376m1/fesub.c b/src/Specific/solinas64_2e384m79x2e376m1/fesub.c
new file mode 100644
index 000000000..a69e542b4
--- /dev/null
+++ b/src/Specific/solinas64_2e384m79x2e376m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((0x1fffffffffffe + x5) - x19);
+ out[1] = ((0x1fffffffffffe + x7) - x21);
+ out[2] = ((0x1fffffffffffe + x9) - x23);
+ out[3] = ((0x1fffffffffffe + x11) - x25);
+ out[4] = ((0x1fffffffffffe + x13) - x27);
+ out[5] = ((0x1fffffffffffe + x15) - x29);
+ out[6] = ((0x1fffffffffffe + x17) - x31);
+ out[7] = ((Const 389227116232702 + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e384m79x2e376m1/fesubDisplay.log b/src/Specific/solinas64_2e384m79x2e376m1/fesubDisplay.log
new file mode 100644
index 000000000..5d18bbb73
--- /dev/null
+++ b/src/Specific/solinas64_2e384m79x2e376m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((Const 389227116232702 + x16) - x30), ((0x1fffffffffffe + x17) - x31), ((0x1fffffffffffe + x15) - x29), ((0x1fffffffffffe + x13) - x27), ((0x1fffffffffffe + x11) - x25), ((0x1fffffffffffe + x9) - x23), ((0x1fffffffffffe + x7) - x21), ((0x1fffffffffffe + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e401m31/feadd.c b/src/Specific/solinas64_2e401m31/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e401m31/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e401m31/feaddDisplay.log b/src/Specific/solinas64_2e401m31/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e401m31/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e401m31/fesub.c b/src/Specific/solinas64_2e401m31/fesub.c
new file mode 100644
index 000000000..63517697f
--- /dev/null
+++ b/src/Specific/solinas64_2e401m31/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((Const 4503599627370434 + x5) - x19);
+ out[1] = ((0x7fffffffffffe + x7) - x21);
+ out[2] = ((0x7fffffffffffe + x9) - x23);
+ out[3] = ((0x7fffffffffffe + x11) - x25);
+ out[4] = ((0x7fffffffffffe + x13) - x27);
+ out[5] = ((0x7fffffffffffe + x15) - x29);
+ out[6] = ((0x7fffffffffffe + x17) - x31);
+ out[7] = ((0x7fffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e401m31/fesubDisplay.log b/src/Specific/solinas64_2e401m31/fesubDisplay.log
new file mode 100644
index 000000000..f9b5ffa72
--- /dev/null
+++ b/src/Specific/solinas64_2e401m31/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x7fffffffffffe + x16) - x30), ((0x7fffffffffffe + x17) - x31), ((0x7fffffffffffe + x15) - x29), ((0x7fffffffffffe + x13) - x27), ((0x7fffffffffffe + x11) - x25), ((0x7fffffffffffe + x9) - x23), ((0x7fffffffffffe + x7) - x21), ((Const 4503599627370434 + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e416m2e208m1/feadd.c b/src/Specific/solinas64_2e416m2e208m1/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e416m2e208m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e416m2e208m1/feaddDisplay.log b/src/Specific/solinas64_2e416m2e208m1/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e416m2e208m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e416m2e208m1/fesub.c b/src/Specific/solinas64_2e416m2e208m1/fesub.c
new file mode 100644
index 000000000..43c085846
--- /dev/null
+++ b/src/Specific/solinas64_2e416m2e208m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((0x1ffffffffffffe + x5) - x19);
+ out[1] = ((0x1ffffffffffffe + x7) - x21);
+ out[2] = ((0x1ffffffffffffe + x9) - x23);
+ out[3] = ((0x1ffffffffffffe + x11) - x25);
+ out[4] = ((Const 9007199254740988 + x13) - x27);
+ out[5] = ((0x1ffffffffffffe + x15) - x29);
+ out[6] = ((0x1ffffffffffffe + x17) - x31);
+ out[7] = ((0x1ffffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e416m2e208m1/fesubDisplay.log b/src/Specific/solinas64_2e416m2e208m1/fesubDisplay.log
new file mode 100644
index 000000000..837a44010
--- /dev/null
+++ b/src/Specific/solinas64_2e416m2e208m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1ffffffffffffe + x16) - x30), ((0x1ffffffffffffe + x17) - x31), ((0x1ffffffffffffe + x15) - x29), ((Const 9007199254740988 + x13) - x27), ((0x1ffffffffffffe + x11) - x25), ((0x1ffffffffffffe + x9) - x23), ((0x1ffffffffffffe + x7) - x21), ((0x1ffffffffffffe + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e444m17/feadd.c b/src/Specific/solinas64_2e444m17/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e444m17/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e444m17/feaddDisplay.log b/src/Specific/solinas64_2e444m17/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e444m17/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e444m17/fesub.c b/src/Specific/solinas64_2e444m17/fesub.c
new file mode 100644
index 000000000..2fdfd6d8c
--- /dev/null
+++ b/src/Specific/solinas64_2e444m17/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((0x1ffffffffffffde + x5) - x19);
+ out[1] = ((0xfffffffffffffe + x7) - x21);
+ out[2] = ((0x1fffffffffffffe + x9) - x23);
+ out[3] = ((0xfffffffffffffe + x11) - x25);
+ out[4] = ((0x1fffffffffffffe + x13) - x27);
+ out[5] = ((0xfffffffffffffe + x15) - x29);
+ out[6] = ((0x1fffffffffffffe + x17) - x31);
+ out[7] = ((0xfffffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e444m17/fesubDisplay.log b/src/Specific/solinas64_2e444m17/fesubDisplay.log
new file mode 100644
index 000000000..5278335c6
--- /dev/null
+++ b/src/Specific/solinas64_2e444m17/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0xfffffffffffffe + x16) - x30), ((0x1fffffffffffffe + x17) - x31), ((0xfffffffffffffe + x15) - x29), ((0x1fffffffffffffe + x13) - x27), ((0xfffffffffffffe + x11) - x25), ((0x1fffffffffffffe + x9) - x23), ((0xfffffffffffffe + x7) - x21), ((0x1ffffffffffffde + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e448m2e224m1/feadd.c b/src/Specific/solinas64_2e448m2e224m1/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e448m2e224m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e448m2e224m1/feaddDisplay.log b/src/Specific/solinas64_2e448m2e224m1/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e448m2e224m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e448m2e224m1/fesub.c b/src/Specific/solinas64_2e448m2e224m1/fesub.c
new file mode 100644
index 000000000..f32f26304
--- /dev/null
+++ b/src/Specific/solinas64_2e448m2e224m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((0x1fffffffffffffe + x5) - x19);
+ out[1] = ((0x1fffffffffffffe + x7) - x21);
+ out[2] = ((0x1fffffffffffffe + x9) - x23);
+ out[3] = ((0x1fffffffffffffe + x11) - x25);
+ out[4] = ((Const 144115188075855868 + x13) - x27);
+ out[5] = ((0x1fffffffffffffe + x15) - x29);
+ out[6] = ((0x1fffffffffffffe + x17) - x31);
+ out[7] = ((0x1fffffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e448m2e224m1/fesubDisplay.log b/src/Specific/solinas64_2e448m2e224m1/fesubDisplay.log
new file mode 100644
index 000000000..3d058aa10
--- /dev/null
+++ b/src/Specific/solinas64_2e448m2e224m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1fffffffffffffe + x16) - x30), ((0x1fffffffffffffe + x17) - x31), ((0x1fffffffffffffe + x15) - x29), ((Const 144115188075855868 + x13) - x27), ((0x1fffffffffffffe + x11) - x25), ((0x1fffffffffffffe + x9) - x23), ((0x1fffffffffffffe + x7) - x21), ((0x1fffffffffffffe + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e450m2e225m1/feadd.c b/src/Specific/solinas64_2e450m2e225m1/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e450m2e225m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e450m2e225m1/feaddDisplay.log b/src/Specific/solinas64_2e450m2e225m1/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e450m2e225m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e450m2e225m1/fesub.c b/src/Specific/solinas64_2e450m2e225m1/fesub.c
new file mode 100644
index 000000000..ae68d0af0
--- /dev/null
+++ b/src/Specific/solinas64_2e450m2e225m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((0x3fffffffffffffe + x5) - x19);
+ out[1] = ((0x1fffffffffffffe + x7) - x21);
+ out[2] = ((0x1fffffffffffffe + x9) - x23);
+ out[3] = ((0x1fffffffffffffe + x11) - x25);
+ out[4] = ((Const 288230376151711740 + x13) - x27);
+ out[5] = ((0x1fffffffffffffe + x15) - x29);
+ out[6] = ((0x1fffffffffffffe + x17) - x31);
+ out[7] = ((0x1fffffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e450m2e225m1/fesubDisplay.log b/src/Specific/solinas64_2e450m2e225m1/fesubDisplay.log
new file mode 100644
index 000000000..31744190d
--- /dev/null
+++ b/src/Specific/solinas64_2e450m2e225m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1fffffffffffffe + x16) - x30), ((0x1fffffffffffffe + x17) - x31), ((0x1fffffffffffffe + x15) - x29), ((Const 288230376151711740 + x13) - x27), ((0x1fffffffffffffe + x11) - x25), ((0x1fffffffffffffe + x9) - x23), ((0x1fffffffffffffe + x7) - x21), ((0x3fffffffffffffe + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e452m3/feadd.c b/src/Specific/solinas64_2e452m3/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e452m3/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e452m3/feaddDisplay.log b/src/Specific/solinas64_2e452m3/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e452m3/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e452m3/fesub.c b/src/Specific/solinas64_2e452m3/fesub.c
new file mode 100644
index 000000000..e9ddd2d0f
--- /dev/null
+++ b/src/Specific/solinas64_2e452m3/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((Const 288230376151711738 + x5) - x19);
+ out[1] = ((0x1fffffffffffffe + x7) - x21);
+ out[2] = ((0x3fffffffffffffe + x9) - x23);
+ out[3] = ((0x1fffffffffffffe + x11) - x25);
+ out[4] = ((0x3fffffffffffffe + x13) - x27);
+ out[5] = ((0x1fffffffffffffe + x15) - x29);
+ out[6] = ((0x3fffffffffffffe + x17) - x31);
+ out[7] = ((0x1fffffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e452m3/fesubDisplay.log b/src/Specific/solinas64_2e452m3/fesubDisplay.log
new file mode 100644
index 000000000..e7f440eb6
--- /dev/null
+++ b/src/Specific/solinas64_2e452m3/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x1fffffffffffffe + x16) - x30), ((0x3fffffffffffffe + x17) - x31), ((0x1fffffffffffffe + x15) - x29), ((0x3fffffffffffffe + x13) - x27), ((0x1fffffffffffffe + x11) - x25), ((0x3fffffffffffffe + x9) - x23), ((0x1fffffffffffffe + x7) - x21), ((Const 288230376151711738 + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e468m17/feadd.c b/src/Specific/solinas64_2e468m17/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e468m17/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e468m17/feaddDisplay.log b/src/Specific/solinas64_2e468m17/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e468m17/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e468m17/fesub.c b/src/Specific/solinas64_2e468m17/fesub.c
new file mode 100644
index 000000000..5a6b40603
--- /dev/null
+++ b/src/Specific/solinas64_2e468m17/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((Const 1152921504606846942 + x5) - x19);
+ out[1] = ((0x7fffffffffffffe + x7) - x21);
+ out[2] = ((0xffffffffffffffe + x9) - x23);
+ out[3] = ((0x7fffffffffffffe + x11) - x25);
+ out[4] = ((0xffffffffffffffe + x13) - x27);
+ out[5] = ((0x7fffffffffffffe + x15) - x29);
+ out[6] = ((0xffffffffffffffe + x17) - x31);
+ out[7] = ((0x7fffffffffffffe + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e468m17/fesubDisplay.log b/src/Specific/solinas64_2e468m17/fesubDisplay.log
new file mode 100644
index 000000000..f67353a39
--- /dev/null
+++ b/src/Specific/solinas64_2e468m17/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((0x7fffffffffffffe + x16) - x30), ((0xffffffffffffffe + x17) - x31), ((0x7fffffffffffffe + x15) - x29), ((0xffffffffffffffe + x13) - x27), ((0x7fffffffffffffe + x11) - x25), ((0xffffffffffffffe + x9) - x23), ((0x7fffffffffffffe + x7) - x21), ((Const 1152921504606846942 + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e480m2e240m1/feadd.c b/src/Specific/solinas64_2e480m2e240m1/feadd.c
new file mode 100644
index 000000000..4def6ee9c
--- /dev/null
+++ b/src/Specific/solinas64_2e480m2e240m1/feadd.c
@@ -0,0 +1,27 @@
+static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = (x5 + x19);
+ out[1] = (x7 + x21);
+ out[2] = (x9 + x23);
+ out[3] = (x11 + x25);
+ out[4] = (x13 + x27);
+ out[5] = (x15 + x29);
+ out[6] = (x17 + x31);
+ out[7] = (x16 + x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e480m2e240m1/feaddDisplay.log b/src/Specific/solinas64_2e480m2e240m1/feaddDisplay.log
new file mode 100644
index 000000000..023fc8a31
--- /dev/null
+++ b/src/Specific/solinas64_2e480m2e240m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ((x16 + x30), (x17 + x31), (x15 + x29), (x13 + x27), (x11 + x25), (x9 + x23), (x7 + x21), (x5 + x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e480m2e240m1/fesub.c b/src/Specific/solinas64_2e480m2e240m1/fesub.c
new file mode 100644
index 000000000..cd4380002
--- /dev/null
+++ b/src/Specific/solinas64_2e480m2e240m1/fesub.c
@@ -0,0 +1,27 @@
+static void fesub(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) {
+ { const uint64_t x16 = in1[7];
+ { const uint64_t x17 = in1[6];
+ { const uint64_t x15 = in1[5];
+ { const uint64_t x13 = in1[4];
+ { const uint64_t x11 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x30 = in2[7];
+ { const uint64_t x31 = in2[6];
+ { const uint64_t x29 = in2[5];
+ { const uint64_t x27 = in2[4];
+ { const uint64_t x25 = in2[3];
+ { const uint64_t x23 = in2[2];
+ { const uint64_t x21 = in2[1];
+ { const uint64_t x19 = in2[0];
+ out[0] = ((Const 2305843009213693950 + x5) - x19);
+ out[1] = ((Const 2305843009213693950 + x7) - x21);
+ out[2] = ((Const 2305843009213693950 + x9) - x23);
+ out[3] = ((Const 2305843009213693950 + x11) - x25);
+ out[4] = ((Const 2305843009213693948 + x13) - x27);
+ out[5] = ((Const 2305843009213693950 + x15) - x29);
+ out[6] = ((Const 2305843009213693950 + x17) - x31);
+ out[7] = ((Const 2305843009213693950 + x16) - x30);
+ }}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e480m2e240m1/fesubDisplay.log b/src/Specific/solinas64_2e480m2e240m1/fesubDisplay.log
new file mode 100644
index 000000000..092044bb9
--- /dev/null
+++ b/src/Specific/solinas64_2e480m2e240m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ (((Const 2305843009213693950 + x16) - x30), ((Const 2305843009213693950 + x17) - x31), ((Const 2305843009213693950 + x15) - x29), ((Const 2305843009213693948 + x13) - x27), ((Const 2305843009213693950 + x11) - x25), ((Const 2305843009213693950 + x9) - x23), ((Const 2305843009213693950 + x7) - x21), ((Const 2305843009213693950 + x5) - x19)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)