aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Specific/solinas32_2e165m25/fesub.c18
-rw-r--r--src/Specific/solinas32_2e165m25/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e166m5/feadd.c36
-rw-r--r--src/Specific/solinas32_2e166m5/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e166m5/fesub.c36
-rw-r--r--src/Specific/solinas32_2e166m5/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e171m19/fesub.c18
-rw-r--r--src/Specific/solinas32_2e171m19/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e174m17/fesub.c18
-rw-r--r--src/Specific/solinas32_2e174m17/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e191m19/feadd.c33
-rw-r--r--src/Specific/solinas32_2e191m19/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e191m19/fesub.c33
-rw-r--r--src/Specific/solinas32_2e191m19/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e198m17/fesub.c2
-rw-r--r--src/Specific/solinas32_2e198m17/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e205m45x2e198m1/feadd.c33
-rw-r--r--src/Specific/solinas32_2e205m45x2e198m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e205m45x2e198m1/fesub.c33
-rw-r--r--src/Specific/solinas32_2e205m45x2e198m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e221m3/feadd.c33
-rw-r--r--src/Specific/solinas32_2e221m3/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e221m3/fesub.c33
-rw-r--r--src/Specific/solinas32_2e221m3/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e222m117/feadd.c33
-rw-r--r--src/Specific/solinas32_2e222m117/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e222m117/fesub.c33
-rw-r--r--src/Specific/solinas32_2e222m117/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e230m27/feadd.c33
-rw-r--r--src/Specific/solinas32_2e230m27/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e230m27/fesub.c33
-rw-r--r--src/Specific/solinas32_2e230m27/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e243m9/fesub.c2
-rw-r--r--src/Specific/solinas32_2e243m9/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e251m9/feadd.c33
-rw-r--r--src/Specific/solinas32_2e251m9/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e251m9/fesub.c33
-rw-r--r--src/Specific/solinas32_2e251m9/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e254m127x2e240m1/feadd.c36
-rw-r--r--src/Specific/solinas32_2e254m127x2e240m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e254m127x2e240m1/fesub.c36
-rw-r--r--src/Specific/solinas32_2e254m127x2e240m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e255m19/feadd.c33
-rw-r--r--src/Specific/solinas32_2e255m19/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e255m19/fesub.c33
-rw-r--r--src/Specific/solinas32_2e255m19/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e255m2e4m2e1m1/fesub.c2
-rw-r--r--src/Specific/solinas32_2e255m2e4m2e1m1/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e382m105/feadd.c33
-rw-r--r--src/Specific/solinas64_2e382m105/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e382m105/fesub.c33
-rw-r--r--src/Specific/solinas64_2e382m105/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e414m17/fesub.c2
-rw-r--r--src/Specific/solinas64_2e414m17/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e489m21/fesub.c2
-rw-r--r--src/Specific/solinas64_2e489m21/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e495m31/fesub.c2
-rw-r--r--src/Specific/solinas64_2e495m31/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e510m290x2e496m1/feadd.c33
-rw-r--r--src/Specific/solinas64_2e510m290x2e496m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e510m290x2e496m1/fesub.c33
-rw-r--r--src/Specific/solinas64_2e510m290x2e496m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e511m187/feadd.c33
-rw-r--r--src/Specific/solinas64_2e511m187/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e511m187/fesub.c33
-rw-r--r--src/Specific/solinas64_2e511m187/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e511m481/feadd.c33
-rw-r--r--src/Specific/solinas64_2e511m481/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e511m481/fesub.c33
-rw-r--r--src/Specific/solinas64_2e511m481/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e512m491x2e496m1/feadd.c33
-rw-r--r--src/Specific/solinas64_2e512m491x2e496m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e512m491x2e496m1/fesub.c33
-rw-r--r--src/Specific/solinas64_2e512m491x2e496m1/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e512m569/feadd.c33
-rw-r--r--src/Specific/solinas64_2e512m569/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e512m569/fesub.c33
-rw-r--r--src/Specific/solinas64_2e512m569/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e521m1/feadd.c33
-rw-r--r--src/Specific/solinas64_2e521m1/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e521m1/fesub.c33
-rw-r--r--src/Specific/solinas64_2e521m1/fesubDisplay.log7
82 files changed, 1334 insertions, 42 deletions
diff --git a/src/Specific/solinas32_2e165m25/fesub.c b/src/Specific/solinas32_2e165m25/fesub.c
index b18989702..4f89eb94c 100644
--- a/src/Specific/solinas32_2e165m25/fesub.c
+++ b/src/Specific/solinas32_2e165m25/fesub.c
@@ -17,14 +17,14 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 1048526 + x5) - x21);
- out[1] = ((Const 524286 + x7) - x23);
- out[2] = ((Const 524286 + x9) - x25);
- out[3] = ((Const 1048574 + x11) - x27);
- out[4] = ((Const 524286 + x13) - x29);
- out[5] = ((Const 524286 + x15) - x31);
- out[6] = ((Const 1048574 + x17) - x33);
- out[7] = ((Const 524286 + x19) - x35);
- out[8] = ((Const 524286 + x18) - x34);
+ out[0] = ((0xfffce + x5) - x21);
+ out[1] = ((0x7fffe + x7) - x23);
+ out[2] = ((0x7fffe + x9) - x25);
+ out[3] = ((0xffffe + x11) - x27);
+ out[4] = ((0x7fffe + x13) - x29);
+ out[5] = ((0x7fffe + x15) - x31);
+ out[6] = ((0xffffe + x17) - x33);
+ out[7] = ((0x7fffe + x19) - x35);
+ out[8] = ((0x7fffe + x18) - x34);
}}}}}}}}}}}}}}}}}}
}
diff --git a/src/Specific/solinas32_2e165m25/fesubDisplay.log b/src/Specific/solinas32_2e165m25/fesubDisplay.log
index a36ca4450..d74d0c143 100644
--- a/src/Specific/solinas32_2e165m25/fesubDisplay.log
+++ b/src/Specific/solinas32_2e165m25/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((Const 524286 + x18) - x34), ((Const 524286 + x19) - x35), ((Const 1048574 + x17) - x33), ((Const 524286 + x15) - x31), ((Const 524286 + x13) - x29), ((Const 1048574 + x11) - x27), ((Const 524286 + x9) - x25), ((Const 524286 + x7) - x23), ((Const 1048526 + x5) - x21)))
+ (((0x7fffe + x18) - x34), ((0x7fffe + x19) - x35), ((0xffffe + x17) - x33), ((0x7fffe + x15) - x31), ((0x7fffe + x13) - x29), ((0xffffe + x11) - x27), ((0x7fffe + x9) - x25), ((0x7fffe + x7) - x23), ((0xfffce + x5) - x21)))
(x, x0)%core
: 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)
diff --git a/src/Specific/solinas32_2e166m5/feadd.c b/src/Specific/solinas32_2e166m5/feadd.c
new file mode 100644
index 000000000..1763e8727
--- /dev/null
+++ b/src/Specific/solinas32_2e166m5/feadd.c
@@ -0,0 +1,36 @@
+static void feadd(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[11]) {
+ { const uint32_t x22 = 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 x42 = in2[10];
+ { const uint32_t x43 = in2[9];
+ { const uint32_t x41 = in2[8];
+ { const uint32_t x39 = in2[7];
+ { const uint32_t x37 = in2[6];
+ { const uint32_t x35 = in2[5];
+ { const uint32_t x33 = in2[4];
+ { const uint32_t x31 = in2[3];
+ { const uint32_t x29 = in2[2];
+ { const uint32_t x27 = in2[1];
+ { const uint32_t x25 = in2[0];
+ out[0] = (x5 + x25);
+ out[1] = (x7 + x27);
+ out[2] = (x9 + x29);
+ out[3] = (x11 + x31);
+ out[4] = (x13 + x33);
+ out[5] = (x15 + x35);
+ out[6] = (x17 + x37);
+ out[7] = (x19 + x39);
+ out[8] = (x21 + x41);
+ out[9] = (x23 + x43);
+ out[10] = (x22 + x42);
+ }}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e166m5/feaddDisplay.log b/src/Specific/solinas32_2e166m5/feaddDisplay.log
new file mode 100644
index 000000000..433ecbc2e
--- /dev/null
+++ b/src/Specific/solinas32_2e166m5/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x22, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25))%core,
+ ((x22 + x42), (x23 + x43), (x21 + x41), (x19 + x39), (x17 + x37), (x15 + x35), (x13 + x33), (x11 + x31), (x9 + x29), (x7 + x27), (x5 + x25)))
+(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 → ReturnType (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_2e166m5/fesub.c b/src/Specific/solinas32_2e166m5/fesub.c
new file mode 100644
index 000000000..912d5f5d4
--- /dev/null
+++ b/src/Specific/solinas32_2e166m5/fesub.c
@@ -0,0 +1,36 @@
+static void fesub(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[11]) {
+ { const uint32_t x22 = 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 x42 = in2[10];
+ { const uint32_t x43 = in2[9];
+ { const uint32_t x41 = in2[8];
+ { const uint32_t x39 = in2[7];
+ { const uint32_t x37 = in2[6];
+ { const uint32_t x35 = in2[5];
+ { const uint32_t x33 = in2[4];
+ { const uint32_t x31 = in2[3];
+ { const uint32_t x29 = in2[2];
+ { const uint32_t x27 = in2[1];
+ { const uint32_t x25 = in2[0];
+ out[0] = ((Const 131062 + x5) - x25);
+ out[1] = ((Const 65534 + x7) - x27);
+ out[2] = ((Const 65534 + x9) - x29);
+ out[3] = ((Const 65534 + x11) - x31);
+ out[4] = ((Const 65534 + x13) - x33);
+ out[5] = ((Const 65534 + x15) - x35);
+ out[6] = ((Const 65534 + x17) - x37);
+ out[7] = ((Const 65534 + x19) - x39);
+ out[8] = ((Const 65534 + x21) - x41);
+ out[9] = ((Const 65534 + x23) - x43);
+ out[10] = ((Const 65534 + x22) - x42);
+ }}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e166m5/fesubDisplay.log b/src/Specific/solinas32_2e166m5/fesubDisplay.log
new file mode 100644
index 000000000..9cb67d72e
--- /dev/null
+++ b/src/Specific/solinas32_2e166m5/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x22, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25))%core,
+ (((Const 65534 + x22) - x42), ((Const 65534 + x23) - x43), ((Const 65534 + x21) - x41), ((Const 65534 + x19) - x39), ((Const 65534 + x17) - x37), ((Const 65534 + x15) - x35), ((Const 65534 + x13) - x33), ((Const 65534 + x11) - x31), ((Const 65534 + x9) - x29), ((Const 65534 + x7) - x27), ((Const 131062 + x5) - x25)))
+(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 → ReturnType (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_2e171m19/fesub.c b/src/Specific/solinas32_2e171m19/fesub.c
index f2af407d3..db56b039a 100644
--- a/src/Specific/solinas32_2e171m19/fesub.c
+++ b/src/Specific/solinas32_2e171m19/fesub.c
@@ -17,14 +17,14 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 1048538 + x5) - x21);
- out[1] = ((Const 1048574 + x7) - x23);
- out[2] = ((Const 1048574 + x9) - x25);
- out[3] = ((Const 1048574 + x11) - x27);
- out[4] = ((Const 1048574 + x13) - x29);
- out[5] = ((Const 1048574 + x15) - x31);
- out[6] = ((Const 1048574 + x17) - x33);
- out[7] = ((Const 1048574 + x19) - x35);
- out[8] = ((Const 1048574 + x18) - x34);
+ out[0] = ((0xfffda + x5) - x21);
+ out[1] = ((0xffffe + x7) - x23);
+ out[2] = ((0xffffe + x9) - x25);
+ out[3] = ((0xffffe + x11) - x27);
+ out[4] = ((0xffffe + x13) - x29);
+ out[5] = ((0xffffe + x15) - x31);
+ out[6] = ((0xffffe + x17) - x33);
+ out[7] = ((0xffffe + x19) - x35);
+ out[8] = ((0xffffe + x18) - x34);
}}}}}}}}}}}}}}}}}}
}
diff --git a/src/Specific/solinas32_2e171m19/fesubDisplay.log b/src/Specific/solinas32_2e171m19/fesubDisplay.log
index d7529e6ba..c3a1aaa87 100644
--- a/src/Specific/solinas32_2e171m19/fesubDisplay.log
+++ b/src/Specific/solinas32_2e171m19/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((Const 1048574 + x18) - x34), ((Const 1048574 + x19) - x35), ((Const 1048574 + x17) - x33), ((Const 1048574 + x15) - x31), ((Const 1048574 + x13) - x29), ((Const 1048574 + x11) - x27), ((Const 1048574 + x9) - x25), ((Const 1048574 + x7) - x23), ((Const 1048538 + x5) - x21)))
+ (((0xffffe + x18) - x34), ((0xffffe + x19) - x35), ((0xffffe + x17) - x33), ((0xffffe + x15) - x31), ((0xffffe + x13) - x29), ((0xffffe + x11) - x27), ((0xffffe + x9) - x25), ((0xffffe + x7) - x23), ((0xfffda + x5) - x21)))
(x, x0)%core
: 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)
diff --git a/src/Specific/solinas32_2e174m17/fesub.c b/src/Specific/solinas32_2e174m17/fesub.c
index 76d7fcc86..4703a03af 100644
--- a/src/Specific/solinas32_2e174m17/fesub.c
+++ b/src/Specific/solinas32_2e174m17/fesub.c
@@ -17,14 +17,14 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 2097118 + x5) - x21);
- out[1] = ((Const 1048574 + x7) - x23);
- out[2] = ((Const 1048574 + x9) - x25);
- out[3] = ((Const 2097150 + x11) - x27);
- out[4] = ((Const 1048574 + x13) - x29);
- out[5] = ((Const 1048574 + x15) - x31);
- out[6] = ((Const 2097150 + x17) - x33);
- out[7] = ((Const 1048574 + x19) - x35);
- out[8] = ((Const 1048574 + x18) - x34);
+ out[0] = ((0x1fffde + x5) - x21);
+ out[1] = ((0xffffe + x7) - x23);
+ out[2] = ((0xffffe + x9) - x25);
+ out[3] = ((0x1ffffe + x11) - x27);
+ out[4] = ((0xffffe + x13) - x29);
+ out[5] = ((0xffffe + x15) - x31);
+ out[6] = ((0x1ffffe + x17) - x33);
+ out[7] = ((0xffffe + x19) - x35);
+ out[8] = ((0xffffe + x18) - x34);
}}}}}}}}}}}}}}}}}}
}
diff --git a/src/Specific/solinas32_2e174m17/fesubDisplay.log b/src/Specific/solinas32_2e174m17/fesubDisplay.log
index 092c19316..24902e307 100644
--- a/src/Specific/solinas32_2e174m17/fesubDisplay.log
+++ b/src/Specific/solinas32_2e174m17/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((Const 1048574 + x18) - x34), ((Const 1048574 + x19) - x35), ((Const 2097150 + x17) - x33), ((Const 1048574 + x15) - x31), ((Const 1048574 + x13) - x29), ((Const 2097150 + x11) - x27), ((Const 1048574 + x9) - x25), ((Const 1048574 + x7) - x23), ((Const 2097118 + x5) - x21)))
+ (((0xffffe + x18) - x34), ((0xffffe + x19) - x35), ((0x1ffffe + x17) - x33), ((0xffffe + x15) - x31), ((0xffffe + x13) - x29), ((0x1ffffe + x11) - x27), ((0xffffe + x9) - x25), ((0xffffe + x7) - x23), ((0x1fffde + x5) - x21)))
(x, x0)%core
: 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)
diff --git a/src/Specific/solinas32_2e191m19/feadd.c b/src/Specific/solinas32_2e191m19/feadd.c
new file mode 100644
index 000000000..57dd4e1af
--- /dev/null
+++ b/src/Specific/solinas32_2e191m19/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e191m19/feaddDisplay.log b/src/Specific/solinas32_2e191m19/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e191m19/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e191m19/fesub.c b/src/Specific/solinas32_2e191m19/fesub.c
new file mode 100644
index 000000000..34abdaf30
--- /dev/null
+++ b/src/Specific/solinas32_2e191m19/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = ((Const 2097114 + x5) - x23);
+ out[1] = ((0xffffe + x7) - x25);
+ out[2] = ((0xffffe + x9) - x27);
+ out[3] = ((0xffffe + x11) - x29);
+ out[4] = ((0xffffe + x13) - x31);
+ out[5] = ((0xffffe + x15) - x33);
+ out[6] = ((0xffffe + x17) - x35);
+ out[7] = ((0xffffe + x19) - x37);
+ out[8] = ((0xffffe + x21) - x39);
+ out[9] = ((0xffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e191m19/fesubDisplay.log b/src/Specific/solinas32_2e191m19/fesubDisplay.log
new file mode 100644
index 000000000..823ae1fc4
--- /dev/null
+++ b/src/Specific/solinas32_2e191m19/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0xffffe + x20) - x38), ((0xffffe + x21) - x39), ((0xffffe + x19) - x37), ((0xffffe + x17) - x35), ((0xffffe + x15) - x33), ((0xffffe + x13) - x31), ((0xffffe + x11) - x29), ((0xffffe + x9) - x27), ((0xffffe + x7) - x25), ((Const 2097114 + x5) - x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e198m17/fesub.c b/src/Specific/solinas32_2e198m17/fesub.c
index eb2e15147..d591ab209 100644
--- a/src/Specific/solinas32_2e198m17/fesub.c
+++ b/src/Specific/solinas32_2e198m17/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 8388574 + x5) - x21);
+ out[0] = ((0x7fffde + x5) - x21);
out[1] = ((0x7ffffe + x7) - x23);
out[2] = ((0x7ffffe + x9) - x25);
out[3] = ((0x7ffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e198m17/fesubDisplay.log b/src/Specific/solinas32_2e198m17/fesubDisplay.log
index 051231799..16ff09f9d 100644
--- a/src/Specific/solinas32_2e198m17/fesubDisplay.log
+++ b/src/Specific/solinas32_2e198m17/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x7ffffe + x18) - x34), ((0x7ffffe + x19) - x35), ((0x7ffffe + x17) - x33), ((0x7ffffe + x15) - x31), ((0x7ffffe + x13) - x29), ((0x7ffffe + x11) - x27), ((0x7ffffe + x9) - x25), ((0x7ffffe + x7) - x23), ((Const 8388574 + x5) - x21)))
+ (((0x7ffffe + x18) - x34), ((0x7ffffe + x19) - x35), ((0x7ffffe + x17) - x33), ((0x7ffffe + x15) - x31), ((0x7ffffe + x13) - x29), ((0x7ffffe + x11) - x27), ((0x7ffffe + x9) - x25), ((0x7ffffe + x7) - x23), ((0x7fffde + x5) - x21)))
(x, x0)%core
: 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)
diff --git a/src/Specific/solinas32_2e205m45x2e198m1/feadd.c b/src/Specific/solinas32_2e205m45x2e198m1/feadd.c
new file mode 100644
index 000000000..57dd4e1af
--- /dev/null
+++ b/src/Specific/solinas32_2e205m45x2e198m1/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e205m45x2e198m1/feaddDisplay.log b/src/Specific/solinas32_2e205m45x2e198m1/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e205m45x2e198m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e205m45x2e198m1/fesub.c b/src/Specific/solinas32_2e205m45x2e198m1/fesub.c
new file mode 100644
index 000000000..583193f60
--- /dev/null
+++ b/src/Specific/solinas32_2e205m45x2e198m1/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = ((0x3ffffe + x5) - x23);
+ out[1] = ((0x1ffffe + x7) - x25);
+ out[2] = ((0x3ffffe + x9) - x27);
+ out[3] = ((0x1ffffe + x11) - x29);
+ out[4] = ((0x3ffffe + x13) - x31);
+ out[5] = ((0x1ffffe + x15) - x33);
+ out[6] = ((0x3ffffe + x17) - x35);
+ out[7] = ((0x1ffffe + x19) - x37);
+ out[8] = ((0x3ffffe + x21) - x39);
+ out[9] = ((Const 1359870 + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e205m45x2e198m1/fesubDisplay.log b/src/Specific/solinas32_2e205m45x2e198m1/fesubDisplay.log
new file mode 100644
index 000000000..73710dc9d
--- /dev/null
+++ b/src/Specific/solinas32_2e205m45x2e198m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((Const 1359870 + x20) - x38), ((0x3ffffe + x21) - x39), ((0x1ffffe + x19) - x37), ((0x3ffffe + x17) - x35), ((0x1ffffe + x15) - x33), ((0x3ffffe + x13) - x31), ((0x1ffffe + x11) - x29), ((0x3ffffe + x9) - x27), ((0x1ffffe + x7) - x25), ((0x3ffffe + x5) - x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e221m3/feadd.c b/src/Specific/solinas32_2e221m3/feadd.c
new file mode 100644
index 000000000..57dd4e1af
--- /dev/null
+++ b/src/Specific/solinas32_2e221m3/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e221m3/feaddDisplay.log b/src/Specific/solinas32_2e221m3/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e221m3/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e221m3/fesub.c b/src/Specific/solinas32_2e221m3/fesub.c
new file mode 100644
index 000000000..bde8658ed
--- /dev/null
+++ b/src/Specific/solinas32_2e221m3/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = ((Const 16777210 + x5) - x23);
+ out[1] = ((0x7ffffe + x7) - x25);
+ out[2] = ((0x7ffffe + x9) - x27);
+ out[3] = ((0x7ffffe + x11) - x29);
+ out[4] = ((0x7ffffe + x13) - x31);
+ out[5] = ((0x7ffffe + x15) - x33);
+ out[6] = ((0x7ffffe + x17) - x35);
+ out[7] = ((0x7ffffe + x19) - x37);
+ out[8] = ((0x7ffffe + x21) - x39);
+ out[9] = ((0x7ffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e221m3/fesubDisplay.log b/src/Specific/solinas32_2e221m3/fesubDisplay.log
new file mode 100644
index 000000000..290e3f8d4
--- /dev/null
+++ b/src/Specific/solinas32_2e221m3/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0x7ffffe + x20) - x38), ((0x7ffffe + x21) - x39), ((0x7ffffe + x19) - x37), ((0x7ffffe + x17) - x35), ((0x7ffffe + x15) - x33), ((0x7ffffe + x13) - x31), ((0x7ffffe + x11) - x29), ((0x7ffffe + x9) - x27), ((0x7ffffe + x7) - x25), ((Const 16777210 + x5) - x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e222m117/feadd.c b/src/Specific/solinas32_2e222m117/feadd.c
new file mode 100644
index 000000000..57dd4e1af
--- /dev/null
+++ b/src/Specific/solinas32_2e222m117/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e222m117/feaddDisplay.log b/src/Specific/solinas32_2e222m117/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e222m117/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e222m117/fesub.c b/src/Specific/solinas32_2e222m117/fesub.c
new file mode 100644
index 000000000..8a3ae582a
--- /dev/null
+++ b/src/Specific/solinas32_2e222m117/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = ((Const 16776982 + x5) - x23);
+ out[1] = ((0x7ffffe + x7) - x25);
+ out[2] = ((0x7ffffe + x9) - x27);
+ out[3] = ((0x7ffffe + x11) - x29);
+ out[4] = ((0x7ffffe + x13) - x31);
+ out[5] = ((0xfffffe + x15) - x33);
+ out[6] = ((0x7ffffe + x17) - x35);
+ out[7] = ((0x7ffffe + x19) - x37);
+ out[8] = ((0x7ffffe + x21) - x39);
+ out[9] = ((0x7ffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e222m117/fesubDisplay.log b/src/Specific/solinas32_2e222m117/fesubDisplay.log
new file mode 100644
index 000000000..e1d387497
--- /dev/null
+++ b/src/Specific/solinas32_2e222m117/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0x7ffffe + x20) - x38), ((0x7ffffe + x21) - x39), ((0x7ffffe + x19) - x37), ((0x7ffffe + x17) - x35), ((0xfffffe + x15) - x33), ((0x7ffffe + x13) - x31), ((0x7ffffe + x11) - x29), ((0x7ffffe + x9) - x27), ((0x7ffffe + x7) - x25), ((Const 16776982 + x5) - x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e230m27/feadd.c b/src/Specific/solinas32_2e230m27/feadd.c
new file mode 100644
index 000000000..57dd4e1af
--- /dev/null
+++ b/src/Specific/solinas32_2e230m27/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e230m27/feaddDisplay.log b/src/Specific/solinas32_2e230m27/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e230m27/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e230m27/fesub.c b/src/Specific/solinas32_2e230m27/fesub.c
new file mode 100644
index 000000000..7aac9e122
--- /dev/null
+++ b/src/Specific/solinas32_2e230m27/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = ((Const 16777162 + x5) - x23);
+ out[1] = ((0xfffffe + x7) - x25);
+ out[2] = ((0xfffffe + x9) - x27);
+ out[3] = ((0xfffffe + x11) - x29);
+ out[4] = ((0xfffffe + x13) - x31);
+ out[5] = ((0xfffffe + x15) - x33);
+ out[6] = ((0xfffffe + x17) - x35);
+ out[7] = ((0xfffffe + x19) - x37);
+ out[8] = ((0xfffffe + x21) - x39);
+ out[9] = ((0xfffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e230m27/fesubDisplay.log b/src/Specific/solinas32_2e230m27/fesubDisplay.log
new file mode 100644
index 000000000..b9125ad53
--- /dev/null
+++ b/src/Specific/solinas32_2e230m27/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0xfffffe + x20) - x38), ((0xfffffe + x21) - x39), ((0xfffffe + x19) - x37), ((0xfffffe + x17) - x35), ((0xfffffe + x15) - x33), ((0xfffffe + x13) - x31), ((0xfffffe + x11) - x29), ((0xfffffe + x9) - x27), ((0xfffffe + x7) - x25), ((Const 16777162 + x5) - x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e243m9/fesub.c b/src/Specific/solinas32_2e243m9/fesub.c
index 00e5d4f52..51d3a48e3 100644
--- a/src/Specific/solinas32_2e243m9/fesub.c
+++ b/src/Specific/solinas32_2e243m9/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 268435438 + x5) - x21);
+ out[0] = ((0xfffffee + x5) - x21);
out[1] = ((0xffffffe + x7) - x23);
out[2] = ((0xffffffe + x9) - x25);
out[3] = ((0xffffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e243m9/fesubDisplay.log b/src/Specific/solinas32_2e243m9/fesubDisplay.log
index 3efbd3237..c2adfb236 100644
--- a/src/Specific/solinas32_2e243m9/fesubDisplay.log
+++ b/src/Specific/solinas32_2e243m9/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0xffffffe + x18) - x34), ((0xffffffe + x19) - x35), ((0xffffffe + x17) - x33), ((0xffffffe + x15) - x31), ((0xffffffe + x13) - x29), ((0xffffffe + x11) - x27), ((0xffffffe + x9) - x25), ((0xffffffe + x7) - x23), ((Const 268435438 + x5) - x21)))
+ (((0xffffffe + x18) - x34), ((0xffffffe + x19) - x35), ((0xffffffe + x17) - x33), ((0xffffffe + x15) - x31), ((0xffffffe + x13) - x29), ((0xffffffe + x11) - x27), ((0xffffffe + x9) - x25), ((0xffffffe + x7) - x23), ((0xfffffee + x5) - x21)))
(x, x0)%core
: 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)
diff --git a/src/Specific/solinas32_2e251m9/feadd.c b/src/Specific/solinas32_2e251m9/feadd.c
new file mode 100644
index 000000000..57dd4e1af
--- /dev/null
+++ b/src/Specific/solinas32_2e251m9/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e251m9/feaddDisplay.log b/src/Specific/solinas32_2e251m9/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e251m9/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e251m9/fesub.c b/src/Specific/solinas32_2e251m9/fesub.c
new file mode 100644
index 000000000..1a01bec17
--- /dev/null
+++ b/src/Specific/solinas32_2e251m9/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = ((0x7ffffee + x5) - x23);
+ out[1] = ((0x3fffffe + x7) - x25);
+ out[2] = ((0x3fffffe + x9) - x27);
+ out[3] = ((0x3fffffe + x11) - x29);
+ out[4] = ((0x3fffffe + x13) - x31);
+ out[5] = ((0x3fffffe + x15) - x33);
+ out[6] = ((0x3fffffe + x17) - x35);
+ out[7] = ((0x3fffffe + x19) - x37);
+ out[8] = ((0x3fffffe + x21) - x39);
+ out[9] = ((0x3fffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e251m9/fesubDisplay.log b/src/Specific/solinas32_2e251m9/fesubDisplay.log
new file mode 100644
index 000000000..590e5d991
--- /dev/null
+++ b/src/Specific/solinas32_2e251m9/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0x3fffffe + x20) - x38), ((0x3fffffe + x21) - x39), ((0x3fffffe + x19) - x37), ((0x3fffffe + x17) - x35), ((0x3fffffe + x15) - x33), ((0x3fffffe + x13) - x31), ((0x3fffffe + x11) - x29), ((0x3fffffe + x9) - x27), ((0x3fffffe + x7) - x25), ((0x7ffffee + x5) - x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e254m127x2e240m1/feadd.c b/src/Specific/solinas32_2e254m127x2e240m1/feadd.c
new file mode 100644
index 000000000..1763e8727
--- /dev/null
+++ b/src/Specific/solinas32_2e254m127x2e240m1/feadd.c
@@ -0,0 +1,36 @@
+static void feadd(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[11]) {
+ { const uint32_t x22 = 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 x42 = in2[10];
+ { const uint32_t x43 = in2[9];
+ { const uint32_t x41 = in2[8];
+ { const uint32_t x39 = in2[7];
+ { const uint32_t x37 = in2[6];
+ { const uint32_t x35 = in2[5];
+ { const uint32_t x33 = in2[4];
+ { const uint32_t x31 = in2[3];
+ { const uint32_t x29 = in2[2];
+ { const uint32_t x27 = in2[1];
+ { const uint32_t x25 = in2[0];
+ out[0] = (x5 + x25);
+ out[1] = (x7 + x27);
+ out[2] = (x9 + x29);
+ out[3] = (x11 + x31);
+ out[4] = (x13 + x33);
+ out[5] = (x15 + x35);
+ out[6] = (x17 + x37);
+ out[7] = (x19 + x39);
+ out[8] = (x21 + x41);
+ out[9] = (x23 + x43);
+ out[10] = (x22 + x42);
+ }}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e254m127x2e240m1/feaddDisplay.log b/src/Specific/solinas32_2e254m127x2e240m1/feaddDisplay.log
new file mode 100644
index 000000000..433ecbc2e
--- /dev/null
+++ b/src/Specific/solinas32_2e254m127x2e240m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x22, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25))%core,
+ ((x22 + x42), (x23 + x43), (x21 + x41), (x19 + x39), (x17 + x37), (x15 + x35), (x13 + x33), (x11 + x31), (x9 + x29), (x7 + x27), (x5 + x25)))
+(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 → ReturnType (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_2e254m127x2e240m1/fesub.c b/src/Specific/solinas32_2e254m127x2e240m1/fesub.c
new file mode 100644
index 000000000..1fdf14e21
--- /dev/null
+++ b/src/Specific/solinas32_2e254m127x2e240m1/fesub.c
@@ -0,0 +1,36 @@
+static void fesub(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[11]) {
+ { const uint32_t x22 = 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 x42 = in2[10];
+ { const uint32_t x43 = in2[9];
+ { const uint32_t x41 = in2[8];
+ { const uint32_t x39 = in2[7];
+ { const uint32_t x37 = in2[6];
+ { const uint32_t x35 = in2[5];
+ { const uint32_t x33 = in2[4];
+ { const uint32_t x31 = in2[3];
+ { const uint32_t x29 = in2[2];
+ { const uint32_t x27 = in2[1];
+ { const uint32_t x25 = in2[0];
+ out[0] = ((0x1fffffe + x5) - x25);
+ out[1] = ((0xfffffe + x7) - x27);
+ out[2] = ((0xfffffe + x9) - x29);
+ out[3] = ((0xfffffe + x11) - x31);
+ out[4] = ((0xfffffe + x13) - x33);
+ out[5] = ((0xfffffe + x15) - x35);
+ out[6] = ((0xfffffe + x17) - x37);
+ out[7] = ((0xfffffe + x19) - x39);
+ out[8] = ((0xfffffe + x21) - x41);
+ out[9] = ((0xfffffe + x23) - x43);
+ out[10] = ((Const 16647166 + x22) - x42);
+ }}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e254m127x2e240m1/fesubDisplay.log b/src/Specific/solinas32_2e254m127x2e240m1/fesubDisplay.log
new file mode 100644
index 000000000..840a685b5
--- /dev/null
+++ b/src/Specific/solinas32_2e254m127x2e240m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x22, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25))%core,
+ (((Const 16647166 + x22) - x42), ((0xfffffe + x23) - x43), ((0xfffffe + x21) - x41), ((0xfffffe + x19) - x39), ((0xfffffe + x17) - x37), ((0xfffffe + x15) - x35), ((0xfffffe + x13) - x33), ((0xfffffe + x11) - x31), ((0xfffffe + x9) - x29), ((0xfffffe + x7) - x27), ((0x1fffffe + x5) - x25)))
+(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 → ReturnType (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_2e255m19/feadd.c b/src/Specific/solinas32_2e255m19/feadd.c
new file mode 100644
index 000000000..57dd4e1af
--- /dev/null
+++ b/src/Specific/solinas32_2e255m19/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e255m19/feaddDisplay.log b/src/Specific/solinas32_2e255m19/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e255m19/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e255m19/fesub.c b/src/Specific/solinas32_2e255m19/fesub.c
new file mode 100644
index 000000000..b92ed2bbe
--- /dev/null
+++ b/src/Specific/solinas32_2e255m19/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) {
+ { const uint32_t x20 = 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 x38 = in2[9];
+ { const uint32_t x39 = in2[8];
+ { const uint32_t x37 = in2[7];
+ { const uint32_t x35 = in2[6];
+ { const uint32_t x33 = in2[5];
+ { const uint32_t x31 = in2[4];
+ { const uint32_t x29 = in2[3];
+ { const uint32_t x27 = in2[2];
+ { const uint32_t x25 = in2[1];
+ { const uint32_t x23 = in2[0];
+ out[0] = ((0x7ffffda + x5) - x23);
+ out[1] = ((0x3fffffe + x7) - x25);
+ out[2] = ((0x7fffffe + x9) - x27);
+ out[3] = ((0x3fffffe + x11) - x29);
+ out[4] = ((0x7fffffe + x13) - x31);
+ out[5] = ((0x3fffffe + x15) - x33);
+ out[6] = ((0x7fffffe + x17) - x35);
+ out[7] = ((0x3fffffe + x19) - x37);
+ out[8] = ((0x7fffffe + x21) - x39);
+ out[9] = ((0x3fffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e255m19/fesubDisplay.log b/src/Specific/solinas32_2e255m19/fesubDisplay.log
new file mode 100644
index 000000000..bb18a6a51
--- /dev/null
+++ b/src/Specific/solinas32_2e255m19/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0x3fffffe + x20) - x38), ((0x7fffffe + x21) - x39), ((0x3fffffe + x19) - x37), ((0x7fffffe + x17) - x35), ((0x3fffffe + x15) - x33), ((0x7fffffe + x13) - x31), ((0x3fffffe + x11) - x29), ((0x7fffffe + x9) - x27), ((0x3fffffe + x7) - x25), ((0x7ffffda + x5) - x23)))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/solinas32_2e255m2e4m2e1m1/fesub.c b/src/Specific/solinas32_2e255m2e4m2e1m1/fesub.c
index c7877fc45..e5f40349c 100644
--- a/src/Specific/solinas32_2e255m2e4m2e1m1/fesub.c
+++ b/src/Specific/solinas32_2e255m2e4m2e1m1/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 1073741786 + x5) - x21);
+ out[0] = ((0x3fffffda + x5) - x21);
out[1] = ((0x1ffffffe + x7) - x23);
out[2] = ((0x1ffffffe + x9) - x25);
out[3] = ((0x3ffffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e255m2e4m2e1m1/fesubDisplay.log b/src/Specific/solinas32_2e255m2e4m2e1m1/fesubDisplay.log
index 46aa32e70..fa36e6c35 100644
--- a/src/Specific/solinas32_2e255m2e4m2e1m1/fesubDisplay.log
+++ b/src/Specific/solinas32_2e255m2e4m2e1m1/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x1ffffffe + x18) - x34), ((0x1ffffffe + x19) - x35), ((0x3ffffffe + x17) - x33), ((0x1ffffffe + x15) - x31), ((0x1ffffffe + x13) - x29), ((0x3ffffffe + x11) - x27), ((0x1ffffffe + x9) - x25), ((0x1ffffffe + x7) - x23), ((Const 1073741786 + x5) - x21)))
+ (((0x1ffffffe + x18) - x34), ((0x1ffffffe + x19) - x35), ((0x3ffffffe + x17) - x33), ((0x1ffffffe + x15) - x31), ((0x1ffffffe + x13) - x29), ((0x3ffffffe + x11) - x27), ((0x1ffffffe + x9) - x25), ((0x1ffffffe + x7) - x23), ((0x3fffffda + x5) - x21)))
(x, x0)%core
: 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)
diff --git a/src/Specific/solinas64_2e382m105/feadd.c b/src/Specific/solinas64_2e382m105/feadd.c
new file mode 100644
index 000000000..df991e375
--- /dev/null
+++ b/src/Specific/solinas64_2e382m105/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e382m105/feaddDisplay.log b/src/Specific/solinas64_2e382m105/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e382m105/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e382m105/fesub.c b/src/Specific/solinas64_2e382m105/fesub.c
new file mode 100644
index 000000000..7a07fe4cd
--- /dev/null
+++ b/src/Specific/solinas64_2e382m105/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = ((Const 1099511627566 + x5) - x23);
+ out[1] = ((0x7ffffffffe + x7) - x25);
+ out[2] = ((0x7ffffffffe + x9) - x27);
+ out[3] = ((0x7ffffffffe + x11) - x29);
+ out[4] = ((0x7ffffffffe + x13) - x31);
+ out[5] = ((0xfffffffffe + x15) - x33);
+ out[6] = ((0x7ffffffffe + x17) - x35);
+ out[7] = ((0x7ffffffffe + x19) - x37);
+ out[8] = ((0x7ffffffffe + x21) - x39);
+ out[9] = ((0x7ffffffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e382m105/fesubDisplay.log b/src/Specific/solinas64_2e382m105/fesubDisplay.log
new file mode 100644
index 000000000..960728d51
--- /dev/null
+++ b/src/Specific/solinas64_2e382m105/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0x7ffffffffe + x20) - x38), ((0x7ffffffffe + x21) - x39), ((0x7ffffffffe + x19) - x37), ((0x7ffffffffe + x17) - x35), ((0xfffffffffe + x15) - x33), ((0x7ffffffffe + x13) - x31), ((0x7ffffffffe + x11) - x29), ((0x7ffffffffe + x9) - x27), ((0x7ffffffffe + x7) - x25), ((Const 1099511627566 + x5) - x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e414m17/fesub.c b/src/Specific/solinas64_2e414m17/fesub.c
index 0aa9df3a9..a655dc081 100644
--- a/src/Specific/solinas64_2e414m17/fesub.c
+++ b/src/Specific/solinas64_2e414m17/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint64_t out[9], const uint64_t in1[9], const uint64_t in2[9])
{ const uint64_t x25 = in2[2];
{ const uint64_t x23 = in2[1];
{ const uint64_t x21 = in2[0];
- out[0] = ((Const 140737488355294 + x5) - x21);
+ out[0] = ((0x7fffffffffde + x5) - x21);
out[1] = ((0x7ffffffffffe + x7) - x23);
out[2] = ((0x7ffffffffffe + x9) - x25);
out[3] = ((0x7ffffffffffe + x11) - x27);
diff --git a/src/Specific/solinas64_2e414m17/fesubDisplay.log b/src/Specific/solinas64_2e414m17/fesubDisplay.log
index ade644353..b87ea5ac5 100644
--- a/src/Specific/solinas64_2e414m17/fesubDisplay.log
+++ b/src/Specific/solinas64_2e414m17/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x7ffffffffffe + x18) - x34), ((0x7ffffffffffe + x19) - x35), ((0x7ffffffffffe + x17) - x33), ((0x7ffffffffffe + x15) - x31), ((0x7ffffffffffe + x13) - x29), ((0x7ffffffffffe + x11) - x27), ((0x7ffffffffffe + x9) - x25), ((0x7ffffffffffe + x7) - x23), ((Const 140737488355294 + x5) - x21)))
+ (((0x7ffffffffffe + x18) - x34), ((0x7ffffffffffe + x19) - x35), ((0x7ffffffffffe + x17) - x33), ((0x7ffffffffffe + x15) - x31), ((0x7ffffffffffe + x13) - x29), ((0x7ffffffffffe + x11) - x27), ((0x7ffffffffffe + x9) - x25), ((0x7ffffffffffe + x7) - x23), ((0x7fffffffffde + x5) - x21)))
(x, x0)%core
: word64 * word64 * 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 * uint64_t)
diff --git a/src/Specific/solinas64_2e489m21/fesub.c b/src/Specific/solinas64_2e489m21/fesub.c
index 04c0bf832..63e733cb7 100644
--- a/src/Specific/solinas64_2e489m21/fesub.c
+++ b/src/Specific/solinas64_2e489m21/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint64_t out[9], const uint64_t in1[9], const uint64_t in2[9])
{ const uint64_t x25 = in2[2];
{ const uint64_t x23 = in2[1];
{ const uint64_t x21 = in2[0];
- out[0] = ((Const 72057594037927894 + x5) - x21);
+ out[0] = ((0xffffffffffffd6 + x5) - x21);
out[1] = ((0x7ffffffffffffe + x7) - x23);
out[2] = ((0x7ffffffffffffe + x9) - x25);
out[3] = ((0xfffffffffffffe + x11) - x27);
diff --git a/src/Specific/solinas64_2e489m21/fesubDisplay.log b/src/Specific/solinas64_2e489m21/fesubDisplay.log
index 344635c53..c0892d044 100644
--- a/src/Specific/solinas64_2e489m21/fesubDisplay.log
+++ b/src/Specific/solinas64_2e489m21/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x7ffffffffffffe + x18) - x34), ((0x7ffffffffffffe + x19) - x35), ((0xfffffffffffffe + x17) - x33), ((0x7ffffffffffffe + x15) - x31), ((0x7ffffffffffffe + x13) - x29), ((0xfffffffffffffe + x11) - x27), ((0x7ffffffffffffe + x9) - x25), ((0x7ffffffffffffe + x7) - x23), ((Const 72057594037927894 + x5) - x21)))
+ (((0x7ffffffffffffe + x18) - x34), ((0x7ffffffffffffe + x19) - x35), ((0xfffffffffffffe + x17) - x33), ((0x7ffffffffffffe + x15) - x31), ((0x7ffffffffffffe + x13) - x29), ((0xfffffffffffffe + x11) - x27), ((0x7ffffffffffffe + x9) - x25), ((0x7ffffffffffffe + x7) - x23), ((0xffffffffffffd6 + x5) - x21)))
(x, x0)%core
: word64 * word64 * 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 * uint64_t)
diff --git a/src/Specific/solinas64_2e495m31/fesub.c b/src/Specific/solinas64_2e495m31/fesub.c
index 1b21b6625..dbdb67e21 100644
--- a/src/Specific/solinas64_2e495m31/fesub.c
+++ b/src/Specific/solinas64_2e495m31/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint64_t out[9], const uint64_t in1[9], const uint64_t in2[9])
{ const uint64_t x25 = in2[2];
{ const uint64_t x23 = in2[1];
{ const uint64_t x21 = in2[0];
- out[0] = ((Const 72057594037927874 + x5) - x21);
+ out[0] = ((0xffffffffffffc2 + x5) - x21);
out[1] = ((0xfffffffffffffe + x7) - x23);
out[2] = ((0xfffffffffffffe + x9) - x25);
out[3] = ((0xfffffffffffffe + x11) - x27);
diff --git a/src/Specific/solinas64_2e495m31/fesubDisplay.log b/src/Specific/solinas64_2e495m31/fesubDisplay.log
index 38dbcb96e..c24c0f28a 100644
--- a/src/Specific/solinas64_2e495m31/fesubDisplay.log
+++ b/src/Specific/solinas64_2e495m31/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0xfffffffffffffe + x18) - x34), ((0xfffffffffffffe + x19) - x35), ((0xfffffffffffffe + x17) - x33), ((0xfffffffffffffe + x15) - x31), ((0xfffffffffffffe + x13) - x29), ((0xfffffffffffffe + x11) - x27), ((0xfffffffffffffe + x9) - x25), ((0xfffffffffffffe + x7) - x23), ((Const 72057594037927874 + x5) - x21)))
+ (((0xfffffffffffffe + x18) - x34), ((0xfffffffffffffe + x19) - x35), ((0xfffffffffffffe + x17) - x33), ((0xfffffffffffffe + x15) - x31), ((0xfffffffffffffe + x13) - x29), ((0xfffffffffffffe + x11) - x27), ((0xfffffffffffffe + x9) - x25), ((0xfffffffffffffe + x7) - x23), ((0xffffffffffffc2 + x5) - x21)))
(x, x0)%core
: word64 * word64 * 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 * uint64_t)
diff --git a/src/Specific/solinas64_2e510m290x2e496m1/feadd.c b/src/Specific/solinas64_2e510m290x2e496m1/feadd.c
new file mode 100644
index 000000000..df991e375
--- /dev/null
+++ b/src/Specific/solinas64_2e510m290x2e496m1/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e510m290x2e496m1/feaddDisplay.log b/src/Specific/solinas64_2e510m290x2e496m1/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e510m290x2e496m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e510m290x2e496m1/fesub.c b/src/Specific/solinas64_2e510m290x2e496m1/fesub.c
new file mode 100644
index 000000000..8fdc0e205
--- /dev/null
+++ b/src/Specific/solinas64_2e510m290x2e496m1/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = ((0xffffffffffffe + x5) - x23);
+ out[1] = ((0xffffffffffffe + x7) - x25);
+ out[2] = ((0xffffffffffffe + x9) - x27);
+ out[3] = ((0xffffffffffffe + x11) - x29);
+ out[4] = ((0xffffffffffffe + x13) - x31);
+ out[5] = ((0xffffffffffffe + x15) - x33);
+ out[6] = ((0xffffffffffffe + x17) - x35);
+ out[7] = ((0xffffffffffffe + x19) - x37);
+ out[8] = ((0xffffffffffffe + x21) - x39);
+ out[9] = ((Const 4423885034356734 + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e510m290x2e496m1/fesubDisplay.log b/src/Specific/solinas64_2e510m290x2e496m1/fesubDisplay.log
new file mode 100644
index 000000000..48656a92f
--- /dev/null
+++ b/src/Specific/solinas64_2e510m290x2e496m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((Const 4423885034356734 + x20) - x38), ((0xffffffffffffe + x21) - x39), ((0xffffffffffffe + x19) - x37), ((0xffffffffffffe + x17) - x35), ((0xffffffffffffe + x15) - x33), ((0xffffffffffffe + x13) - x31), ((0xffffffffffffe + x11) - x29), ((0xffffffffffffe + x9) - x27), ((0xffffffffffffe + x7) - x25), ((0xffffffffffffe + x5) - x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e511m187/feadd.c b/src/Specific/solinas64_2e511m187/feadd.c
new file mode 100644
index 000000000..df991e375
--- /dev/null
+++ b/src/Specific/solinas64_2e511m187/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e511m187/feaddDisplay.log b/src/Specific/solinas64_2e511m187/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e511m187/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e511m187/fesub.c b/src/Specific/solinas64_2e511m187/fesub.c
new file mode 100644
index 000000000..910b57602
--- /dev/null
+++ b/src/Specific/solinas64_2e511m187/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = ((Const 9007199254740618 + x5) - x23);
+ out[1] = ((0xffffffffffffe + x7) - x25);
+ out[2] = ((0xffffffffffffe + x9) - x27);
+ out[3] = ((0xffffffffffffe + x11) - x29);
+ out[4] = ((0xffffffffffffe + x13) - x31);
+ out[5] = ((0xffffffffffffe + x15) - x33);
+ out[6] = ((0xffffffffffffe + x17) - x35);
+ out[7] = ((0xffffffffffffe + x19) - x37);
+ out[8] = ((0xffffffffffffe + x21) - x39);
+ out[9] = ((0xffffffffffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e511m187/fesubDisplay.log b/src/Specific/solinas64_2e511m187/fesubDisplay.log
new file mode 100644
index 000000000..69fbf1fc5
--- /dev/null
+++ b/src/Specific/solinas64_2e511m187/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0xffffffffffffe + x20) - x38), ((0xffffffffffffe + x21) - x39), ((0xffffffffffffe + x19) - x37), ((0xffffffffffffe + x17) - x35), ((0xffffffffffffe + x15) - x33), ((0xffffffffffffe + x13) - x31), ((0xffffffffffffe + x11) - x29), ((0xffffffffffffe + x9) - x27), ((0xffffffffffffe + x7) - x25), ((Const 9007199254740618 + x5) - x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e511m481/feadd.c b/src/Specific/solinas64_2e511m481/feadd.c
new file mode 100644
index 000000000..df991e375
--- /dev/null
+++ b/src/Specific/solinas64_2e511m481/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e511m481/feaddDisplay.log b/src/Specific/solinas64_2e511m481/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e511m481/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e511m481/fesub.c b/src/Specific/solinas64_2e511m481/fesub.c
new file mode 100644
index 000000000..1ee8b94fb
--- /dev/null
+++ b/src/Specific/solinas64_2e511m481/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = ((Const 9007199254740030 + x5) - x23);
+ out[1] = ((0xffffffffffffe + x7) - x25);
+ out[2] = ((0xffffffffffffe + x9) - x27);
+ out[3] = ((0xffffffffffffe + x11) - x29);
+ out[4] = ((0xffffffffffffe + x13) - x31);
+ out[5] = ((0xffffffffffffe + x15) - x33);
+ out[6] = ((0xffffffffffffe + x17) - x35);
+ out[7] = ((0xffffffffffffe + x19) - x37);
+ out[8] = ((0xffffffffffffe + x21) - x39);
+ out[9] = ((0xffffffffffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e511m481/fesubDisplay.log b/src/Specific/solinas64_2e511m481/fesubDisplay.log
new file mode 100644
index 000000000..c5d4a9efe
--- /dev/null
+++ b/src/Specific/solinas64_2e511m481/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0xffffffffffffe + x20) - x38), ((0xffffffffffffe + x21) - x39), ((0xffffffffffffe + x19) - x37), ((0xffffffffffffe + x17) - x35), ((0xffffffffffffe + x15) - x33), ((0xffffffffffffe + x13) - x31), ((0xffffffffffffe + x11) - x29), ((0xffffffffffffe + x9) - x27), ((0xffffffffffffe + x7) - x25), ((Const 9007199254740030 + x5) - x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e512m491x2e496m1/feadd.c b/src/Specific/solinas64_2e512m491x2e496m1/feadd.c
new file mode 100644
index 000000000..df991e375
--- /dev/null
+++ b/src/Specific/solinas64_2e512m491x2e496m1/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e512m491x2e496m1/feaddDisplay.log b/src/Specific/solinas64_2e512m491x2e496m1/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e512m491x2e496m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e512m491x2e496m1/fesub.c b/src/Specific/solinas64_2e512m491x2e496m1/fesub.c
new file mode 100644
index 000000000..15300a2aa
--- /dev/null
+++ b/src/Specific/solinas64_2e512m491x2e496m1/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = ((0x1ffffffffffffe + x5) - x23);
+ out[1] = ((0xffffffffffffe + x7) - x25);
+ out[2] = ((0xffffffffffffe + x9) - x27);
+ out[3] = ((0xffffffffffffe + x11) - x29);
+ out[4] = ((0xffffffffffffe + x13) - x31);
+ out[5] = ((0x1ffffffffffffe + x15) - x33);
+ out[6] = ((0xffffffffffffe + x17) - x35);
+ out[7] = ((0xffffffffffffe + x19) - x37);
+ out[8] = ((0xffffffffffffe + x21) - x39);
+ out[9] = ((Const 4469858364293118 + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e512m491x2e496m1/fesubDisplay.log b/src/Specific/solinas64_2e512m491x2e496m1/fesubDisplay.log
new file mode 100644
index 000000000..ab11c7015
--- /dev/null
+++ b/src/Specific/solinas64_2e512m491x2e496m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((Const 4469858364293118 + x20) - x38), ((0xffffffffffffe + x21) - x39), ((0xffffffffffffe + x19) - x37), ((0xffffffffffffe + x17) - x35), ((0x1ffffffffffffe + x15) - x33), ((0xffffffffffffe + x13) - x31), ((0xffffffffffffe + x11) - x29), ((0xffffffffffffe + x9) - x27), ((0xffffffffffffe + x7) - x25), ((0x1ffffffffffffe + x5) - x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e512m569/feadd.c b/src/Specific/solinas64_2e512m569/feadd.c
new file mode 100644
index 000000000..df991e375
--- /dev/null
+++ b/src/Specific/solinas64_2e512m569/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e512m569/feaddDisplay.log b/src/Specific/solinas64_2e512m569/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e512m569/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e512m569/fesub.c b/src/Specific/solinas64_2e512m569/fesub.c
new file mode 100644
index 000000000..cb3077371
--- /dev/null
+++ b/src/Specific/solinas64_2e512m569/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = ((Const 9007199254739854 + x5) - x23);
+ out[1] = ((0xffffffffffffe + x7) - x25);
+ out[2] = ((0xffffffffffffe + x9) - x27);
+ out[3] = ((0xffffffffffffe + x11) - x29);
+ out[4] = ((0xffffffffffffe + x13) - x31);
+ out[5] = ((0x1ffffffffffffe + x15) - x33);
+ out[6] = ((0xffffffffffffe + x17) - x35);
+ out[7] = ((0xffffffffffffe + x19) - x37);
+ out[8] = ((0xffffffffffffe + x21) - x39);
+ out[9] = ((0xffffffffffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e512m569/fesubDisplay.log b/src/Specific/solinas64_2e512m569/fesubDisplay.log
new file mode 100644
index 000000000..8471d38e7
--- /dev/null
+++ b/src/Specific/solinas64_2e512m569/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0xffffffffffffe + x20) - x38), ((0xffffffffffffe + x21) - x39), ((0xffffffffffffe + x19) - x37), ((0xffffffffffffe + x17) - x35), ((0x1ffffffffffffe + x15) - x33), ((0xffffffffffffe + x13) - x31), ((0xffffffffffffe + x11) - x29), ((0xffffffffffffe + x9) - x27), ((0xffffffffffffe + x7) - x25), ((Const 9007199254739854 + x5) - x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e521m1/feadd.c b/src/Specific/solinas64_2e521m1/feadd.c
new file mode 100644
index 000000000..df991e375
--- /dev/null
+++ b/src/Specific/solinas64_2e521m1/feadd.c
@@ -0,0 +1,33 @@
+static void feadd(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = (x5 + x23);
+ out[1] = (x7 + x25);
+ out[2] = (x9 + x27);
+ out[3] = (x11 + x29);
+ out[4] = (x13 + x31);
+ out[5] = (x15 + x33);
+ out[6] = (x17 + x35);
+ out[7] = (x19 + x37);
+ out[8] = (x21 + x39);
+ out[9] = (x20 + x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e521m1/feaddDisplay.log b/src/Specific/solinas64_2e521m1/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e521m1/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e521m1/fesub.c b/src/Specific/solinas64_2e521m1/fesub.c
new file mode 100644
index 000000000..4557332c9
--- /dev/null
+++ b/src/Specific/solinas64_2e521m1/fesub.c
@@ -0,0 +1,33 @@
+static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[10]) {
+ { const uint64_t x20 = in1[9];
+ { const uint64_t x21 = in1[8];
+ { const uint64_t x19 = 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 x38 = in2[9];
+ { const uint64_t x39 = in2[8];
+ { const uint64_t x37 = in2[7];
+ { const uint64_t x35 = in2[6];
+ { const uint64_t x33 = in2[5];
+ { const uint64_t x31 = in2[4];
+ { const uint64_t x29 = in2[3];
+ { const uint64_t x27 = in2[2];
+ { const uint64_t x25 = in2[1];
+ { const uint64_t x23 = in2[0];
+ out[0] = ((0x3ffffffffffffe + x5) - x23);
+ out[1] = ((0x1ffffffffffffe + x7) - x25);
+ out[2] = ((0x1ffffffffffffe + x9) - x27);
+ out[3] = ((0x1ffffffffffffe + x11) - x29);
+ out[4] = ((0x1ffffffffffffe + x13) - x31);
+ out[5] = ((0x1ffffffffffffe + x15) - x33);
+ out[6] = ((0x1ffffffffffffe + x17) - x35);
+ out[7] = ((0x1ffffffffffffe + x19) - x37);
+ out[8] = ((0x1ffffffffffffe + x21) - x39);
+ out[9] = ((0x1ffffffffffffe + x20) - x38);
+ }}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e521m1/fesubDisplay.log b/src/Specific/solinas64_2e521m1/fesubDisplay.log
new file mode 100644
index 000000000..d3c4adbc3
--- /dev/null
+++ b/src/Specific/solinas64_2e521m1/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0x1ffffffffffffe + x20) - x38), ((0x1ffffffffffffe + x21) - x39), ((0x1ffffffffffffe + x19) - x37), ((0x1ffffffffffffe + x17) - x35), ((0x1ffffffffffffe + x15) - x33), ((0x1ffffffffffffe + x13) - x31), ((0x1ffffffffffffe + x11) - x29), ((0x1ffffffffffffe + x9) - x27), ((0x1ffffffffffffe + x7) - x25), ((0x3ffffffffffffe + x5) - x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * 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 * uint64_t * uint64_t)