aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-10-29 17:43:06 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-10-29 17:43:06 -0400
commit223e4cce592ff5bce35463b13b084c91028c6bd9 (patch)
tree423dbd1253559f67f3a7c59d882c9bb4d8d74ab7 /src
parent4ebf0031d039f3ef68eb1a121b75c044d6ae1206 (diff)
Update display logs
Diffstat (limited to 'src')
-rw-r--r--src/Specific/NISTP256/AMD128/fenzDisplay.log14
-rw-r--r--src/Specific/NISTP256/AMD64/fenzDisplay.log14
-rw-r--r--src/Specific/X25519/C32/femulDisplay.log10
-rw-r--r--src/Specific/X25519/C32/fesquareDisplay.log10
-rw-r--r--src/Specific/montgomery32_2e192m2e64m1/femulDisplay.log24
-rw-r--r--src/Specific/montgomery32_2e205m45x2e198m1/feaddDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e205m45x2e198m1/femulDisplay.log328
-rw-r--r--src/Specific/montgomery32_2e205m45x2e198m1/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e205m45x2e198m1/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e216m2e108m1/feaddDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e216m2e108m1/femulDisplay.log328
-rw-r--r--src/Specific/montgomery32_2e216m2e108m1/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e216m2e108m1/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e221m3/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e222m117/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e222m117/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e224m2e96p1/femulDisplay.log40
-rw-r--r--src/Specific/montgomery32_2e224m2e96p1/feoppDisplay.log10
-rw-r--r--src/Specific/montgomery32_2e224m2e96p1/fesubDisplay.log10
-rw-r--r--src/Specific/montgomery32_2e226m5/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e230m27/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e235m15/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e243m9/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e251m9/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e254m127x2e240m1/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e254m127x2e240m1/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e254m127x2e240m1/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e255m19/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e255m2e4m2e1m1/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e255m2e4m2e1m1/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e255m2e4m2e1m1/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e255m765/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e256m189/feaddDisplay.log2
-rw-r--r--src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery32_2e256m2e32m977/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e256m2e32m977/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e256m2e32m977/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e256m88x2e240m1/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e256m88x2e240m1/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e256m88x2e240m1/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery32_2e266m3/feaddDisplay.log35
-rw-r--r--src/Specific/montgomery32_2e285m9/feaddDisplay.log35
-rw-r--r--src/Specific/montgomery64_2e322m2e161m1/femulDisplay.log246
-rw-r--r--src/Specific/montgomery64_2e379m19/femulDisplay.log252
-rw-r--r--src/Specific/montgomery64_2e383m187/femulDisplay.log252
-rw-r--r--src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/fenzDisplay.log14
-rw-r--r--src/Specific/montgomery64_2e384m317/femulDisplay.log252
-rw-r--r--src/Specific/montgomery64_2e389m21/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e389m21/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e401m31/feaddDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e401m31/femulDisplay.log335
-rw-r--r--src/Specific/montgomery64_2e401m31/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e401m31/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e413m21/feaddDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e413m21/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e413m21/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e414m17/feaddDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e414m17/femulDisplay.log335
-rw-r--r--src/Specific/montgomery64_2e414m17/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e414m17/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e416m2e208m1/feaddDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e416m2e208m1/femulDisplay.log328
-rw-r--r--src/Specific/montgomery64_2e416m2e208m1/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e416m2e208m1/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e444m17/feaddDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e444m17/femulDisplay.log335
-rw-r--r--src/Specific/montgomery64_2e444m17/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e444m17/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e448m2e224m1/feaddDisplay.log2
-rw-r--r--src/Specific/montgomery64_2e448m2e224m1/femulDisplay.log328
-rw-r--r--src/Specific/montgomery64_2e448m2e224m1/feoppDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e448m2e224m1/fesubDisplay.log29
-rw-r--r--src/Specific/montgomery64_2e450m2e225m1/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e450m2e225m1/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e450m2e225m1/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e452m3/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e468m17/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e468m17/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e468m17/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e480m2e240m1/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e480m2e240m1/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e480m2e240m1/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e488m17/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e488m17/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e488m17/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e489m21/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e489m21/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e489m21/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e495m31/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e495m31/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e495m31/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e510m290x2e496m1/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e510m290x2e496m1/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e511m187/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e511m187/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e511m187/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e511m481/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e511m481/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e511m481/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e512m491x2e496m1/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e512m491x2e496m1/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e512m569/feaddDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e512m569/feoppDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e512m569/fesubDisplay.log32
-rw-r--r--src/Specific/montgomery64_2e521m1/feaddDisplay.log35
-rw-r--r--src/Specific/solinas32_2e137m13/femulDisplay.log60
-rw-r--r--src/Specific/solinas32_2e137m13/fesquareDisplay.log60
-rw-r--r--src/Specific/solinas32_2e137m13/freezeDisplay.log16
-rw-r--r--src/Specific/solinas32_2e165m25/femulDisplay.log66
-rw-r--r--src/Specific/solinas32_2e165m25/fesquareDisplay.log66
-rw-r--r--src/Specific/solinas32_2e165m25/freezeDisplay.log18
-rw-r--r--src/Specific/solinas32_2e171m19/femulDisplay.log66
-rw-r--r--src/Specific/solinas32_2e171m19/fesquareDisplay.log66
-rw-r--r--src/Specific/solinas32_2e171m19/freezeDisplay.log18
-rw-r--r--src/Specific/solinas32_2e174m17/femulDisplay.log66
-rw-r--r--src/Specific/solinas32_2e174m17/fesquareDisplay.log66
-rw-r--r--src/Specific/solinas32_2e174m17/freezeDisplay.log18
-rw-r--r--src/Specific/solinas32_2e192m2e64m1/femulDisplay.log55
-rw-r--r--src/Specific/solinas32_2e192m2e64m1/fesquareDisplay.log55
-rw-r--r--src/Specific/solinas32_2e192m2e64m1/freezeDisplay.log16
-rw-r--r--src/Specific/solinas32_2e194m33/femulDisplay.log98
-rw-r--r--src/Specific/solinas32_2e194m33/fesquareDisplay.log98
-rw-r--r--src/Specific/solinas32_2e194m33/freezeDisplay.log70
-rw-r--r--src/Specific/solinas32_2e198m17/femulDisplay.log66
-rw-r--r--src/Specific/solinas32_2e198m17/fesquareDisplay.log66
-rw-r--r--src/Specific/solinas32_2e198m17/freezeDisplay.log18
-rw-r--r--src/Specific/solinas32_2e212m29/femulDisplay.log90
-rw-r--r--src/Specific/solinas32_2e212m29/fesquareDisplay.log90
-rw-r--r--src/Specific/solinas32_2e212m29/freezeDisplay.log64
-rw-r--r--src/Specific/solinas32_2e216m2e108m1/femulDisplay.log61
-rw-r--r--src/Specific/solinas32_2e216m2e108m1/fesquareDisplay.log61
-rw-r--r--src/Specific/solinas32_2e216m2e108m1/freezeDisplay.log16
-rw-r--r--src/Specific/solinas32_2e224m2e96p1/freezeDisplay.log12
-rw-r--r--src/Specific/solinas32_2e226m5/femulDisplay.log86
-rw-r--r--src/Specific/solinas32_2e226m5/fesquareDisplay.log86
-rw-r--r--src/Specific/solinas32_2e226m5/freezeDisplay.log61
-rw-r--r--src/Specific/solinas32_2e235m15/femulDisplay.log94
-rw-r--r--src/Specific/solinas32_2e235m15/fesquareDisplay.log94
-rw-r--r--src/Specific/solinas32_2e235m15/freezeDisplay.log67
-rw-r--r--src/Specific/solinas32_2e243m9/femulDisplay.log98
-rw-r--r--src/Specific/solinas32_2e243m9/fesquareDisplay.log98
-rw-r--r--src/Specific/solinas32_2e243m9/freezeDisplay.log70
-rw-r--r--src/Specific/solinas32_2e255m2e4m2e1m1/femulDisplay.log97
-rw-r--r--src/Specific/solinas32_2e255m2e4m2e1m1/fesquareDisplay.log97
-rw-r--r--src/Specific/solinas32_2e255m2e4m2e1m1/freezeDisplay.log18
-rw-r--r--src/Specific/solinas64_2e369m25/femulDisplay.log60
-rw-r--r--src/Specific/solinas64_2e369m25/fesquareDisplay.log60
-rw-r--r--src/Specific/solinas64_2e369m25/freezeDisplay.log16
-rw-r--r--src/Specific/solinas64_2e384m2e128m2e96p2e32m1/freezeDisplay.log14
-rw-r--r--src/Specific/solinas64_2e384m317/femulDisplay.log60
-rw-r--r--src/Specific/solinas64_2e384m317/fesquareDisplay.log60
-rw-r--r--src/Specific/solinas64_2e384m317/freezeDisplay.log16
-rw-r--r--src/Specific/solinas64_2e384m5x2e368m1/freezeDisplay.log32
-rw-r--r--src/Specific/solinas64_2e384m79x2e376m1/freezeDisplay.log32
-rw-r--r--src/Specific/solinas64_2e401m31/femulDisplay.log60
-rw-r--r--src/Specific/solinas64_2e401m31/fesquareDisplay.log60
-rw-r--r--src/Specific/solinas64_2e401m31/freezeDisplay.log16
-rw-r--r--src/Specific/solinas64_2e414m17/femulDisplay.log66
-rw-r--r--src/Specific/solinas64_2e414m17/fesquareDisplay.log66
-rw-r--r--src/Specific/solinas64_2e414m17/freezeDisplay.log18
-rw-r--r--src/Specific/solinas64_2e416m2e208m1/femulDisplay.log61
-rw-r--r--src/Specific/solinas64_2e416m2e208m1/fesquareDisplay.log61
-rw-r--r--src/Specific/solinas64_2e416m2e208m1/freezeDisplay.log16
-rw-r--r--src/Specific/solinas64_2e444m17/femulDisplay.log86
-rw-r--r--src/Specific/solinas64_2e444m17/fesquareDisplay.log86
-rw-r--r--src/Specific/solinas64_2e444m17/freezeDisplay.log61
-rw-r--r--src/Specific/solinas64_2e448m2e224m1/femulDisplay.log61
-rw-r--r--src/Specific/solinas64_2e448m2e224m1/fesquareDisplay.log61
-rw-r--r--src/Specific/solinas64_2e448m2e224m1/freezeDisplay.log16
-rw-r--r--src/Specific/solinas64_2e450m2e225m1/femulDisplay.log61
-rw-r--r--src/Specific/solinas64_2e450m2e225m1/fesquareDisplay.log61
-rw-r--r--src/Specific/solinas64_2e450m2e225m1/freezeDisplay.log61
-rw-r--r--src/Specific/solinas64_2e452m3/femulDisplay.log90
-rw-r--r--src/Specific/solinas64_2e452m3/fesquareDisplay.log90
-rw-r--r--src/Specific/solinas64_2e452m3/freezeDisplay.log64
-rw-r--r--src/Specific/solinas64_2e468m17/femulDisplay.log86
-rw-r--r--src/Specific/solinas64_2e468m17/fesquareDisplay.log86
-rw-r--r--src/Specific/solinas64_2e468m17/freezeDisplay.log61
-rw-r--r--src/Specific/solinas64_2e480m2e240m1/femulDisplay.log61
-rw-r--r--src/Specific/solinas64_2e480m2e240m1/fesquareDisplay.log61
-rw-r--r--src/Specific/solinas64_2e480m2e240m1/freezeDisplay.log61
-rw-r--r--src/Specific/solinas64_2e489m21/femulDisplay.log48
-rw-r--r--src/Specific/solinas64_2e489m21/fesquareDisplay.log48
-rw-r--r--src/Specific/solinas64_2e489m21/freezeDisplay.log35
-rw-r--r--src/Specific/solinas64_2e495m31/femulDisplay.log94
-rw-r--r--src/Specific/solinas64_2e495m31/fesquareDisplay.log94
-rw-r--r--src/Specific/solinas64_2e495m31/freezeDisplay.log67
188 files changed, 8835 insertions, 2103 deletions
diff --git a/src/Specific/NISTP256/AMD128/fenzDisplay.log b/src/Specific/NISTP256/AMD128/fenzDisplay.log
index 53c690df8..db2b799ea 100644
--- a/src/Specific/NISTP256/AMD128/fenzDisplay.log
+++ b/src/Specific/NISTP256/AMD128/fenzDisplay.log
@@ -5,4 +5,16 @@ Interp-η
uint128_t x3 = (x2 | x1);
return x3)
x
- : word128 * word128 → ReturnType uint128_t
+ : word128 * word128 → ReturnType (Tbase match (if match match (let (lower, _) := Synthesis.P.bound1 in
+ lower) with
+ | 0%Z => Eq
+ | Z.pos _ => Lt
+ | Z.neg _ => Gt
+ end with
+ | Eq => true
+ | Lt => true
+ | Gt => false
+ end then Some 7 else None) with
+ | Some lgsz => Syntax.TWord lgsz
+ | None => Syntax.TZ
+ end)
diff --git a/src/Specific/NISTP256/AMD64/fenzDisplay.log b/src/Specific/NISTP256/AMD64/fenzDisplay.log
index 65afbc2d6..241c31016 100644
--- a/src/Specific/NISTP256/AMD64/fenzDisplay.log
+++ b/src/Specific/NISTP256/AMD64/fenzDisplay.log
@@ -7,4 +7,16 @@ Interp-η
uint64_t x9 = (x2 | x8);
return x9)
x
- : word64 * word64 * word64 * word64 → ReturnType uint64_t
+ : word64 * word64 * word64 * word64 → ReturnType (Tbase match (if match match (let (lower, _) := Synthesis.P.bound1 in
+ lower) with
+ | 0%Z => Eq
+ | Z.pos _ => Lt
+ | Z.neg _ => Gt
+ end with
+ | Eq => true
+ | Lt => true
+ | Gt => false
+ end then Some 6 else None) with
+ | Some lgsz => Syntax.TWord lgsz
+ | None => Syntax.TZ
+ end)
diff --git a/src/Specific/X25519/C32/femulDisplay.log b/src/Specific/X25519/C32/femulDisplay.log
index 1650f4c9d..7564ec007 100644
--- a/src/Specific/X25519/C32/femulDisplay.log
+++ b/src/Specific/X25519/C32/femulDisplay.log
@@ -66,18 +66,18 @@ Interp-η
uint64_t x101 = (x100 >> 0x19);
uint32_t x102 = ((uint32_t)x100 & 0x1ffffff);
uint64_t x103 = (x101 + x67);
- uint64_t x104 = (x103 >> 0x1a);
+ uint32_t x104 = (uint32_t) (x103 >> 0x1a);
uint32_t x105 = ((uint32_t)x103 & 0x3ffffff);
uint64_t x106 = (x104 + x64);
- uint64_t x107 = (x106 >> 0x19);
+ uint32_t x107 = (uint32_t) (x106 >> 0x19);
uint32_t x108 = ((uint32_t)x106 & 0x1ffffff);
uint64_t x109 = (x107 + x61);
- uint64_t x110 = (x109 >> 0x1a);
+ uint32_t x110 = (uint32_t) (x109 >> 0x1a);
uint32_t x111 = ((uint32_t)x109 & 0x3ffffff);
uint64_t x112 = (x110 + x49);
- uint64_t x113 = (x112 >> 0x19);
+ uint32_t x113 = (uint32_t) (x112 >> 0x19);
uint32_t x114 = ((uint32_t)x112 & 0x1ffffff);
- uint64_t x115 = (x87 + (0x13 * x113));
+ uint64_t x115 = (x87 + ((uint64_t)0x13 * x113));
uint32_t x116 = (uint32_t) (x115 >> 0x1a);
uint32_t x117 = ((uint32_t)x115 & 0x3ffffff);
uint32_t x118 = (x116 + x90);
diff --git a/src/Specific/X25519/C32/fesquareDisplay.log b/src/Specific/X25519/C32/fesquareDisplay.log
index 06c5bc75f..dc270a356 100644
--- a/src/Specific/X25519/C32/fesquareDisplay.log
+++ b/src/Specific/X25519/C32/fesquareDisplay.log
@@ -66,18 +66,18 @@ Interp-η
uint64_t x80 = (x79 >> 0x19);
uint32_t x81 = ((uint32_t)x79 & 0x1ffffff);
uint64_t x82 = (x80 + x46);
- uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x83 = (uint32_t) (x82 >> 0x1a);
uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
uint64_t x85 = (x83 + x43);
- uint64_t x86 = (x85 >> 0x19);
+ uint32_t x86 = (uint32_t) (x85 >> 0x19);
uint32_t x87 = ((uint32_t)x85 & 0x1ffffff);
uint64_t x88 = (x86 + x40);
- uint64_t x89 = (x88 >> 0x1a);
+ uint32_t x89 = (uint32_t) (x88 >> 0x1a);
uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
uint64_t x91 = (x89 + x28);
- uint64_t x92 = (x91 >> 0x19);
+ uint32_t x92 = (uint32_t) (x91 >> 0x19);
uint32_t x93 = ((uint32_t)x91 & 0x1ffffff);
- uint64_t x94 = (x66 + (0x13 * x92));
+ uint64_t x94 = (x66 + ((uint64_t)0x13 * x92));
uint32_t x95 = (uint32_t) (x94 >> 0x1a);
uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
uint32_t x97 = (x95 + x69);
diff --git a/src/Specific/montgomery32_2e192m2e64m1/femulDisplay.log b/src/Specific/montgomery32_2e192m2e64m1/femulDisplay.log
index 6b1b95464..1948ab491 100644
--- a/src/Specific/montgomery32_2e192m2e64m1/femulDisplay.log
+++ b/src/Specific/montgomery32_2e192m2e64m1/femulDisplay.log
@@ -16,7 +16,7 @@ Interp-η
uint32_t x58, uint8_t _ = addcarryx_u32(0x0, x56, x41);
uint32_t x61, uint32_t x62 = mulx_u32(x25, 0xffffffff);
uint32_t x64, uint32_t x65 = mulx_u32(x25, 0xffffffff);
- uint32_t x67, uint32_t x68 = mulx_u32(x25, Const 4294967294);
+ uint32_t x67, uint32_t x68 = mulx_u32(x25, 0xfffffffe);
uint32_t x70, uint32_t x71 = mulx_u32(x25, 0xffffffff);
uint32_t x73, uint32_t x74 = mulx_u32(x25, 0xffffffff);
uint32_t x76, uint32_t x77 = mulx_u32(x25, 0xffffffff);
@@ -54,7 +54,7 @@ Interp-η
uint32_t x172, uint8_t x173 = addcarryx_u32(x170, x116, x151);
uint32_t x175, uint32_t x176 = mulx_u32(x154, 0xffffffff);
uint32_t x178, uint32_t x179 = mulx_u32(x154, 0xffffffff);
- uint32_t x181, uint32_t x182 = mulx_u32(x154, Const 4294967294);
+ uint32_t x181, uint32_t x182 = mulx_u32(x154, 0xfffffffe);
uint32_t x184, uint32_t x185 = mulx_u32(x154, 0xffffffff);
uint32_t x187, uint32_t x188 = mulx_u32(x154, 0xffffffff);
uint32_t x190, uint32_t x191 = mulx_u32(x154, 0xffffffff);
@@ -71,7 +71,7 @@ Interp-η
uint32_t x223, uint8_t x224 = addcarryx_u32(x221, x166, x202);
uint32_t x226, uint8_t x227 = addcarryx_u32(x224, x169, x205);
uint32_t x229, uint8_t x230 = addcarryx_u32(x227, x172, x208);
- uint8_t x231 = x230 + x173;
+ uint8_t x231 = (x230 + x173);
uint32_t x233, uint32_t x234 = mulx_u32(x9, x15);
uint32_t x236, uint32_t x237 = mulx_u32(x9, x17);
uint32_t x239, uint32_t x240 = mulx_u32(x9, x19);
@@ -93,7 +93,7 @@ Interp-η
uint32_t x287, uint8_t x288 = addcarryx_u32(x285, x231, x266);
uint32_t x290, uint32_t x291 = mulx_u32(x269, 0xffffffff);
uint32_t x293, uint32_t x294 = mulx_u32(x269, 0xffffffff);
- uint32_t x296, uint32_t x297 = mulx_u32(x269, Const 4294967294);
+ uint32_t x296, uint32_t x297 = mulx_u32(x269, 0xfffffffe);
uint32_t x299, uint32_t x300 = mulx_u32(x269, 0xffffffff);
uint32_t x302, uint32_t x303 = mulx_u32(x269, 0xffffffff);
uint32_t x305, uint32_t x306 = mulx_u32(x269, 0xffffffff);
@@ -110,7 +110,7 @@ Interp-η
uint32_t x338, uint8_t x339 = addcarryx_u32(x336, x281, x317);
uint32_t x341, uint8_t x342 = addcarryx_u32(x339, x284, x320);
uint32_t x344, uint8_t x345 = addcarryx_u32(x342, x287, x323);
- uint8_t x346 = x345 + x288;
+ uint8_t x346 = (x345 + x288);
uint32_t x348, uint32_t x349 = mulx_u32(x11, x15);
uint32_t x351, uint32_t x352 = mulx_u32(x11, x17);
uint32_t x354, uint32_t x355 = mulx_u32(x11, x19);
@@ -132,7 +132,7 @@ Interp-η
uint32_t x402, uint8_t x403 = addcarryx_u32(x400, x346, x381);
uint32_t x405, uint32_t x406 = mulx_u32(x384, 0xffffffff);
uint32_t x408, uint32_t x409 = mulx_u32(x384, 0xffffffff);
- uint32_t x411, uint32_t x412 = mulx_u32(x384, Const 4294967294);
+ uint32_t x411, uint32_t x412 = mulx_u32(x384, 0xfffffffe);
uint32_t x414, uint32_t x415 = mulx_u32(x384, 0xffffffff);
uint32_t x417, uint32_t x418 = mulx_u32(x384, 0xffffffff);
uint32_t x420, uint32_t x421 = mulx_u32(x384, 0xffffffff);
@@ -149,7 +149,7 @@ Interp-η
uint32_t x453, uint8_t x454 = addcarryx_u32(x451, x396, x432);
uint32_t x456, uint8_t x457 = addcarryx_u32(x454, x399, x435);
uint32_t x459, uint8_t x460 = addcarryx_u32(x457, x402, x438);
- uint8_t x461 = x460 + x403;
+ uint8_t x461 = (x460 + x403);
uint32_t x463, uint32_t x464 = mulx_u32(x13, x15);
uint32_t x466, uint32_t x467 = mulx_u32(x13, x17);
uint32_t x469, uint32_t x470 = mulx_u32(x13, x19);
@@ -171,7 +171,7 @@ Interp-η
uint32_t x517, uint8_t x518 = addcarryx_u32(x515, x461, x496);
uint32_t x520, uint32_t x521 = mulx_u32(x499, 0xffffffff);
uint32_t x523, uint32_t x524 = mulx_u32(x499, 0xffffffff);
- uint32_t x526, uint32_t x527 = mulx_u32(x499, Const 4294967294);
+ uint32_t x526, uint32_t x527 = mulx_u32(x499, 0xfffffffe);
uint32_t x529, uint32_t x530 = mulx_u32(x499, 0xffffffff);
uint32_t x532, uint32_t x533 = mulx_u32(x499, 0xffffffff);
uint32_t x535, uint32_t x536 = mulx_u32(x499, 0xffffffff);
@@ -188,7 +188,7 @@ Interp-η
uint32_t x568, uint8_t x569 = addcarryx_u32(x566, x511, x547);
uint32_t x571, uint8_t x572 = addcarryx_u32(x569, x514, x550);
uint32_t x574, uint8_t x575 = addcarryx_u32(x572, x517, x553);
- uint8_t x576 = x575 + x518;
+ uint8_t x576 = (x575 + x518);
uint32_t x578, uint32_t x579 = mulx_u32(x12, x15);
uint32_t x581, uint32_t x582 = mulx_u32(x12, x17);
uint32_t x584, uint32_t x585 = mulx_u32(x12, x19);
@@ -210,7 +210,7 @@ Interp-η
uint32_t x632, uint8_t x633 = addcarryx_u32(x630, x576, x611);
uint32_t x635, uint32_t x636 = mulx_u32(x614, 0xffffffff);
uint32_t x638, uint32_t x639 = mulx_u32(x614, 0xffffffff);
- uint32_t x641, uint32_t x642 = mulx_u32(x614, Const 4294967294);
+ uint32_t x641, uint32_t x642 = mulx_u32(x614, 0xfffffffe);
uint32_t x644, uint32_t x645 = mulx_u32(x614, 0xffffffff);
uint32_t x647, uint32_t x648 = mulx_u32(x614, 0xffffffff);
uint32_t x650, uint32_t x651 = mulx_u32(x614, 0xffffffff);
@@ -227,10 +227,10 @@ Interp-η
uint32_t x683, uint8_t x684 = addcarryx_u32(x681, x626, x662);
uint32_t x686, uint8_t x687 = addcarryx_u32(x684, x629, x665);
uint32_t x689, uint8_t x690 = addcarryx_u32(x687, x632, x668);
- uint8_t x691 = x690 + x633;
+ uint8_t x691 = (x690 + x633);
uint32_t x693, uint8_t x694 = subborrow_u32(0x0, x674, 0xffffffff);
uint32_t x696, uint8_t x697 = subborrow_u32(x694, x677, 0xffffffff);
- uint32_t x699, uint8_t x700 = subborrow_u32(x697, x680, Const 4294967294);
+ uint32_t x699, uint8_t x700 = subborrow_u32(x697, x680, 0xfffffffe);
uint32_t x702, uint8_t x703 = subborrow_u32(x700, x683, 0xffffffff);
uint32_t x705, uint8_t x706 = subborrow_u32(x703, x686, 0xffffffff);
uint32_t x708, uint8_t x709 = subborrow_u32(x706, x689, 0xffffffff);
diff --git a/src/Specific/montgomery32_2e205m45x2e198m1/feaddDisplay.log b/src/Specific/montgomery32_2e205m45x2e198m1/feaddDisplay.log
new file mode 100644
index 000000000..5d0bc9380
--- /dev/null
+++ b/src/Specific/montgomery32_2e205m45x2e198m1/feaddDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint8_t x30 = addcarryx_u32(0x0, x5, x17);
+ uint32_t x32, uint8_t x33 = addcarryx_u32(x30, x7, x19);
+ uint32_t x35, uint8_t x36 = addcarryx_u32(x33, x9, x21);
+ uint32_t x38, uint8_t x39 = addcarryx_u32(x36, x11, x23);
+ uint32_t x41, uint8_t x42 = addcarryx_u32(x39, x13, x25);
+ uint32_t x44, uint8_t x45 = addcarryx_u32(x42, x15, x27);
+ uint32_t x47, uint8_t x48 = addcarryx_u32(x45, x14, x26);
+ uint32_t x50, uint8_t x51 = subborrow_u32(0x0, x29, 0xffffffff);
+ uint32_t x53, uint8_t x54 = subborrow_u32(x51, x32, 0xffffffff);
+ uint32_t x56, uint8_t x57 = subborrow_u32(x54, x35, 0xffffffff);
+ uint32_t x59, uint8_t x60 = subborrow_u32(x57, x38, 0xffffffff);
+ uint32_t x62, uint8_t x63 = subborrow_u32(x60, x41, 0xffffffff);
+ uint32_t x65, uint8_t x66 = subborrow_u32(x63, x44, 0xffffffff);
+ uint32_t x68, uint8_t x69 = subborrow_u32(x66, x47, 0x14bf);
+ uint32_t _, uint8_t x72 = subborrow_u32(x69, x48, 0x0);
+ uint32_t x73 = cmovznz(x72, x68, x47);
+ uint32_t x74 = cmovznz(x72, x65, x44);
+ uint32_t x75 = cmovznz(x72, x62, x41);
+ uint32_t x76 = cmovznz(x72, x59, x38);
+ uint32_t x77 = cmovznz(x72, x56, x35);
+ uint32_t x78 = cmovznz(x72, x53, x32);
+ uint32_t x79 = cmovznz(x72, x50, x29);
+ return (x73, x74, x75, x76, x77, x78, x79))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e205m45x2e198m1/femulDisplay.log b/src/Specific/montgomery32_2e205m45x2e198m1/femulDisplay.log
new file mode 100644
index 000000000..22a0be41c
--- /dev/null
+++ b/src/Specific/montgomery32_2e205m45x2e198m1/femulDisplay.log
@@ -0,0 +1,328 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint32_t x30 = mulx_u32(x5, x17);
+ uint32_t x32, uint32_t x33 = mulx_u32(x5, x19);
+ uint32_t x35, uint32_t x36 = mulx_u32(x5, x21);
+ uint32_t x38, uint32_t x39 = mulx_u32(x5, x23);
+ uint32_t x41, uint32_t x42 = mulx_u32(x5, x25);
+ uint32_t x44, uint32_t x45 = mulx_u32(x5, x27);
+ uint32_t x47, uint32_t x48 = mulx_u32(x5, x26);
+ uint32_t x50, uint8_t x51 = addcarryx_u32(0x0, x30, x32);
+ uint32_t x53, uint8_t x54 = addcarryx_u32(x51, x33, x35);
+ uint32_t x56, uint8_t x57 = addcarryx_u32(x54, x36, x38);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(x57, x39, x41);
+ uint32_t x62, uint8_t x63 = addcarryx_u32(x60, x42, x44);
+ uint32_t x65, uint8_t x66 = addcarryx_u32(x63, x45, x47);
+ uint32_t x68, uint8_t _ = addcarryx_u32(0x0, x66, x48);
+ uint32_t x71, uint32_t x72 = mulx_u32(x29, 0xffffffff);
+ uint32_t x74, uint32_t x75 = mulx_u32(x29, 0xffffffff);
+ uint32_t x77, uint32_t x78 = mulx_u32(x29, 0xffffffff);
+ uint32_t x80, uint32_t x81 = mulx_u32(x29, 0xffffffff);
+ uint32_t x83, uint32_t x84 = mulx_u32(x29, 0xffffffff);
+ uint32_t x86, uint32_t x87 = mulx_u32(x29, 0xffffffff);
+ uint32_t x89, uint32_t x90 = mulx_u32(x29, 0x14bf);
+ uint32_t x92, uint8_t x93 = addcarryx_u32(0x0, x72, x74);
+ uint32_t x95, uint8_t x96 = addcarryx_u32(x93, x75, x77);
+ uint32_t x98, uint8_t x99 = addcarryx_u32(x96, x78, x80);
+ uint32_t x101, uint8_t x102 = addcarryx_u32(x99, x81, x83);
+ uint32_t x104, uint8_t x105 = addcarryx_u32(x102, x84, x86);
+ uint32_t x107, uint8_t x108 = addcarryx_u32(x105, x87, x89);
+ uint32_t x110, uint8_t _ = addcarryx_u32(0x0, x108, x90);
+ uint32_t _, uint8_t x114 = addcarryx_u32(0x0, x29, x71);
+ uint32_t x116, uint8_t x117 = addcarryx_u32(x114, x50, x92);
+ uint32_t x119, uint8_t x120 = addcarryx_u32(x117, x53, x95);
+ uint32_t x122, uint8_t x123 = addcarryx_u32(x120, x56, x98);
+ uint32_t x125, uint8_t x126 = addcarryx_u32(x123, x59, x101);
+ uint32_t x128, uint8_t x129 = addcarryx_u32(x126, x62, x104);
+ uint32_t x131, uint8_t x132 = addcarryx_u32(x129, x65, x107);
+ uint32_t x134, uint8_t x135 = addcarryx_u32(x132, x68, x110);
+ uint32_t x137, uint32_t x138 = mulx_u32(x7, x17);
+ uint32_t x140, uint32_t x141 = mulx_u32(x7, x19);
+ uint32_t x143, uint32_t x144 = mulx_u32(x7, x21);
+ uint32_t x146, uint32_t x147 = mulx_u32(x7, x23);
+ uint32_t x149, uint32_t x150 = mulx_u32(x7, x25);
+ uint32_t x152, uint32_t x153 = mulx_u32(x7, x27);
+ uint32_t x155, uint32_t x156 = mulx_u32(x7, x26);
+ uint32_t x158, uint8_t x159 = addcarryx_u32(0x0, x138, x140);
+ uint32_t x161, uint8_t x162 = addcarryx_u32(x159, x141, x143);
+ uint32_t x164, uint8_t x165 = addcarryx_u32(x162, x144, x146);
+ uint32_t x167, uint8_t x168 = addcarryx_u32(x165, x147, x149);
+ uint32_t x170, uint8_t x171 = addcarryx_u32(x168, x150, x152);
+ uint32_t x173, uint8_t x174 = addcarryx_u32(x171, x153, x155);
+ uint32_t x176, uint8_t _ = addcarryx_u32(0x0, x174, x156);
+ uint32_t x179, uint8_t x180 = addcarryx_u32(0x0, x116, x137);
+ uint32_t x182, uint8_t x183 = addcarryx_u32(x180, x119, x158);
+ uint32_t x185, uint8_t x186 = addcarryx_u32(x183, x122, x161);
+ uint32_t x188, uint8_t x189 = addcarryx_u32(x186, x125, x164);
+ uint32_t x191, uint8_t x192 = addcarryx_u32(x189, x128, x167);
+ uint32_t x194, uint8_t x195 = addcarryx_u32(x192, x131, x170);
+ uint32_t x197, uint8_t x198 = addcarryx_u32(x195, x134, x173);
+ uint32_t x200, uint8_t x201 = addcarryx_u32(x198, x135, x176);
+ uint32_t x203, uint32_t x204 = mulx_u32(x179, 0xffffffff);
+ uint32_t x206, uint32_t x207 = mulx_u32(x179, 0xffffffff);
+ uint32_t x209, uint32_t x210 = mulx_u32(x179, 0xffffffff);
+ uint32_t x212, uint32_t x213 = mulx_u32(x179, 0xffffffff);
+ uint32_t x215, uint32_t x216 = mulx_u32(x179, 0xffffffff);
+ uint32_t x218, uint32_t x219 = mulx_u32(x179, 0xffffffff);
+ uint32_t x221, uint32_t x222 = mulx_u32(x179, 0x14bf);
+ uint32_t x224, uint8_t x225 = addcarryx_u32(0x0, x204, x206);
+ uint32_t x227, uint8_t x228 = addcarryx_u32(x225, x207, x209);
+ uint32_t x230, uint8_t x231 = addcarryx_u32(x228, x210, x212);
+ uint32_t x233, uint8_t x234 = addcarryx_u32(x231, x213, x215);
+ uint32_t x236, uint8_t x237 = addcarryx_u32(x234, x216, x218);
+ uint32_t x239, uint8_t x240 = addcarryx_u32(x237, x219, x221);
+ uint32_t x242, uint8_t _ = addcarryx_u32(0x0, x240, x222);
+ uint32_t _, uint8_t x246 = addcarryx_u32(0x0, x179, x203);
+ uint32_t x248, uint8_t x249 = addcarryx_u32(x246, x182, x224);
+ uint32_t x251, uint8_t x252 = addcarryx_u32(x249, x185, x227);
+ uint32_t x254, uint8_t x255 = addcarryx_u32(x252, x188, x230);
+ uint32_t x257, uint8_t x258 = addcarryx_u32(x255, x191, x233);
+ uint32_t x260, uint8_t x261 = addcarryx_u32(x258, x194, x236);
+ uint32_t x263, uint8_t x264 = addcarryx_u32(x261, x197, x239);
+ uint32_t x266, uint8_t x267 = addcarryx_u32(x264, x200, x242);
+ uint8_t x268 = (x267 + x201);
+ uint32_t x270, uint32_t x271 = mulx_u32(x9, x17);
+ uint32_t x273, uint32_t x274 = mulx_u32(x9, x19);
+ uint32_t x276, uint32_t x277 = mulx_u32(x9, x21);
+ uint32_t x279, uint32_t x280 = mulx_u32(x9, x23);
+ uint32_t x282, uint32_t x283 = mulx_u32(x9, x25);
+ uint32_t x285, uint32_t x286 = mulx_u32(x9, x27);
+ uint32_t x288, uint32_t x289 = mulx_u32(x9, x26);
+ uint32_t x291, uint8_t x292 = addcarryx_u32(0x0, x271, x273);
+ uint32_t x294, uint8_t x295 = addcarryx_u32(x292, x274, x276);
+ uint32_t x297, uint8_t x298 = addcarryx_u32(x295, x277, x279);
+ uint32_t x300, uint8_t x301 = addcarryx_u32(x298, x280, x282);
+ uint32_t x303, uint8_t x304 = addcarryx_u32(x301, x283, x285);
+ uint32_t x306, uint8_t x307 = addcarryx_u32(x304, x286, x288);
+ uint32_t x309, uint8_t _ = addcarryx_u32(0x0, x307, x289);
+ uint32_t x312, uint8_t x313 = addcarryx_u32(0x0, x248, x270);
+ uint32_t x315, uint8_t x316 = addcarryx_u32(x313, x251, x291);
+ uint32_t x318, uint8_t x319 = addcarryx_u32(x316, x254, x294);
+ uint32_t x321, uint8_t x322 = addcarryx_u32(x319, x257, x297);
+ uint32_t x324, uint8_t x325 = addcarryx_u32(x322, x260, x300);
+ uint32_t x327, uint8_t x328 = addcarryx_u32(x325, x263, x303);
+ uint32_t x330, uint8_t x331 = addcarryx_u32(x328, x266, x306);
+ uint32_t x333, uint8_t x334 = addcarryx_u32(x331, x268, x309);
+ uint32_t x336, uint32_t x337 = mulx_u32(x312, 0xffffffff);
+ uint32_t x339, uint32_t x340 = mulx_u32(x312, 0xffffffff);
+ uint32_t x342, uint32_t x343 = mulx_u32(x312, 0xffffffff);
+ uint32_t x345, uint32_t x346 = mulx_u32(x312, 0xffffffff);
+ uint32_t x348, uint32_t x349 = mulx_u32(x312, 0xffffffff);
+ uint32_t x351, uint32_t x352 = mulx_u32(x312, 0xffffffff);
+ uint32_t x354, uint32_t x355 = mulx_u32(x312, 0x14bf);
+ uint32_t x357, uint8_t x358 = addcarryx_u32(0x0, x337, x339);
+ uint32_t x360, uint8_t x361 = addcarryx_u32(x358, x340, x342);
+ uint32_t x363, uint8_t x364 = addcarryx_u32(x361, x343, x345);
+ uint32_t x366, uint8_t x367 = addcarryx_u32(x364, x346, x348);
+ uint32_t x369, uint8_t x370 = addcarryx_u32(x367, x349, x351);
+ uint32_t x372, uint8_t x373 = addcarryx_u32(x370, x352, x354);
+ uint32_t x375, uint8_t _ = addcarryx_u32(0x0, x373, x355);
+ uint32_t _, uint8_t x379 = addcarryx_u32(0x0, x312, x336);
+ uint32_t x381, uint8_t x382 = addcarryx_u32(x379, x315, x357);
+ uint32_t x384, uint8_t x385 = addcarryx_u32(x382, x318, x360);
+ uint32_t x387, uint8_t x388 = addcarryx_u32(x385, x321, x363);
+ uint32_t x390, uint8_t x391 = addcarryx_u32(x388, x324, x366);
+ uint32_t x393, uint8_t x394 = addcarryx_u32(x391, x327, x369);
+ uint32_t x396, uint8_t x397 = addcarryx_u32(x394, x330, x372);
+ uint32_t x399, uint8_t x400 = addcarryx_u32(x397, x333, x375);
+ uint8_t x401 = (x400 + x334);
+ uint32_t x403, uint32_t x404 = mulx_u32(x11, x17);
+ uint32_t x406, uint32_t x407 = mulx_u32(x11, x19);
+ uint32_t x409, uint32_t x410 = mulx_u32(x11, x21);
+ uint32_t x412, uint32_t x413 = mulx_u32(x11, x23);
+ uint32_t x415, uint32_t x416 = mulx_u32(x11, x25);
+ uint32_t x418, uint32_t x419 = mulx_u32(x11, x27);
+ uint32_t x421, uint32_t x422 = mulx_u32(x11, x26);
+ uint32_t x424, uint8_t x425 = addcarryx_u32(0x0, x404, x406);
+ uint32_t x427, uint8_t x428 = addcarryx_u32(x425, x407, x409);
+ uint32_t x430, uint8_t x431 = addcarryx_u32(x428, x410, x412);
+ uint32_t x433, uint8_t x434 = addcarryx_u32(x431, x413, x415);
+ uint32_t x436, uint8_t x437 = addcarryx_u32(x434, x416, x418);
+ uint32_t x439, uint8_t x440 = addcarryx_u32(x437, x419, x421);
+ uint32_t x442, uint8_t _ = addcarryx_u32(0x0, x440, x422);
+ uint32_t x445, uint8_t x446 = addcarryx_u32(0x0, x381, x403);
+ uint32_t x448, uint8_t x449 = addcarryx_u32(x446, x384, x424);
+ uint32_t x451, uint8_t x452 = addcarryx_u32(x449, x387, x427);
+ uint32_t x454, uint8_t x455 = addcarryx_u32(x452, x390, x430);
+ uint32_t x457, uint8_t x458 = addcarryx_u32(x455, x393, x433);
+ uint32_t x460, uint8_t x461 = addcarryx_u32(x458, x396, x436);
+ uint32_t x463, uint8_t x464 = addcarryx_u32(x461, x399, x439);
+ uint32_t x466, uint8_t x467 = addcarryx_u32(x464, x401, x442);
+ uint32_t x469, uint32_t x470 = mulx_u32(x445, 0xffffffff);
+ uint32_t x472, uint32_t x473 = mulx_u32(x445, 0xffffffff);
+ uint32_t x475, uint32_t x476 = mulx_u32(x445, 0xffffffff);
+ uint32_t x478, uint32_t x479 = mulx_u32(x445, 0xffffffff);
+ uint32_t x481, uint32_t x482 = mulx_u32(x445, 0xffffffff);
+ uint32_t x484, uint32_t x485 = mulx_u32(x445, 0xffffffff);
+ uint32_t x487, uint32_t x488 = mulx_u32(x445, 0x14bf);
+ uint32_t x490, uint8_t x491 = addcarryx_u32(0x0, x470, x472);
+ uint32_t x493, uint8_t x494 = addcarryx_u32(x491, x473, x475);
+ uint32_t x496, uint8_t x497 = addcarryx_u32(x494, x476, x478);
+ uint32_t x499, uint8_t x500 = addcarryx_u32(x497, x479, x481);
+ uint32_t x502, uint8_t x503 = addcarryx_u32(x500, x482, x484);
+ uint32_t x505, uint8_t x506 = addcarryx_u32(x503, x485, x487);
+ uint32_t x508, uint8_t _ = addcarryx_u32(0x0, x506, x488);
+ uint32_t _, uint8_t x512 = addcarryx_u32(0x0, x445, x469);
+ uint32_t x514, uint8_t x515 = addcarryx_u32(x512, x448, x490);
+ uint32_t x517, uint8_t x518 = addcarryx_u32(x515, x451, x493);
+ uint32_t x520, uint8_t x521 = addcarryx_u32(x518, x454, x496);
+ uint32_t x523, uint8_t x524 = addcarryx_u32(x521, x457, x499);
+ uint32_t x526, uint8_t x527 = addcarryx_u32(x524, x460, x502);
+ uint32_t x529, uint8_t x530 = addcarryx_u32(x527, x463, x505);
+ uint32_t x532, uint8_t x533 = addcarryx_u32(x530, x466, x508);
+ uint8_t x534 = (x533 + x467);
+ uint32_t x536, uint32_t x537 = mulx_u32(x13, x17);
+ uint32_t x539, uint32_t x540 = mulx_u32(x13, x19);
+ uint32_t x542, uint32_t x543 = mulx_u32(x13, x21);
+ uint32_t x545, uint32_t x546 = mulx_u32(x13, x23);
+ uint32_t x548, uint32_t x549 = mulx_u32(x13, x25);
+ uint32_t x551, uint32_t x552 = mulx_u32(x13, x27);
+ uint32_t x554, uint32_t x555 = mulx_u32(x13, x26);
+ uint32_t x557, uint8_t x558 = addcarryx_u32(0x0, x537, x539);
+ uint32_t x560, uint8_t x561 = addcarryx_u32(x558, x540, x542);
+ uint32_t x563, uint8_t x564 = addcarryx_u32(x561, x543, x545);
+ uint32_t x566, uint8_t x567 = addcarryx_u32(x564, x546, x548);
+ uint32_t x569, uint8_t x570 = addcarryx_u32(x567, x549, x551);
+ uint32_t x572, uint8_t x573 = addcarryx_u32(x570, x552, x554);
+ uint32_t x575, uint8_t _ = addcarryx_u32(0x0, x573, x555);
+ uint32_t x578, uint8_t x579 = addcarryx_u32(0x0, x514, x536);
+ uint32_t x581, uint8_t x582 = addcarryx_u32(x579, x517, x557);
+ uint32_t x584, uint8_t x585 = addcarryx_u32(x582, x520, x560);
+ uint32_t x587, uint8_t x588 = addcarryx_u32(x585, x523, x563);
+ uint32_t x590, uint8_t x591 = addcarryx_u32(x588, x526, x566);
+ uint32_t x593, uint8_t x594 = addcarryx_u32(x591, x529, x569);
+ uint32_t x596, uint8_t x597 = addcarryx_u32(x594, x532, x572);
+ uint32_t x599, uint8_t x600 = addcarryx_u32(x597, x534, x575);
+ uint32_t x602, uint32_t x603 = mulx_u32(x578, 0xffffffff);
+ uint32_t x605, uint32_t x606 = mulx_u32(x578, 0xffffffff);
+ uint32_t x608, uint32_t x609 = mulx_u32(x578, 0xffffffff);
+ uint32_t x611, uint32_t x612 = mulx_u32(x578, 0xffffffff);
+ uint32_t x614, uint32_t x615 = mulx_u32(x578, 0xffffffff);
+ uint32_t x617, uint32_t x618 = mulx_u32(x578, 0xffffffff);
+ uint32_t x620, uint32_t x621 = mulx_u32(x578, 0x14bf);
+ uint32_t x623, uint8_t x624 = addcarryx_u32(0x0, x603, x605);
+ uint32_t x626, uint8_t x627 = addcarryx_u32(x624, x606, x608);
+ uint32_t x629, uint8_t x630 = addcarryx_u32(x627, x609, x611);
+ uint32_t x632, uint8_t x633 = addcarryx_u32(x630, x612, x614);
+ uint32_t x635, uint8_t x636 = addcarryx_u32(x633, x615, x617);
+ uint32_t x638, uint8_t x639 = addcarryx_u32(x636, x618, x620);
+ uint32_t x641, uint8_t _ = addcarryx_u32(0x0, x639, x621);
+ uint32_t _, uint8_t x645 = addcarryx_u32(0x0, x578, x602);
+ uint32_t x647, uint8_t x648 = addcarryx_u32(x645, x581, x623);
+ uint32_t x650, uint8_t x651 = addcarryx_u32(x648, x584, x626);
+ uint32_t x653, uint8_t x654 = addcarryx_u32(x651, x587, x629);
+ uint32_t x656, uint8_t x657 = addcarryx_u32(x654, x590, x632);
+ uint32_t x659, uint8_t x660 = addcarryx_u32(x657, x593, x635);
+ uint32_t x662, uint8_t x663 = addcarryx_u32(x660, x596, x638);
+ uint32_t x665, uint8_t x666 = addcarryx_u32(x663, x599, x641);
+ uint8_t x667 = (x666 + x600);
+ uint32_t x669, uint32_t x670 = mulx_u32(x15, x17);
+ uint32_t x672, uint32_t x673 = mulx_u32(x15, x19);
+ uint32_t x675, uint32_t x676 = mulx_u32(x15, x21);
+ uint32_t x678, uint32_t x679 = mulx_u32(x15, x23);
+ uint32_t x681, uint32_t x682 = mulx_u32(x15, x25);
+ uint32_t x684, uint32_t x685 = mulx_u32(x15, x27);
+ uint32_t x687, uint32_t x688 = mulx_u32(x15, x26);
+ uint32_t x690, uint8_t x691 = addcarryx_u32(0x0, x670, x672);
+ uint32_t x693, uint8_t x694 = addcarryx_u32(x691, x673, x675);
+ uint32_t x696, uint8_t x697 = addcarryx_u32(x694, x676, x678);
+ uint32_t x699, uint8_t x700 = addcarryx_u32(x697, x679, x681);
+ uint32_t x702, uint8_t x703 = addcarryx_u32(x700, x682, x684);
+ uint32_t x705, uint8_t x706 = addcarryx_u32(x703, x685, x687);
+ uint32_t x708, uint8_t _ = addcarryx_u32(0x0, x706, x688);
+ uint32_t x711, uint8_t x712 = addcarryx_u32(0x0, x647, x669);
+ uint32_t x714, uint8_t x715 = addcarryx_u32(x712, x650, x690);
+ uint32_t x717, uint8_t x718 = addcarryx_u32(x715, x653, x693);
+ uint32_t x720, uint8_t x721 = addcarryx_u32(x718, x656, x696);
+ uint32_t x723, uint8_t x724 = addcarryx_u32(x721, x659, x699);
+ uint32_t x726, uint8_t x727 = addcarryx_u32(x724, x662, x702);
+ uint32_t x729, uint8_t x730 = addcarryx_u32(x727, x665, x705);
+ uint32_t x732, uint8_t x733 = addcarryx_u32(x730, x667, x708);
+ uint32_t x735, uint32_t x736 = mulx_u32(x711, 0xffffffff);
+ uint32_t x738, uint32_t x739 = mulx_u32(x711, 0xffffffff);
+ uint32_t x741, uint32_t x742 = mulx_u32(x711, 0xffffffff);
+ uint32_t x744, uint32_t x745 = mulx_u32(x711, 0xffffffff);
+ uint32_t x747, uint32_t x748 = mulx_u32(x711, 0xffffffff);
+ uint32_t x750, uint32_t x751 = mulx_u32(x711, 0xffffffff);
+ uint32_t x753, uint32_t x754 = mulx_u32(x711, 0x14bf);
+ uint32_t x756, uint8_t x757 = addcarryx_u32(0x0, x736, x738);
+ uint32_t x759, uint8_t x760 = addcarryx_u32(x757, x739, x741);
+ uint32_t x762, uint8_t x763 = addcarryx_u32(x760, x742, x744);
+ uint32_t x765, uint8_t x766 = addcarryx_u32(x763, x745, x747);
+ uint32_t x768, uint8_t x769 = addcarryx_u32(x766, x748, x750);
+ uint32_t x771, uint8_t x772 = addcarryx_u32(x769, x751, x753);
+ uint32_t x774, uint8_t _ = addcarryx_u32(0x0, x772, x754);
+ uint32_t _, uint8_t x778 = addcarryx_u32(0x0, x711, x735);
+ uint32_t x780, uint8_t x781 = addcarryx_u32(x778, x714, x756);
+ uint32_t x783, uint8_t x784 = addcarryx_u32(x781, x717, x759);
+ uint32_t x786, uint8_t x787 = addcarryx_u32(x784, x720, x762);
+ uint32_t x789, uint8_t x790 = addcarryx_u32(x787, x723, x765);
+ uint32_t x792, uint8_t x793 = addcarryx_u32(x790, x726, x768);
+ uint32_t x795, uint8_t x796 = addcarryx_u32(x793, x729, x771);
+ uint32_t x798, uint8_t x799 = addcarryx_u32(x796, x732, x774);
+ uint8_t x800 = (x799 + x733);
+ uint32_t x802, uint32_t x803 = mulx_u32(x14, x17);
+ uint32_t x805, uint32_t x806 = mulx_u32(x14, x19);
+ uint32_t x808, uint32_t x809 = mulx_u32(x14, x21);
+ uint32_t x811, uint32_t x812 = mulx_u32(x14, x23);
+ uint32_t x814, uint32_t x815 = mulx_u32(x14, x25);
+ uint32_t x817, uint32_t x818 = mulx_u32(x14, x27);
+ uint32_t x820, uint32_t x821 = mulx_u32(x14, x26);
+ uint32_t x823, uint8_t x824 = addcarryx_u32(0x0, x803, x805);
+ uint32_t x826, uint8_t x827 = addcarryx_u32(x824, x806, x808);
+ uint32_t x829, uint8_t x830 = addcarryx_u32(x827, x809, x811);
+ uint32_t x832, uint8_t x833 = addcarryx_u32(x830, x812, x814);
+ uint32_t x835, uint8_t x836 = addcarryx_u32(x833, x815, x817);
+ uint32_t x838, uint8_t x839 = addcarryx_u32(x836, x818, x820);
+ uint32_t x841, uint8_t _ = addcarryx_u32(0x0, x839, x821);
+ uint32_t x844, uint8_t x845 = addcarryx_u32(0x0, x780, x802);
+ uint32_t x847, uint8_t x848 = addcarryx_u32(x845, x783, x823);
+ uint32_t x850, uint8_t x851 = addcarryx_u32(x848, x786, x826);
+ uint32_t x853, uint8_t x854 = addcarryx_u32(x851, x789, x829);
+ uint32_t x856, uint8_t x857 = addcarryx_u32(x854, x792, x832);
+ uint32_t x859, uint8_t x860 = addcarryx_u32(x857, x795, x835);
+ uint32_t x862, uint8_t x863 = addcarryx_u32(x860, x798, x838);
+ uint32_t x865, uint8_t x866 = addcarryx_u32(x863, x800, x841);
+ uint32_t x868, uint32_t x869 = mulx_u32(x844, 0xffffffff);
+ uint32_t x871, uint32_t x872 = mulx_u32(x844, 0xffffffff);
+ uint32_t x874, uint32_t x875 = mulx_u32(x844, 0xffffffff);
+ uint32_t x877, uint32_t x878 = mulx_u32(x844, 0xffffffff);
+ uint32_t x880, uint32_t x881 = mulx_u32(x844, 0xffffffff);
+ uint32_t x883, uint32_t x884 = mulx_u32(x844, 0xffffffff);
+ uint32_t x886, uint32_t x887 = mulx_u32(x844, 0x14bf);
+ uint32_t x889, uint8_t x890 = addcarryx_u32(0x0, x869, x871);
+ uint32_t x892, uint8_t x893 = addcarryx_u32(x890, x872, x874);
+ uint32_t x895, uint8_t x896 = addcarryx_u32(x893, x875, x877);
+ uint32_t x898, uint8_t x899 = addcarryx_u32(x896, x878, x880);
+ uint32_t x901, uint8_t x902 = addcarryx_u32(x899, x881, x883);
+ uint32_t x904, uint8_t x905 = addcarryx_u32(x902, x884, x886);
+ uint32_t x907, uint8_t _ = addcarryx_u32(0x0, x905, x887);
+ uint32_t _, uint8_t x911 = addcarryx_u32(0x0, x844, x868);
+ uint32_t x913, uint8_t x914 = addcarryx_u32(x911, x847, x889);
+ uint32_t x916, uint8_t x917 = addcarryx_u32(x914, x850, x892);
+ uint32_t x919, uint8_t x920 = addcarryx_u32(x917, x853, x895);
+ uint32_t x922, uint8_t x923 = addcarryx_u32(x920, x856, x898);
+ uint32_t x925, uint8_t x926 = addcarryx_u32(x923, x859, x901);
+ uint32_t x928, uint8_t x929 = addcarryx_u32(x926, x862, x904);
+ uint32_t x931, uint8_t x932 = addcarryx_u32(x929, x865, x907);
+ uint8_t x933 = (x932 + x866);
+ uint32_t x935, uint8_t x936 = subborrow_u32(0x0, x913, 0xffffffff);
+ uint32_t x938, uint8_t x939 = subborrow_u32(x936, x916, 0xffffffff);
+ uint32_t x941, uint8_t x942 = subborrow_u32(x939, x919, 0xffffffff);
+ uint32_t x944, uint8_t x945 = subborrow_u32(x942, x922, 0xffffffff);
+ uint32_t x947, uint8_t x948 = subborrow_u32(x945, x925, 0xffffffff);
+ uint32_t x950, uint8_t x951 = subborrow_u32(x948, x928, 0xffffffff);
+ uint32_t x953, uint8_t x954 = subborrow_u32(x951, x931, 0x14bf);
+ uint32_t _, uint8_t x957 = subborrow_u32(x954, x933, 0x0);
+ uint32_t x958 = cmovznz(x957, x953, x931);
+ uint32_t x959 = cmovznz(x957, x950, x928);
+ uint32_t x960 = cmovznz(x957, x947, x925);
+ uint32_t x961 = cmovznz(x957, x944, x922);
+ uint32_t x962 = cmovznz(x957, x941, x919);
+ uint32_t x963 = cmovznz(x957, x938, x916);
+ uint32_t x964 = cmovznz(x957, x935, x913);
+ return (x958, x959, x960, x961, x962, x963, x964))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e205m45x2e198m1/feoppDisplay.log b/src/Specific/montgomery32_2e205m45x2e198m1/feoppDisplay.log
new file mode 100644
index 000000000..e61d0e1a8
--- /dev/null
+++ b/src/Specific/montgomery32_2e205m45x2e198m1/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x14, uint8_t x15 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x17, uint8_t x18 = subborrow_u32(x15, 0x0, x4);
+ uint32_t x20, uint8_t x21 = subborrow_u32(x18, 0x0, x6);
+ uint32_t x23, uint8_t x24 = subborrow_u32(x21, 0x0, x8);
+ uint32_t x26, uint8_t x27 = subborrow_u32(x24, 0x0, x10);
+ uint32_t x29, uint8_t x30 = subborrow_u32(x27, 0x0, x12);
+ uint32_t x32, uint8_t x33 = subborrow_u32(x30, 0x0, x11);
+ uint32_t x34 = (uint32_t)cmovznz(x33, 0x0, 0xffffffff);
+ uint32_t x35 = (x34 & 0xffffffff);
+ uint32_t x37, uint8_t x38 = addcarryx_u32(0x0, x14, x35);
+ uint32_t x39 = (x34 & 0xffffffff);
+ uint32_t x41, uint8_t x42 = addcarryx_u32(x38, x17, x39);
+ uint32_t x43 = (x34 & 0xffffffff);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x42, x20, x43);
+ uint32_t x47 = (x34 & 0xffffffff);
+ uint32_t x49, uint8_t x50 = addcarryx_u32(x46, x23, x47);
+ uint32_t x51 = (x34 & 0xffffffff);
+ uint32_t x53, uint8_t x54 = addcarryx_u32(x50, x26, x51);
+ uint32_t x55 = (x34 & 0xffffffff);
+ uint32_t x57, uint8_t x58 = addcarryx_u32(x54, x29, x55);
+ uint32_t x59 = (x34 & 0x14bf);
+ uint32_t x61, uint8_t _ = addcarryx_u32(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e205m45x2e198m1/fesubDisplay.log b/src/Specific/montgomery32_2e205m45x2e198m1/fesubDisplay.log
new file mode 100644
index 000000000..ac03bd3c7
--- /dev/null
+++ b/src/Specific/montgomery32_2e205m45x2e198m1/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint8_t x30 = subborrow_u32(0x0, x5, x17);
+ uint32_t x32, uint8_t x33 = subborrow_u32(x30, x7, x19);
+ uint32_t x35, uint8_t x36 = subborrow_u32(x33, x9, x21);
+ uint32_t x38, uint8_t x39 = subborrow_u32(x36, x11, x23);
+ uint32_t x41, uint8_t x42 = subborrow_u32(x39, x13, x25);
+ uint32_t x44, uint8_t x45 = subborrow_u32(x42, x15, x27);
+ uint32_t x47, uint8_t x48 = subborrow_u32(x45, x14, x26);
+ uint32_t x49 = (uint32_t)cmovznz(x48, 0x0, 0xffffffff);
+ uint32_t x50 = (x49 & 0xffffffff);
+ uint32_t x52, uint8_t x53 = addcarryx_u32(0x0, x29, x50);
+ uint32_t x54 = (x49 & 0xffffffff);
+ uint32_t x56, uint8_t x57 = addcarryx_u32(x53, x32, x54);
+ uint32_t x58 = (x49 & 0xffffffff);
+ uint32_t x60, uint8_t x61 = addcarryx_u32(x57, x35, x58);
+ uint32_t x62 = (x49 & 0xffffffff);
+ uint32_t x64, uint8_t x65 = addcarryx_u32(x61, x38, x62);
+ uint32_t x66 = (x49 & 0xffffffff);
+ uint32_t x68, uint8_t x69 = addcarryx_u32(x65, x41, x66);
+ uint32_t x70 = (x49 & 0xffffffff);
+ uint32_t x72, uint8_t x73 = addcarryx_u32(x69, x44, x70);
+ uint32_t x74 = (x49 & 0x14bf);
+ uint32_t x76, uint8_t _ = addcarryx_u32(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e216m2e108m1/feaddDisplay.log b/src/Specific/montgomery32_2e216m2e108m1/feaddDisplay.log
new file mode 100644
index 000000000..49bf497b1
--- /dev/null
+++ b/src/Specific/montgomery32_2e216m2e108m1/feaddDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint8_t x30 = addcarryx_u32(0x0, x5, x17);
+ uint32_t x32, uint8_t x33 = addcarryx_u32(x30, x7, x19);
+ uint32_t x35, uint8_t x36 = addcarryx_u32(x33, x9, x21);
+ uint32_t x38, uint8_t x39 = addcarryx_u32(x36, x11, x23);
+ uint32_t x41, uint8_t x42 = addcarryx_u32(x39, x13, x25);
+ uint32_t x44, uint8_t x45 = addcarryx_u32(x42, x15, x27);
+ uint32_t x47, uint8_t x48 = addcarryx_u32(x45, x14, x26);
+ uint32_t x50, uint8_t x51 = subborrow_u32(0x0, x29, 0xffffffff);
+ uint32_t x53, uint8_t x54 = subborrow_u32(x51, x32, 0xffffffff);
+ uint32_t x56, uint8_t x57 = subborrow_u32(x54, x35, 0xffffffff);
+ uint32_t x59, uint8_t x60 = subborrow_u32(x57, x38, 0xffffefff);
+ uint32_t x62, uint8_t x63 = subborrow_u32(x60, x41, 0xffffffff);
+ uint32_t x65, uint8_t x66 = subborrow_u32(x63, x44, 0xffffffff);
+ uint32_t x68, uint8_t x69 = subborrow_u32(x66, x47, 0xffffff);
+ uint32_t _, uint8_t x72 = subborrow_u32(x69, x48, 0x0);
+ uint32_t x73 = cmovznz(x72, x68, x47);
+ uint32_t x74 = cmovznz(x72, x65, x44);
+ uint32_t x75 = cmovznz(x72, x62, x41);
+ uint32_t x76 = cmovznz(x72, x59, x38);
+ uint32_t x77 = cmovznz(x72, x56, x35);
+ uint32_t x78 = cmovznz(x72, x53, x32);
+ uint32_t x79 = cmovznz(x72, x50, x29);
+ return (x73, x74, x75, x76, x77, x78, x79))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e216m2e108m1/femulDisplay.log b/src/Specific/montgomery32_2e216m2e108m1/femulDisplay.log
new file mode 100644
index 000000000..e829e0a1a
--- /dev/null
+++ b/src/Specific/montgomery32_2e216m2e108m1/femulDisplay.log
@@ -0,0 +1,328 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint32_t x30 = mulx_u32(x5, x17);
+ uint32_t x32, uint32_t x33 = mulx_u32(x5, x19);
+ uint32_t x35, uint32_t x36 = mulx_u32(x5, x21);
+ uint32_t x38, uint32_t x39 = mulx_u32(x5, x23);
+ uint32_t x41, uint32_t x42 = mulx_u32(x5, x25);
+ uint32_t x44, uint32_t x45 = mulx_u32(x5, x27);
+ uint32_t x47, uint32_t x48 = mulx_u32(x5, x26);
+ uint32_t x50, uint8_t x51 = addcarryx_u32(0x0, x30, x32);
+ uint32_t x53, uint8_t x54 = addcarryx_u32(x51, x33, x35);
+ uint32_t x56, uint8_t x57 = addcarryx_u32(x54, x36, x38);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(x57, x39, x41);
+ uint32_t x62, uint8_t x63 = addcarryx_u32(x60, x42, x44);
+ uint32_t x65, uint8_t x66 = addcarryx_u32(x63, x45, x47);
+ uint32_t x68, uint8_t _ = addcarryx_u32(0x0, x66, x48);
+ uint32_t x71, uint32_t x72 = mulx_u32(x29, 0xffffffff);
+ uint32_t x74, uint32_t x75 = mulx_u32(x29, 0xffffffff);
+ uint32_t x77, uint32_t x78 = mulx_u32(x29, 0xffffffff);
+ uint32_t x80, uint32_t x81 = mulx_u32(x29, 0xffffefff);
+ uint32_t x83, uint32_t x84 = mulx_u32(x29, 0xffffffff);
+ uint32_t x86, uint32_t x87 = mulx_u32(x29, 0xffffffff);
+ uint32_t x89, uint32_t x90 = mulx_u32(x29, 0xffffff);
+ uint32_t x92, uint8_t x93 = addcarryx_u32(0x0, x72, x74);
+ uint32_t x95, uint8_t x96 = addcarryx_u32(x93, x75, x77);
+ uint32_t x98, uint8_t x99 = addcarryx_u32(x96, x78, x80);
+ uint32_t x101, uint8_t x102 = addcarryx_u32(x99, x81, x83);
+ uint32_t x104, uint8_t x105 = addcarryx_u32(x102, x84, x86);
+ uint32_t x107, uint8_t x108 = addcarryx_u32(x105, x87, x89);
+ uint32_t x110, uint8_t _ = addcarryx_u32(0x0, x108, x90);
+ uint32_t _, uint8_t x114 = addcarryx_u32(0x0, x29, x71);
+ uint32_t x116, uint8_t x117 = addcarryx_u32(x114, x50, x92);
+ uint32_t x119, uint8_t x120 = addcarryx_u32(x117, x53, x95);
+ uint32_t x122, uint8_t x123 = addcarryx_u32(x120, x56, x98);
+ uint32_t x125, uint8_t x126 = addcarryx_u32(x123, x59, x101);
+ uint32_t x128, uint8_t x129 = addcarryx_u32(x126, x62, x104);
+ uint32_t x131, uint8_t x132 = addcarryx_u32(x129, x65, x107);
+ uint32_t x134, uint8_t x135 = addcarryx_u32(x132, x68, x110);
+ uint32_t x137, uint32_t x138 = mulx_u32(x7, x17);
+ uint32_t x140, uint32_t x141 = mulx_u32(x7, x19);
+ uint32_t x143, uint32_t x144 = mulx_u32(x7, x21);
+ uint32_t x146, uint32_t x147 = mulx_u32(x7, x23);
+ uint32_t x149, uint32_t x150 = mulx_u32(x7, x25);
+ uint32_t x152, uint32_t x153 = mulx_u32(x7, x27);
+ uint32_t x155, uint32_t x156 = mulx_u32(x7, x26);
+ uint32_t x158, uint8_t x159 = addcarryx_u32(0x0, x138, x140);
+ uint32_t x161, uint8_t x162 = addcarryx_u32(x159, x141, x143);
+ uint32_t x164, uint8_t x165 = addcarryx_u32(x162, x144, x146);
+ uint32_t x167, uint8_t x168 = addcarryx_u32(x165, x147, x149);
+ uint32_t x170, uint8_t x171 = addcarryx_u32(x168, x150, x152);
+ uint32_t x173, uint8_t x174 = addcarryx_u32(x171, x153, x155);
+ uint32_t x176, uint8_t _ = addcarryx_u32(0x0, x174, x156);
+ uint32_t x179, uint8_t x180 = addcarryx_u32(0x0, x116, x137);
+ uint32_t x182, uint8_t x183 = addcarryx_u32(x180, x119, x158);
+ uint32_t x185, uint8_t x186 = addcarryx_u32(x183, x122, x161);
+ uint32_t x188, uint8_t x189 = addcarryx_u32(x186, x125, x164);
+ uint32_t x191, uint8_t x192 = addcarryx_u32(x189, x128, x167);
+ uint32_t x194, uint8_t x195 = addcarryx_u32(x192, x131, x170);
+ uint32_t x197, uint8_t x198 = addcarryx_u32(x195, x134, x173);
+ uint32_t x200, uint8_t x201 = addcarryx_u32(x198, x135, x176);
+ uint32_t x203, uint32_t x204 = mulx_u32(x179, 0xffffffff);
+ uint32_t x206, uint32_t x207 = mulx_u32(x179, 0xffffffff);
+ uint32_t x209, uint32_t x210 = mulx_u32(x179, 0xffffffff);
+ uint32_t x212, uint32_t x213 = mulx_u32(x179, 0xffffefff);
+ uint32_t x215, uint32_t x216 = mulx_u32(x179, 0xffffffff);
+ uint32_t x218, uint32_t x219 = mulx_u32(x179, 0xffffffff);
+ uint32_t x221, uint32_t x222 = mulx_u32(x179, 0xffffff);
+ uint32_t x224, uint8_t x225 = addcarryx_u32(0x0, x204, x206);
+ uint32_t x227, uint8_t x228 = addcarryx_u32(x225, x207, x209);
+ uint32_t x230, uint8_t x231 = addcarryx_u32(x228, x210, x212);
+ uint32_t x233, uint8_t x234 = addcarryx_u32(x231, x213, x215);
+ uint32_t x236, uint8_t x237 = addcarryx_u32(x234, x216, x218);
+ uint32_t x239, uint8_t x240 = addcarryx_u32(x237, x219, x221);
+ uint32_t x242, uint8_t _ = addcarryx_u32(0x0, x240, x222);
+ uint32_t _, uint8_t x246 = addcarryx_u32(0x0, x179, x203);
+ uint32_t x248, uint8_t x249 = addcarryx_u32(x246, x182, x224);
+ uint32_t x251, uint8_t x252 = addcarryx_u32(x249, x185, x227);
+ uint32_t x254, uint8_t x255 = addcarryx_u32(x252, x188, x230);
+ uint32_t x257, uint8_t x258 = addcarryx_u32(x255, x191, x233);
+ uint32_t x260, uint8_t x261 = addcarryx_u32(x258, x194, x236);
+ uint32_t x263, uint8_t x264 = addcarryx_u32(x261, x197, x239);
+ uint32_t x266, uint8_t x267 = addcarryx_u32(x264, x200, x242);
+ uint8_t x268 = (x267 + x201);
+ uint32_t x270, uint32_t x271 = mulx_u32(x9, x17);
+ uint32_t x273, uint32_t x274 = mulx_u32(x9, x19);
+ uint32_t x276, uint32_t x277 = mulx_u32(x9, x21);
+ uint32_t x279, uint32_t x280 = mulx_u32(x9, x23);
+ uint32_t x282, uint32_t x283 = mulx_u32(x9, x25);
+ uint32_t x285, uint32_t x286 = mulx_u32(x9, x27);
+ uint32_t x288, uint32_t x289 = mulx_u32(x9, x26);
+ uint32_t x291, uint8_t x292 = addcarryx_u32(0x0, x271, x273);
+ uint32_t x294, uint8_t x295 = addcarryx_u32(x292, x274, x276);
+ uint32_t x297, uint8_t x298 = addcarryx_u32(x295, x277, x279);
+ uint32_t x300, uint8_t x301 = addcarryx_u32(x298, x280, x282);
+ uint32_t x303, uint8_t x304 = addcarryx_u32(x301, x283, x285);
+ uint32_t x306, uint8_t x307 = addcarryx_u32(x304, x286, x288);
+ uint32_t x309, uint8_t _ = addcarryx_u32(0x0, x307, x289);
+ uint32_t x312, uint8_t x313 = addcarryx_u32(0x0, x248, x270);
+ uint32_t x315, uint8_t x316 = addcarryx_u32(x313, x251, x291);
+ uint32_t x318, uint8_t x319 = addcarryx_u32(x316, x254, x294);
+ uint32_t x321, uint8_t x322 = addcarryx_u32(x319, x257, x297);
+ uint32_t x324, uint8_t x325 = addcarryx_u32(x322, x260, x300);
+ uint32_t x327, uint8_t x328 = addcarryx_u32(x325, x263, x303);
+ uint32_t x330, uint8_t x331 = addcarryx_u32(x328, x266, x306);
+ uint32_t x333, uint8_t x334 = addcarryx_u32(x331, x268, x309);
+ uint32_t x336, uint32_t x337 = mulx_u32(x312, 0xffffffff);
+ uint32_t x339, uint32_t x340 = mulx_u32(x312, 0xffffffff);
+ uint32_t x342, uint32_t x343 = mulx_u32(x312, 0xffffffff);
+ uint32_t x345, uint32_t x346 = mulx_u32(x312, 0xffffefff);
+ uint32_t x348, uint32_t x349 = mulx_u32(x312, 0xffffffff);
+ uint32_t x351, uint32_t x352 = mulx_u32(x312, 0xffffffff);
+ uint32_t x354, uint32_t x355 = mulx_u32(x312, 0xffffff);
+ uint32_t x357, uint8_t x358 = addcarryx_u32(0x0, x337, x339);
+ uint32_t x360, uint8_t x361 = addcarryx_u32(x358, x340, x342);
+ uint32_t x363, uint8_t x364 = addcarryx_u32(x361, x343, x345);
+ uint32_t x366, uint8_t x367 = addcarryx_u32(x364, x346, x348);
+ uint32_t x369, uint8_t x370 = addcarryx_u32(x367, x349, x351);
+ uint32_t x372, uint8_t x373 = addcarryx_u32(x370, x352, x354);
+ uint32_t x375, uint8_t _ = addcarryx_u32(0x0, x373, x355);
+ uint32_t _, uint8_t x379 = addcarryx_u32(0x0, x312, x336);
+ uint32_t x381, uint8_t x382 = addcarryx_u32(x379, x315, x357);
+ uint32_t x384, uint8_t x385 = addcarryx_u32(x382, x318, x360);
+ uint32_t x387, uint8_t x388 = addcarryx_u32(x385, x321, x363);
+ uint32_t x390, uint8_t x391 = addcarryx_u32(x388, x324, x366);
+ uint32_t x393, uint8_t x394 = addcarryx_u32(x391, x327, x369);
+ uint32_t x396, uint8_t x397 = addcarryx_u32(x394, x330, x372);
+ uint32_t x399, uint8_t x400 = addcarryx_u32(x397, x333, x375);
+ uint8_t x401 = (x400 + x334);
+ uint32_t x403, uint32_t x404 = mulx_u32(x11, x17);
+ uint32_t x406, uint32_t x407 = mulx_u32(x11, x19);
+ uint32_t x409, uint32_t x410 = mulx_u32(x11, x21);
+ uint32_t x412, uint32_t x413 = mulx_u32(x11, x23);
+ uint32_t x415, uint32_t x416 = mulx_u32(x11, x25);
+ uint32_t x418, uint32_t x419 = mulx_u32(x11, x27);
+ uint32_t x421, uint32_t x422 = mulx_u32(x11, x26);
+ uint32_t x424, uint8_t x425 = addcarryx_u32(0x0, x404, x406);
+ uint32_t x427, uint8_t x428 = addcarryx_u32(x425, x407, x409);
+ uint32_t x430, uint8_t x431 = addcarryx_u32(x428, x410, x412);
+ uint32_t x433, uint8_t x434 = addcarryx_u32(x431, x413, x415);
+ uint32_t x436, uint8_t x437 = addcarryx_u32(x434, x416, x418);
+ uint32_t x439, uint8_t x440 = addcarryx_u32(x437, x419, x421);
+ uint32_t x442, uint8_t _ = addcarryx_u32(0x0, x440, x422);
+ uint32_t x445, uint8_t x446 = addcarryx_u32(0x0, x381, x403);
+ uint32_t x448, uint8_t x449 = addcarryx_u32(x446, x384, x424);
+ uint32_t x451, uint8_t x452 = addcarryx_u32(x449, x387, x427);
+ uint32_t x454, uint8_t x455 = addcarryx_u32(x452, x390, x430);
+ uint32_t x457, uint8_t x458 = addcarryx_u32(x455, x393, x433);
+ uint32_t x460, uint8_t x461 = addcarryx_u32(x458, x396, x436);
+ uint32_t x463, uint8_t x464 = addcarryx_u32(x461, x399, x439);
+ uint32_t x466, uint8_t x467 = addcarryx_u32(x464, x401, x442);
+ uint32_t x469, uint32_t x470 = mulx_u32(x445, 0xffffffff);
+ uint32_t x472, uint32_t x473 = mulx_u32(x445, 0xffffffff);
+ uint32_t x475, uint32_t x476 = mulx_u32(x445, 0xffffffff);
+ uint32_t x478, uint32_t x479 = mulx_u32(x445, 0xffffefff);
+ uint32_t x481, uint32_t x482 = mulx_u32(x445, 0xffffffff);
+ uint32_t x484, uint32_t x485 = mulx_u32(x445, 0xffffffff);
+ uint32_t x487, uint32_t x488 = mulx_u32(x445, 0xffffff);
+ uint32_t x490, uint8_t x491 = addcarryx_u32(0x0, x470, x472);
+ uint32_t x493, uint8_t x494 = addcarryx_u32(x491, x473, x475);
+ uint32_t x496, uint8_t x497 = addcarryx_u32(x494, x476, x478);
+ uint32_t x499, uint8_t x500 = addcarryx_u32(x497, x479, x481);
+ uint32_t x502, uint8_t x503 = addcarryx_u32(x500, x482, x484);
+ uint32_t x505, uint8_t x506 = addcarryx_u32(x503, x485, x487);
+ uint32_t x508, uint8_t _ = addcarryx_u32(0x0, x506, x488);
+ uint32_t _, uint8_t x512 = addcarryx_u32(0x0, x445, x469);
+ uint32_t x514, uint8_t x515 = addcarryx_u32(x512, x448, x490);
+ uint32_t x517, uint8_t x518 = addcarryx_u32(x515, x451, x493);
+ uint32_t x520, uint8_t x521 = addcarryx_u32(x518, x454, x496);
+ uint32_t x523, uint8_t x524 = addcarryx_u32(x521, x457, x499);
+ uint32_t x526, uint8_t x527 = addcarryx_u32(x524, x460, x502);
+ uint32_t x529, uint8_t x530 = addcarryx_u32(x527, x463, x505);
+ uint32_t x532, uint8_t x533 = addcarryx_u32(x530, x466, x508);
+ uint8_t x534 = (x533 + x467);
+ uint32_t x536, uint32_t x537 = mulx_u32(x13, x17);
+ uint32_t x539, uint32_t x540 = mulx_u32(x13, x19);
+ uint32_t x542, uint32_t x543 = mulx_u32(x13, x21);
+ uint32_t x545, uint32_t x546 = mulx_u32(x13, x23);
+ uint32_t x548, uint32_t x549 = mulx_u32(x13, x25);
+ uint32_t x551, uint32_t x552 = mulx_u32(x13, x27);
+ uint32_t x554, uint32_t x555 = mulx_u32(x13, x26);
+ uint32_t x557, uint8_t x558 = addcarryx_u32(0x0, x537, x539);
+ uint32_t x560, uint8_t x561 = addcarryx_u32(x558, x540, x542);
+ uint32_t x563, uint8_t x564 = addcarryx_u32(x561, x543, x545);
+ uint32_t x566, uint8_t x567 = addcarryx_u32(x564, x546, x548);
+ uint32_t x569, uint8_t x570 = addcarryx_u32(x567, x549, x551);
+ uint32_t x572, uint8_t x573 = addcarryx_u32(x570, x552, x554);
+ uint32_t x575, uint8_t _ = addcarryx_u32(0x0, x573, x555);
+ uint32_t x578, uint8_t x579 = addcarryx_u32(0x0, x514, x536);
+ uint32_t x581, uint8_t x582 = addcarryx_u32(x579, x517, x557);
+ uint32_t x584, uint8_t x585 = addcarryx_u32(x582, x520, x560);
+ uint32_t x587, uint8_t x588 = addcarryx_u32(x585, x523, x563);
+ uint32_t x590, uint8_t x591 = addcarryx_u32(x588, x526, x566);
+ uint32_t x593, uint8_t x594 = addcarryx_u32(x591, x529, x569);
+ uint32_t x596, uint8_t x597 = addcarryx_u32(x594, x532, x572);
+ uint32_t x599, uint8_t x600 = addcarryx_u32(x597, x534, x575);
+ uint32_t x602, uint32_t x603 = mulx_u32(x578, 0xffffffff);
+ uint32_t x605, uint32_t x606 = mulx_u32(x578, 0xffffffff);
+ uint32_t x608, uint32_t x609 = mulx_u32(x578, 0xffffffff);
+ uint32_t x611, uint32_t x612 = mulx_u32(x578, 0xffffefff);
+ uint32_t x614, uint32_t x615 = mulx_u32(x578, 0xffffffff);
+ uint32_t x617, uint32_t x618 = mulx_u32(x578, 0xffffffff);
+ uint32_t x620, uint32_t x621 = mulx_u32(x578, 0xffffff);
+ uint32_t x623, uint8_t x624 = addcarryx_u32(0x0, x603, x605);
+ uint32_t x626, uint8_t x627 = addcarryx_u32(x624, x606, x608);
+ uint32_t x629, uint8_t x630 = addcarryx_u32(x627, x609, x611);
+ uint32_t x632, uint8_t x633 = addcarryx_u32(x630, x612, x614);
+ uint32_t x635, uint8_t x636 = addcarryx_u32(x633, x615, x617);
+ uint32_t x638, uint8_t x639 = addcarryx_u32(x636, x618, x620);
+ uint32_t x641, uint8_t _ = addcarryx_u32(0x0, x639, x621);
+ uint32_t _, uint8_t x645 = addcarryx_u32(0x0, x578, x602);
+ uint32_t x647, uint8_t x648 = addcarryx_u32(x645, x581, x623);
+ uint32_t x650, uint8_t x651 = addcarryx_u32(x648, x584, x626);
+ uint32_t x653, uint8_t x654 = addcarryx_u32(x651, x587, x629);
+ uint32_t x656, uint8_t x657 = addcarryx_u32(x654, x590, x632);
+ uint32_t x659, uint8_t x660 = addcarryx_u32(x657, x593, x635);
+ uint32_t x662, uint8_t x663 = addcarryx_u32(x660, x596, x638);
+ uint32_t x665, uint8_t x666 = addcarryx_u32(x663, x599, x641);
+ uint8_t x667 = (x666 + x600);
+ uint32_t x669, uint32_t x670 = mulx_u32(x15, x17);
+ uint32_t x672, uint32_t x673 = mulx_u32(x15, x19);
+ uint32_t x675, uint32_t x676 = mulx_u32(x15, x21);
+ uint32_t x678, uint32_t x679 = mulx_u32(x15, x23);
+ uint32_t x681, uint32_t x682 = mulx_u32(x15, x25);
+ uint32_t x684, uint32_t x685 = mulx_u32(x15, x27);
+ uint32_t x687, uint32_t x688 = mulx_u32(x15, x26);
+ uint32_t x690, uint8_t x691 = addcarryx_u32(0x0, x670, x672);
+ uint32_t x693, uint8_t x694 = addcarryx_u32(x691, x673, x675);
+ uint32_t x696, uint8_t x697 = addcarryx_u32(x694, x676, x678);
+ uint32_t x699, uint8_t x700 = addcarryx_u32(x697, x679, x681);
+ uint32_t x702, uint8_t x703 = addcarryx_u32(x700, x682, x684);
+ uint32_t x705, uint8_t x706 = addcarryx_u32(x703, x685, x687);
+ uint32_t x708, uint8_t _ = addcarryx_u32(0x0, x706, x688);
+ uint32_t x711, uint8_t x712 = addcarryx_u32(0x0, x647, x669);
+ uint32_t x714, uint8_t x715 = addcarryx_u32(x712, x650, x690);
+ uint32_t x717, uint8_t x718 = addcarryx_u32(x715, x653, x693);
+ uint32_t x720, uint8_t x721 = addcarryx_u32(x718, x656, x696);
+ uint32_t x723, uint8_t x724 = addcarryx_u32(x721, x659, x699);
+ uint32_t x726, uint8_t x727 = addcarryx_u32(x724, x662, x702);
+ uint32_t x729, uint8_t x730 = addcarryx_u32(x727, x665, x705);
+ uint32_t x732, uint8_t x733 = addcarryx_u32(x730, x667, x708);
+ uint32_t x735, uint32_t x736 = mulx_u32(x711, 0xffffffff);
+ uint32_t x738, uint32_t x739 = mulx_u32(x711, 0xffffffff);
+ uint32_t x741, uint32_t x742 = mulx_u32(x711, 0xffffffff);
+ uint32_t x744, uint32_t x745 = mulx_u32(x711, 0xffffefff);
+ uint32_t x747, uint32_t x748 = mulx_u32(x711, 0xffffffff);
+ uint32_t x750, uint32_t x751 = mulx_u32(x711, 0xffffffff);
+ uint32_t x753, uint32_t x754 = mulx_u32(x711, 0xffffff);
+ uint32_t x756, uint8_t x757 = addcarryx_u32(0x0, x736, x738);
+ uint32_t x759, uint8_t x760 = addcarryx_u32(x757, x739, x741);
+ uint32_t x762, uint8_t x763 = addcarryx_u32(x760, x742, x744);
+ uint32_t x765, uint8_t x766 = addcarryx_u32(x763, x745, x747);
+ uint32_t x768, uint8_t x769 = addcarryx_u32(x766, x748, x750);
+ uint32_t x771, uint8_t x772 = addcarryx_u32(x769, x751, x753);
+ uint32_t x774, uint8_t _ = addcarryx_u32(0x0, x772, x754);
+ uint32_t _, uint8_t x778 = addcarryx_u32(0x0, x711, x735);
+ uint32_t x780, uint8_t x781 = addcarryx_u32(x778, x714, x756);
+ uint32_t x783, uint8_t x784 = addcarryx_u32(x781, x717, x759);
+ uint32_t x786, uint8_t x787 = addcarryx_u32(x784, x720, x762);
+ uint32_t x789, uint8_t x790 = addcarryx_u32(x787, x723, x765);
+ uint32_t x792, uint8_t x793 = addcarryx_u32(x790, x726, x768);
+ uint32_t x795, uint8_t x796 = addcarryx_u32(x793, x729, x771);
+ uint32_t x798, uint8_t x799 = addcarryx_u32(x796, x732, x774);
+ uint8_t x800 = (x799 + x733);
+ uint32_t x802, uint32_t x803 = mulx_u32(x14, x17);
+ uint32_t x805, uint32_t x806 = mulx_u32(x14, x19);
+ uint32_t x808, uint32_t x809 = mulx_u32(x14, x21);
+ uint32_t x811, uint32_t x812 = mulx_u32(x14, x23);
+ uint32_t x814, uint32_t x815 = mulx_u32(x14, x25);
+ uint32_t x817, uint32_t x818 = mulx_u32(x14, x27);
+ uint32_t x820, uint32_t x821 = mulx_u32(x14, x26);
+ uint32_t x823, uint8_t x824 = addcarryx_u32(0x0, x803, x805);
+ uint32_t x826, uint8_t x827 = addcarryx_u32(x824, x806, x808);
+ uint32_t x829, uint8_t x830 = addcarryx_u32(x827, x809, x811);
+ uint32_t x832, uint8_t x833 = addcarryx_u32(x830, x812, x814);
+ uint32_t x835, uint8_t x836 = addcarryx_u32(x833, x815, x817);
+ uint32_t x838, uint8_t x839 = addcarryx_u32(x836, x818, x820);
+ uint32_t x841, uint8_t _ = addcarryx_u32(0x0, x839, x821);
+ uint32_t x844, uint8_t x845 = addcarryx_u32(0x0, x780, x802);
+ uint32_t x847, uint8_t x848 = addcarryx_u32(x845, x783, x823);
+ uint32_t x850, uint8_t x851 = addcarryx_u32(x848, x786, x826);
+ uint32_t x853, uint8_t x854 = addcarryx_u32(x851, x789, x829);
+ uint32_t x856, uint8_t x857 = addcarryx_u32(x854, x792, x832);
+ uint32_t x859, uint8_t x860 = addcarryx_u32(x857, x795, x835);
+ uint32_t x862, uint8_t x863 = addcarryx_u32(x860, x798, x838);
+ uint32_t x865, uint8_t x866 = addcarryx_u32(x863, x800, x841);
+ uint32_t x868, uint32_t x869 = mulx_u32(x844, 0xffffffff);
+ uint32_t x871, uint32_t x872 = mulx_u32(x844, 0xffffffff);
+ uint32_t x874, uint32_t x875 = mulx_u32(x844, 0xffffffff);
+ uint32_t x877, uint32_t x878 = mulx_u32(x844, 0xffffefff);
+ uint32_t x880, uint32_t x881 = mulx_u32(x844, 0xffffffff);
+ uint32_t x883, uint32_t x884 = mulx_u32(x844, 0xffffffff);
+ uint32_t x886, uint32_t x887 = mulx_u32(x844, 0xffffff);
+ uint32_t x889, uint8_t x890 = addcarryx_u32(0x0, x869, x871);
+ uint32_t x892, uint8_t x893 = addcarryx_u32(x890, x872, x874);
+ uint32_t x895, uint8_t x896 = addcarryx_u32(x893, x875, x877);
+ uint32_t x898, uint8_t x899 = addcarryx_u32(x896, x878, x880);
+ uint32_t x901, uint8_t x902 = addcarryx_u32(x899, x881, x883);
+ uint32_t x904, uint8_t x905 = addcarryx_u32(x902, x884, x886);
+ uint32_t x907, uint8_t _ = addcarryx_u32(0x0, x905, x887);
+ uint32_t _, uint8_t x911 = addcarryx_u32(0x0, x844, x868);
+ uint32_t x913, uint8_t x914 = addcarryx_u32(x911, x847, x889);
+ uint32_t x916, uint8_t x917 = addcarryx_u32(x914, x850, x892);
+ uint32_t x919, uint8_t x920 = addcarryx_u32(x917, x853, x895);
+ uint32_t x922, uint8_t x923 = addcarryx_u32(x920, x856, x898);
+ uint32_t x925, uint8_t x926 = addcarryx_u32(x923, x859, x901);
+ uint32_t x928, uint8_t x929 = addcarryx_u32(x926, x862, x904);
+ uint32_t x931, uint8_t x932 = addcarryx_u32(x929, x865, x907);
+ uint8_t x933 = (x932 + x866);
+ uint32_t x935, uint8_t x936 = subborrow_u32(0x0, x913, 0xffffffff);
+ uint32_t x938, uint8_t x939 = subborrow_u32(x936, x916, 0xffffffff);
+ uint32_t x941, uint8_t x942 = subborrow_u32(x939, x919, 0xffffffff);
+ uint32_t x944, uint8_t x945 = subborrow_u32(x942, x922, 0xffffefff);
+ uint32_t x947, uint8_t x948 = subborrow_u32(x945, x925, 0xffffffff);
+ uint32_t x950, uint8_t x951 = subborrow_u32(x948, x928, 0xffffffff);
+ uint32_t x953, uint8_t x954 = subborrow_u32(x951, x931, 0xffffff);
+ uint32_t _, uint8_t x957 = subborrow_u32(x954, x933, 0x0);
+ uint32_t x958 = cmovznz(x957, x953, x931);
+ uint32_t x959 = cmovznz(x957, x950, x928);
+ uint32_t x960 = cmovznz(x957, x947, x925);
+ uint32_t x961 = cmovznz(x957, x944, x922);
+ uint32_t x962 = cmovznz(x957, x941, x919);
+ uint32_t x963 = cmovznz(x957, x938, x916);
+ uint32_t x964 = cmovznz(x957, x935, x913);
+ return (x958, x959, x960, x961, x962, x963, x964))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e216m2e108m1/feoppDisplay.log b/src/Specific/montgomery32_2e216m2e108m1/feoppDisplay.log
new file mode 100644
index 000000000..44e9922cf
--- /dev/null
+++ b/src/Specific/montgomery32_2e216m2e108m1/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x14, uint8_t x15 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x17, uint8_t x18 = subborrow_u32(x15, 0x0, x4);
+ uint32_t x20, uint8_t x21 = subborrow_u32(x18, 0x0, x6);
+ uint32_t x23, uint8_t x24 = subborrow_u32(x21, 0x0, x8);
+ uint32_t x26, uint8_t x27 = subborrow_u32(x24, 0x0, x10);
+ uint32_t x29, uint8_t x30 = subborrow_u32(x27, 0x0, x12);
+ uint32_t x32, uint8_t x33 = subborrow_u32(x30, 0x0, x11);
+ uint32_t x34 = (uint32_t)cmovznz(x33, 0x0, 0xffffffff);
+ uint32_t x35 = (x34 & 0xffffffff);
+ uint32_t x37, uint8_t x38 = addcarryx_u32(0x0, x14, x35);
+ uint32_t x39 = (x34 & 0xffffffff);
+ uint32_t x41, uint8_t x42 = addcarryx_u32(x38, x17, x39);
+ uint32_t x43 = (x34 & 0xffffffff);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x42, x20, x43);
+ uint32_t x47 = (x34 & 0xffffefff);
+ uint32_t x49, uint8_t x50 = addcarryx_u32(x46, x23, x47);
+ uint32_t x51 = (x34 & 0xffffffff);
+ uint32_t x53, uint8_t x54 = addcarryx_u32(x50, x26, x51);
+ uint32_t x55 = (x34 & 0xffffffff);
+ uint32_t x57, uint8_t x58 = addcarryx_u32(x54, x29, x55);
+ uint32_t x59 = (x34 & 0xffffff);
+ uint32_t x61, uint8_t _ = addcarryx_u32(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e216m2e108m1/fesubDisplay.log b/src/Specific/montgomery32_2e216m2e108m1/fesubDisplay.log
new file mode 100644
index 000000000..694ffa134
--- /dev/null
+++ b/src/Specific/montgomery32_2e216m2e108m1/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint8_t x30 = subborrow_u32(0x0, x5, x17);
+ uint32_t x32, uint8_t x33 = subborrow_u32(x30, x7, x19);
+ uint32_t x35, uint8_t x36 = subborrow_u32(x33, x9, x21);
+ uint32_t x38, uint8_t x39 = subborrow_u32(x36, x11, x23);
+ uint32_t x41, uint8_t x42 = subborrow_u32(x39, x13, x25);
+ uint32_t x44, uint8_t x45 = subborrow_u32(x42, x15, x27);
+ uint32_t x47, uint8_t x48 = subborrow_u32(x45, x14, x26);
+ uint32_t x49 = (uint32_t)cmovznz(x48, 0x0, 0xffffffff);
+ uint32_t x50 = (x49 & 0xffffffff);
+ uint32_t x52, uint8_t x53 = addcarryx_u32(0x0, x29, x50);
+ uint32_t x54 = (x49 & 0xffffffff);
+ uint32_t x56, uint8_t x57 = addcarryx_u32(x53, x32, x54);
+ uint32_t x58 = (x49 & 0xffffffff);
+ uint32_t x60, uint8_t x61 = addcarryx_u32(x57, x35, x58);
+ uint32_t x62 = (x49 & 0xffffefff);
+ uint32_t x64, uint8_t x65 = addcarryx_u32(x61, x38, x62);
+ uint32_t x66 = (x49 & 0xffffffff);
+ uint32_t x68, uint8_t x69 = addcarryx_u32(x65, x41, x66);
+ uint32_t x70 = (x49 & 0xffffffff);
+ uint32_t x72, uint8_t x73 = addcarryx_u32(x69, x44, x70);
+ uint32_t x74 = (x49 & 0xffffff);
+ uint32_t x76, uint8_t _ = addcarryx_u32(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e221m3/fesubDisplay.log b/src/Specific/montgomery32_2e221m3/fesubDisplay.log
new file mode 100644
index 000000000..94ca494e3
--- /dev/null
+++ b/src/Specific/montgomery32_2e221m3/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint8_t x30 = subborrow_u32(0x0, x5, x17);
+ uint32_t x32, uint8_t x33 = subborrow_u32(x30, x7, x19);
+ uint32_t x35, uint8_t x36 = subborrow_u32(x33, x9, x21);
+ uint32_t x38, uint8_t x39 = subborrow_u32(x36, x11, x23);
+ uint32_t x41, uint8_t x42 = subborrow_u32(x39, x13, x25);
+ uint32_t x44, uint8_t x45 = subborrow_u32(x42, x15, x27);
+ uint32_t x47, uint8_t x48 = subborrow_u32(x45, x14, x26);
+ uint32_t x49 = (uint32_t)cmovznz(x48, 0x0, 0xffffffff);
+ uint32_t x50 = (x49 & 0xfffffffd);
+ uint32_t x52, uint8_t x53 = addcarryx_u32(0x0, x29, x50);
+ uint32_t x54 = (x49 & 0xffffffff);
+ uint32_t x56, uint8_t x57 = addcarryx_u32(x53, x32, x54);
+ uint32_t x58 = (x49 & 0xffffffff);
+ uint32_t x60, uint8_t x61 = addcarryx_u32(x57, x35, x58);
+ uint32_t x62 = (x49 & 0xffffffff);
+ uint32_t x64, uint8_t x65 = addcarryx_u32(x61, x38, x62);
+ uint32_t x66 = (x49 & 0xffffffff);
+ uint32_t x68, uint8_t x69 = addcarryx_u32(x65, x41, x66);
+ uint32_t x70 = (x49 & 0xffffffff);
+ uint32_t x72, uint8_t x73 = addcarryx_u32(x69, x44, x70);
+ uint32_t x74 = (x49 & 0x1fffffff);
+ uint32_t x76, uint8_t _ = addcarryx_u32(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e222m117/feoppDisplay.log b/src/Specific/montgomery32_2e222m117/feoppDisplay.log
new file mode 100644
index 000000000..f8a47fecf
--- /dev/null
+++ b/src/Specific/montgomery32_2e222m117/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x14, uint8_t x15 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x17, uint8_t x18 = subborrow_u32(x15, 0x0, x4);
+ uint32_t x20, uint8_t x21 = subborrow_u32(x18, 0x0, x6);
+ uint32_t x23, uint8_t x24 = subborrow_u32(x21, 0x0, x8);
+ uint32_t x26, uint8_t x27 = subborrow_u32(x24, 0x0, x10);
+ uint32_t x29, uint8_t x30 = subborrow_u32(x27, 0x0, x12);
+ uint32_t x32, uint8_t x33 = subborrow_u32(x30, 0x0, x11);
+ uint32_t x34 = (uint32_t)cmovznz(x33, 0x0, 0xffffffff);
+ uint32_t x35 = (x34 & 0xffffff8b);
+ uint32_t x37, uint8_t x38 = addcarryx_u32(0x0, x14, x35);
+ uint32_t x39 = (x34 & 0xffffffff);
+ uint32_t x41, uint8_t x42 = addcarryx_u32(x38, x17, x39);
+ uint32_t x43 = (x34 & 0xffffffff);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x42, x20, x43);
+ uint32_t x47 = (x34 & 0xffffffff);
+ uint32_t x49, uint8_t x50 = addcarryx_u32(x46, x23, x47);
+ uint32_t x51 = (x34 & 0xffffffff);
+ uint32_t x53, uint8_t x54 = addcarryx_u32(x50, x26, x51);
+ uint32_t x55 = (x34 & 0xffffffff);
+ uint32_t x57, uint8_t x58 = addcarryx_u32(x54, x29, x55);
+ uint32_t x59 = (x34 & 0x3fffffff);
+ uint32_t x61, uint8_t _ = addcarryx_u32(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e222m117/fesubDisplay.log b/src/Specific/montgomery32_2e222m117/fesubDisplay.log
new file mode 100644
index 000000000..bb3c83320
--- /dev/null
+++ b/src/Specific/montgomery32_2e222m117/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint32_t x29, uint8_t x30 = subborrow_u32(0x0, x5, x17);
+ uint32_t x32, uint8_t x33 = subborrow_u32(x30, x7, x19);
+ uint32_t x35, uint8_t x36 = subborrow_u32(x33, x9, x21);
+ uint32_t x38, uint8_t x39 = subborrow_u32(x36, x11, x23);
+ uint32_t x41, uint8_t x42 = subborrow_u32(x39, x13, x25);
+ uint32_t x44, uint8_t x45 = subborrow_u32(x42, x15, x27);
+ uint32_t x47, uint8_t x48 = subborrow_u32(x45, x14, x26);
+ uint32_t x49 = (uint32_t)cmovznz(x48, 0x0, 0xffffffff);
+ uint32_t x50 = (x49 & 0xffffff8b);
+ uint32_t x52, uint8_t x53 = addcarryx_u32(0x0, x29, x50);
+ uint32_t x54 = (x49 & 0xffffffff);
+ uint32_t x56, uint8_t x57 = addcarryx_u32(x53, x32, x54);
+ uint32_t x58 = (x49 & 0xffffffff);
+ uint32_t x60, uint8_t x61 = addcarryx_u32(x57, x35, x58);
+ uint32_t x62 = (x49 & 0xffffffff);
+ uint32_t x64, uint8_t x65 = addcarryx_u32(x61, x38, x62);
+ uint32_t x66 = (x49 & 0xffffffff);
+ uint32_t x68, uint8_t x69 = addcarryx_u32(x65, x41, x66);
+ uint32_t x70 = (x49 & 0xffffffff);
+ uint32_t x72, uint8_t x73 = addcarryx_u32(x69, x44, x70);
+ uint32_t x74 = (x49 & 0x3fffffff);
+ uint32_t x76, uint8_t _ = addcarryx_u32(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery32_2e224m2e96p1/femulDisplay.log b/src/Specific/montgomery32_2e224m2e96p1/femulDisplay.log
index 0b760af0f..cca4d7295 100644
--- a/src/Specific/montgomery32_2e224m2e96p1/femulDisplay.log
+++ b/src/Specific/montgomery32_2e224m2e96p1/femulDisplay.log
@@ -21,8 +21,8 @@ Interp-η
uint32_t x77, uint32_t x78 = mulx_u32(x71, 0xffffffff);
uint32_t x80, uint32_t x81 = mulx_u32(x71, 0xffffffff);
uint32_t x83, uint32_t x84 = mulx_u32(x71, 0xffffffff);
- uint8_t x85 = 0x0 + 0x0;
- uint8_t x86 = 0x0 + 0x0;
+ uint8_t x85 = (0x0 + 0x0);
+ uint8_t x86 = (0x0 + 0x0);
uint32_t x88, uint8_t x89 = addcarryx_u32(0x0, x75, x77);
uint32_t x91, uint8_t x92 = addcarryx_u32(x89, x78, x80);
uint32_t x94, uint8_t x95 = addcarryx_u32(x92, x81, x83);
@@ -62,8 +62,8 @@ Interp-η
uint32_t x196, uint32_t x197 = mulx_u32(x190, 0xffffffff);
uint32_t x199, uint32_t x200 = mulx_u32(x190, 0xffffffff);
uint32_t x202, uint32_t x203 = mulx_u32(x190, 0xffffffff);
- uint8_t x204 = 0x0 + 0x0;
- uint8_t x205 = 0x0 + 0x0;
+ uint8_t x204 = (0x0 + 0x0);
+ uint8_t x205 = (0x0 + 0x0);
uint32_t x207, uint8_t x208 = addcarryx_u32(0x0, x194, x196);
uint32_t x210, uint8_t x211 = addcarryx_u32(x208, x197, x199);
uint32_t x213, uint8_t x214 = addcarryx_u32(x211, x200, x202);
@@ -76,7 +76,7 @@ Interp-η
uint32_t x234, uint8_t x235 = addcarryx_u32(x232, x181, x210);
uint32_t x237, uint8_t x238 = addcarryx_u32(x235, x184, x213);
uint32_t x240, uint8_t x241 = addcarryx_u32(x238, x187, x216);
- uint8_t x242 = x241 + x188;
+ uint8_t x242 = (x241 + x188);
uint32_t x244, uint32_t x245 = mulx_u32(x9, x17);
uint32_t x247, uint32_t x248 = mulx_u32(x9, x19);
uint32_t x250, uint32_t x251 = mulx_u32(x9, x21);
@@ -104,8 +104,8 @@ Interp-η
uint32_t x316, uint32_t x317 = mulx_u32(x310, 0xffffffff);
uint32_t x319, uint32_t x320 = mulx_u32(x310, 0xffffffff);
uint32_t x322, uint32_t x323 = mulx_u32(x310, 0xffffffff);
- uint8_t x324 = 0x0 + 0x0;
- uint8_t x325 = 0x0 + 0x0;
+ uint8_t x324 = (0x0 + 0x0);
+ uint8_t x325 = (0x0 + 0x0);
uint32_t x327, uint8_t x328 = addcarryx_u32(0x0, x314, x316);
uint32_t x330, uint8_t x331 = addcarryx_u32(x328, x317, x319);
uint32_t x333, uint8_t x334 = addcarryx_u32(x331, x320, x322);
@@ -118,7 +118,7 @@ Interp-η
uint32_t x354, uint8_t x355 = addcarryx_u32(x352, x301, x330);
uint32_t x357, uint8_t x358 = addcarryx_u32(x355, x304, x333);
uint32_t x360, uint8_t x361 = addcarryx_u32(x358, x307, x336);
- uint8_t x362 = x361 + x308;
+ uint8_t x362 = (x361 + x308);
uint32_t x364, uint32_t x365 = mulx_u32(x11, x17);
uint32_t x367, uint32_t x368 = mulx_u32(x11, x19);
uint32_t x370, uint32_t x371 = mulx_u32(x11, x21);
@@ -146,8 +146,8 @@ Interp-η
uint32_t x436, uint32_t x437 = mulx_u32(x430, 0xffffffff);
uint32_t x439, uint32_t x440 = mulx_u32(x430, 0xffffffff);
uint32_t x442, uint32_t x443 = mulx_u32(x430, 0xffffffff);
- uint8_t x444 = 0x0 + 0x0;
- uint8_t x445 = 0x0 + 0x0;
+ uint8_t x444 = (0x0 + 0x0);
+ uint8_t x445 = (0x0 + 0x0);
uint32_t x447, uint8_t x448 = addcarryx_u32(0x0, x434, x436);
uint32_t x450, uint8_t x451 = addcarryx_u32(x448, x437, x439);
uint32_t x453, uint8_t x454 = addcarryx_u32(x451, x440, x442);
@@ -160,7 +160,7 @@ Interp-η
uint32_t x474, uint8_t x475 = addcarryx_u32(x472, x421, x450);
uint32_t x477, uint8_t x478 = addcarryx_u32(x475, x424, x453);
uint32_t x480, uint8_t x481 = addcarryx_u32(x478, x427, x456);
- uint8_t x482 = x481 + x428;
+ uint8_t x482 = (x481 + x428);
uint32_t x484, uint32_t x485 = mulx_u32(x13, x17);
uint32_t x487, uint32_t x488 = mulx_u32(x13, x19);
uint32_t x490, uint32_t x491 = mulx_u32(x13, x21);
@@ -188,8 +188,8 @@ Interp-η
uint32_t x556, uint32_t x557 = mulx_u32(x550, 0xffffffff);
uint32_t x559, uint32_t x560 = mulx_u32(x550, 0xffffffff);
uint32_t x562, uint32_t x563 = mulx_u32(x550, 0xffffffff);
- uint8_t x564 = 0x0 + 0x0;
- uint8_t x565 = 0x0 + 0x0;
+ uint8_t x564 = (0x0 + 0x0);
+ uint8_t x565 = (0x0 + 0x0);
uint32_t x567, uint8_t x568 = addcarryx_u32(0x0, x554, x556);
uint32_t x570, uint8_t x571 = addcarryx_u32(x568, x557, x559);
uint32_t x573, uint8_t x574 = addcarryx_u32(x571, x560, x562);
@@ -202,7 +202,7 @@ Interp-η
uint32_t x594, uint8_t x595 = addcarryx_u32(x592, x541, x570);
uint32_t x597, uint8_t x598 = addcarryx_u32(x595, x544, x573);
uint32_t x600, uint8_t x601 = addcarryx_u32(x598, x547, x576);
- uint8_t x602 = x601 + x548;
+ uint8_t x602 = (x601 + x548);
uint32_t x604, uint32_t x605 = mulx_u32(x15, x17);
uint32_t x607, uint32_t x608 = mulx_u32(x15, x19);
uint32_t x610, uint32_t x611 = mulx_u32(x15, x21);
@@ -230,8 +230,8 @@ Interp-η
uint32_t x676, uint32_t x677 = mulx_u32(x670, 0xffffffff);
uint32_t x679, uint32_t x680 = mulx_u32(x670, 0xffffffff);
uint32_t x682, uint32_t x683 = mulx_u32(x670, 0xffffffff);
- uint8_t x684 = 0x0 + 0x0;
- uint8_t x685 = 0x0 + 0x0;
+ uint8_t x684 = (0x0 + 0x0);
+ uint8_t x685 = (0x0 + 0x0);
uint32_t x687, uint8_t x688 = addcarryx_u32(0x0, x674, x676);
uint32_t x690, uint8_t x691 = addcarryx_u32(x688, x677, x679);
uint32_t x693, uint8_t x694 = addcarryx_u32(x691, x680, x682);
@@ -244,7 +244,7 @@ Interp-η
uint32_t x714, uint8_t x715 = addcarryx_u32(x712, x661, x690);
uint32_t x717, uint8_t x718 = addcarryx_u32(x715, x664, x693);
uint32_t x720, uint8_t x721 = addcarryx_u32(x718, x667, x696);
- uint8_t x722 = x721 + x668;
+ uint8_t x722 = (x721 + x668);
uint32_t x724, uint32_t x725 = mulx_u32(x14, x17);
uint32_t x727, uint32_t x728 = mulx_u32(x14, x19);
uint32_t x730, uint32_t x731 = mulx_u32(x14, x21);
@@ -272,8 +272,8 @@ Interp-η
uint32_t x796, uint32_t x797 = mulx_u32(x790, 0xffffffff);
uint32_t x799, uint32_t x800 = mulx_u32(x790, 0xffffffff);
uint32_t x802, uint32_t x803 = mulx_u32(x790, 0xffffffff);
- uint8_t x804 = 0x0 + 0x0;
- uint8_t x805 = 0x0 + 0x0;
+ uint8_t x804 = (0x0 + 0x0);
+ uint8_t x805 = (0x0 + 0x0);
uint32_t x807, uint8_t x808 = addcarryx_u32(0x0, x794, x796);
uint32_t x810, uint8_t x811 = addcarryx_u32(x808, x797, x799);
uint32_t x813, uint8_t x814 = addcarryx_u32(x811, x800, x802);
@@ -286,7 +286,7 @@ Interp-η
uint32_t x834, uint8_t x835 = addcarryx_u32(x832, x781, x810);
uint32_t x837, uint8_t x838 = addcarryx_u32(x835, x784, x813);
uint32_t x840, uint8_t x841 = addcarryx_u32(x838, x787, x816);
- uint8_t x842 = x841 + x788;
+ uint8_t x842 = (x841 + x788);
uint32_t x844, uint8_t x845 = subborrow_u32(0x0, x822, 0x1);
uint32_t x847, uint8_t x848 = subborrow_u32(x845, x825, 0x0);
uint32_t x850, uint8_t x851 = subborrow_u32(x848, x828, 0x0);
diff --git a/src/Specific/montgomery32_2e224m2e96p1/feoppDisplay.log b/src/Specific/montgomery32_2e224m2e96p1/feoppDisplay.log
index d6f50e522..0cd0733e8 100644
--- a/src/Specific/montgomery32_2e224m2e96p1/feoppDisplay.log
+++ b/src/Specific/montgomery32_2e224m2e96p1/feoppDisplay.log
@@ -10,17 +10,17 @@ Interp-η
uint32_t x29, uint8_t x30 = subborrow_u32(x27, 0x0, x12);
uint32_t x32, uint8_t x33 = subborrow_u32(x30, 0x0, x11);
uint32_t x34 = (uint32_t)cmovznz(x33, 0x0, 0xffffffff);
- uint8_t x35 = (uint8_t) x34 & 0x1;
+ uint8_t x35 = ((uint8_t)x34 & 0x1);
uint32_t x37, uint8_t x38 = addcarryx_u32(0x0, x14, x35);
uint32_t x40, uint8_t x41 = addcarryx_u32(x38, x17, 0x0);
uint32_t x43, uint8_t x44 = addcarryx_u32(x41, x20, 0x0);
- uint32_t x45 = x34 & 0xffffffff;
+ uint32_t x45 = (x34 & 0xffffffff);
uint32_t x47, uint8_t x48 = addcarryx_u32(x44, x23, x45);
- uint32_t x49 = x34 & 0xffffffff;
+ uint32_t x49 = (x34 & 0xffffffff);
uint32_t x51, uint8_t x52 = addcarryx_u32(x48, x26, x49);
- uint32_t x53 = x34 & 0xffffffff;
+ uint32_t x53 = (x34 & 0xffffffff);
uint32_t x55, uint8_t x56 = addcarryx_u32(x52, x29, x53);
- uint32_t x57 = x34 & 0xffffffff;
+ uint32_t x57 = (x34 & 0xffffffff);
uint32_t x59, uint8_t _ = addcarryx_u32(x56, x32, x57);
(Return x59, Return x55, Return x51, Return x47, Return x43, Return x40, Return x37))
x
diff --git a/src/Specific/montgomery32_2e224m2e96p1/fesubDisplay.log b/src/Specific/montgomery32_2e224m2e96p1/fesubDisplay.log
index f6e04b552..1392007a0 100644
--- a/src/Specific/montgomery32_2e224m2e96p1/fesubDisplay.log
+++ b/src/Specific/montgomery32_2e224m2e96p1/fesubDisplay.log
@@ -10,17 +10,17 @@ Interp-η
uint32_t x44, uint8_t x45 = subborrow_u32(x42, x15, x27);
uint32_t x47, uint8_t x48 = subborrow_u32(x45, x14, x26);
uint32_t x49 = (uint32_t)cmovznz(x48, 0x0, 0xffffffff);
- uint8_t x50 = (uint8_t) x49 & 0x1;
+ uint8_t x50 = ((uint8_t)x49 & 0x1);
uint32_t x52, uint8_t x53 = addcarryx_u32(0x0, x29, x50);
uint32_t x55, uint8_t x56 = addcarryx_u32(x53, x32, 0x0);
uint32_t x58, uint8_t x59 = addcarryx_u32(x56, x35, 0x0);
- uint32_t x60 = x49 & 0xffffffff;
+ uint32_t x60 = (x49 & 0xffffffff);
uint32_t x62, uint8_t x63 = addcarryx_u32(x59, x38, x60);
- uint32_t x64 = x49 & 0xffffffff;
+ uint32_t x64 = (x49 & 0xffffffff);
uint32_t x66, uint8_t x67 = addcarryx_u32(x63, x41, x64);
- uint32_t x68 = x49 & 0xffffffff;
+ uint32_t x68 = (x49 & 0xffffffff);
uint32_t x70, uint8_t x71 = addcarryx_u32(x67, x44, x68);
- uint32_t x72 = x49 & 0xffffffff;
+ uint32_t x72 = (x49 & 0xffffffff);
uint32_t x74, uint8_t _ = addcarryx_u32(x71, x47, x72);
(Return x74, Return x70, Return x66, Return x62, Return x58, Return x55, Return x52))
(x, x0)%core
diff --git a/src/Specific/montgomery32_2e226m5/feaddDisplay.log b/src/Specific/montgomery32_2e226m5/feaddDisplay.log
new file mode 100644
index 000000000..14d516cfe
--- /dev/null
+++ b/src/Specific/montgomery32_2e226m5/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xfffffffb);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x3);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e230m27/feaddDisplay.log b/src/Specific/montgomery32_2e230m27/feaddDisplay.log
new file mode 100644
index 000000000..d47369cd5
--- /dev/null
+++ b/src/Specific/montgomery32_2e230m27/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xffffffe5);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x3f);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e235m15/feaddDisplay.log b/src/Specific/montgomery32_2e235m15/feaddDisplay.log
new file mode 100644
index 000000000..01a762a6a
--- /dev/null
+++ b/src/Specific/montgomery32_2e235m15/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xfffffff1);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x7ff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e243m9/feaddDisplay.log b/src/Specific/montgomery32_2e243m9/feaddDisplay.log
new file mode 100644
index 000000000..90e51d238
--- /dev/null
+++ b/src/Specific/montgomery32_2e243m9/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xfffffff7);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x7ffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e251m9/feaddDisplay.log b/src/Specific/montgomery32_2e251m9/feaddDisplay.log
new file mode 100644
index 000000000..a29dffa3f
--- /dev/null
+++ b/src/Specific/montgomery32_2e251m9/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xfffffff7);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x7ffffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e254m127x2e240m1/feaddDisplay.log b/src/Specific/montgomery32_2e254m127x2e240m1/feaddDisplay.log
new file mode 100644
index 000000000..85272488d
--- /dev/null
+++ b/src/Specific/montgomery32_2e254m127x2e240m1/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xffffffff);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x3f80ffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e254m127x2e240m1/feoppDisplay.log b/src/Specific/montgomery32_2e254m127x2e240m1/feoppDisplay.log
new file mode 100644
index 000000000..26a60cacc
--- /dev/null
+++ b/src/Specific/montgomery32_2e254m127x2e240m1/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x19, uint8_t x20 = subborrow_u32(x17, 0x0, x4);
+ uint32_t x22, uint8_t x23 = subborrow_u32(x20, 0x0, x6);
+ uint32_t x25, uint8_t x26 = subborrow_u32(x23, 0x0, x8);
+ uint32_t x28, uint8_t x29 = subborrow_u32(x26, 0x0, x10);
+ uint32_t x31, uint8_t x32 = subborrow_u32(x29, 0x0, x12);
+ uint32_t x34, uint8_t x35 = subborrow_u32(x32, 0x0, x14);
+ uint32_t x37, uint8_t x38 = subborrow_u32(x35, 0x0, x13);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0xffffffff);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(0x0, x16, x40);
+ uint32_t x44 = (x39 & 0xffffffff);
+ uint32_t x46, uint8_t x47 = addcarryx_u32(x43, x19, x44);
+ uint32_t x48 = (x39 & 0xffffffff);
+ uint32_t x50, uint8_t x51 = addcarryx_u32(x47, x22, x48);
+ uint32_t x52 = (x39 & 0xffffffff);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x51, x25, x52);
+ uint32_t x56 = (x39 & 0xffffffff);
+ uint32_t x58, uint8_t x59 = addcarryx_u32(x55, x28, x56);
+ uint32_t x60 = (x39 & 0xffffffff);
+ uint32_t x62, uint8_t x63 = addcarryx_u32(x59, x31, x60);
+ uint32_t x64 = (x39 & 0xffffffff);
+ uint32_t x66, uint8_t x67 = addcarryx_u32(x63, x34, x64);
+ uint32_t x68 = (x39 & 0x3f80ffff);
+ uint32_t x70, uint8_t _ = addcarryx_u32(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e254m127x2e240m1/fesubDisplay.log b/src/Specific/montgomery32_2e254m127x2e240m1/fesubDisplay.log
new file mode 100644
index 000000000..c36c64d04
--- /dev/null
+++ b/src/Specific/montgomery32_2e254m127x2e240m1/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = subborrow_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = subborrow_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = subborrow_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = subborrow_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = subborrow_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = subborrow_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = subborrow_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = subborrow_u32(x52, x16, x30);
+ uint32_t x56 = (uint32_t)cmovznz(x55, 0x0, 0xffffffff);
+ uint32_t x57 = (x56 & 0xffffffff);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(0x0, x33, x57);
+ uint32_t x61 = (x56 & 0xffffffff);
+ uint32_t x63, uint8_t x64 = addcarryx_u32(x60, x36, x61);
+ uint32_t x65 = (x56 & 0xffffffff);
+ uint32_t x67, uint8_t x68 = addcarryx_u32(x64, x39, x65);
+ uint32_t x69 = (x56 & 0xffffffff);
+ uint32_t x71, uint8_t x72 = addcarryx_u32(x68, x42, x69);
+ uint32_t x73 = (x56 & 0xffffffff);
+ uint32_t x75, uint8_t x76 = addcarryx_u32(x72, x45, x73);
+ uint32_t x77 = (x56 & 0xffffffff);
+ uint32_t x79, uint8_t x80 = addcarryx_u32(x76, x48, x77);
+ uint32_t x81 = (x56 & 0xffffffff);
+ uint32_t x83, uint8_t x84 = addcarryx_u32(x80, x51, x81);
+ uint32_t x85 = (x56 & 0x3f80ffff);
+ uint32_t x87, uint8_t _ = addcarryx_u32(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e255m19/feaddDisplay.log b/src/Specific/montgomery32_2e255m19/feaddDisplay.log
new file mode 100644
index 000000000..5d89df82d
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m19/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xffffffed);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x7fffffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e255m2e4m2e1m1/feaddDisplay.log b/src/Specific/montgomery32_2e255m2e4m2e1m1/feaddDisplay.log
new file mode 100644
index 000000000..5d89df82d
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m2e4m2e1m1/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xffffffed);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x7fffffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e255m2e4m2e1m1/feoppDisplay.log b/src/Specific/montgomery32_2e255m2e4m2e1m1/feoppDisplay.log
new file mode 100644
index 000000000..a4164fd6f
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m2e4m2e1m1/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x19, uint8_t x20 = subborrow_u32(x17, 0x0, x4);
+ uint32_t x22, uint8_t x23 = subborrow_u32(x20, 0x0, x6);
+ uint32_t x25, uint8_t x26 = subborrow_u32(x23, 0x0, x8);
+ uint32_t x28, uint8_t x29 = subborrow_u32(x26, 0x0, x10);
+ uint32_t x31, uint8_t x32 = subborrow_u32(x29, 0x0, x12);
+ uint32_t x34, uint8_t x35 = subborrow_u32(x32, 0x0, x14);
+ uint32_t x37, uint8_t x38 = subborrow_u32(x35, 0x0, x13);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0xffffffed);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(0x0, x16, x40);
+ uint32_t x44 = (x39 & 0xffffffff);
+ uint32_t x46, uint8_t x47 = addcarryx_u32(x43, x19, x44);
+ uint32_t x48 = (x39 & 0xffffffff);
+ uint32_t x50, uint8_t x51 = addcarryx_u32(x47, x22, x48);
+ uint32_t x52 = (x39 & 0xffffffff);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x51, x25, x52);
+ uint32_t x56 = (x39 & 0xffffffff);
+ uint32_t x58, uint8_t x59 = addcarryx_u32(x55, x28, x56);
+ uint32_t x60 = (x39 & 0xffffffff);
+ uint32_t x62, uint8_t x63 = addcarryx_u32(x59, x31, x60);
+ uint32_t x64 = (x39 & 0xffffffff);
+ uint32_t x66, uint8_t x67 = addcarryx_u32(x63, x34, x64);
+ uint32_t x68 = (x39 & 0x7fffffff);
+ uint32_t x70, uint8_t _ = addcarryx_u32(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e255m2e4m2e1m1/fesubDisplay.log b/src/Specific/montgomery32_2e255m2e4m2e1m1/fesubDisplay.log
new file mode 100644
index 000000000..ca30b06ba
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m2e4m2e1m1/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = subborrow_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = subborrow_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = subborrow_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = subborrow_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = subborrow_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = subborrow_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = subborrow_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = subborrow_u32(x52, x16, x30);
+ uint32_t x56 = (uint32_t)cmovznz(x55, 0x0, 0xffffffff);
+ uint32_t x57 = (x56 & 0xffffffed);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(0x0, x33, x57);
+ uint32_t x61 = (x56 & 0xffffffff);
+ uint32_t x63, uint8_t x64 = addcarryx_u32(x60, x36, x61);
+ uint32_t x65 = (x56 & 0xffffffff);
+ uint32_t x67, uint8_t x68 = addcarryx_u32(x64, x39, x65);
+ uint32_t x69 = (x56 & 0xffffffff);
+ uint32_t x71, uint8_t x72 = addcarryx_u32(x68, x42, x69);
+ uint32_t x73 = (x56 & 0xffffffff);
+ uint32_t x75, uint8_t x76 = addcarryx_u32(x72, x45, x73);
+ uint32_t x77 = (x56 & 0xffffffff);
+ uint32_t x79, uint8_t x80 = addcarryx_u32(x76, x48, x77);
+ uint32_t x81 = (x56 & 0xffffffff);
+ uint32_t x83, uint8_t x84 = addcarryx_u32(x80, x51, x81);
+ uint32_t x85 = (x56 & 0x7fffffff);
+ uint32_t x87, uint8_t _ = addcarryx_u32(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e255m765/feaddDisplay.log b/src/Specific/montgomery32_2e255m765/feaddDisplay.log
new file mode 100644
index 000000000..92ef5f42f
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m765/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xfffffd03);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0x7fffffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m189/feaddDisplay.log b/src/Specific/montgomery32_2e256m189/feaddDisplay.log
index bc2a7cffb..20feee74c 100644
--- a/src/Specific/montgomery32_2e256m189/feaddDisplay.log
+++ b/src/Specific/montgomery32_2e256m189/feaddDisplay.log
@@ -10,7 +10,7 @@ Interp-η
uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
- uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, Const 4294967107);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xffffff43);
uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
diff --git a/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/feoppDisplay.log b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/feoppDisplay.log
new file mode 100644
index 000000000..67043857f
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x19, uint8_t x20 = subborrow_u32(x17, 0x0, x4);
+ uint32_t x22, uint8_t x23 = subborrow_u32(x20, 0x0, x6);
+ uint32_t x25, uint8_t x26 = subborrow_u32(x23, 0x0, x8);
+ uint32_t x28, uint8_t x29 = subborrow_u32(x26, 0x0, x10);
+ uint32_t x31, uint8_t x32 = subborrow_u32(x29, 0x0, x12);
+ uint32_t x34, uint8_t x35 = subborrow_u32(x32, 0x0, x14);
+ uint32_t x37, uint8_t x38 = subborrow_u32(x35, 0x0, x13);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0xffffffff);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(0x0, x16, x40);
+ uint32_t x44 = (x39 & 0xffffffff);
+ uint32_t x46, uint8_t x47 = addcarryx_u32(x43, x19, x44);
+ uint32_t x48 = (x39 & 0xffffffff);
+ uint32_t x50, uint8_t x51 = addcarryx_u32(x47, x22, x48);
+ uint32_t x53, uint8_t x54 = addcarryx_u32(x51, x25, 0x0);
+ uint32_t x56, uint8_t x57 = addcarryx_u32(x54, x28, 0x0);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(x57, x31, 0x0);
+ uint8_t x61 = ((uint8_t)x39 & 0x1);
+ uint32_t x63, uint8_t x64 = addcarryx_u32(x60, x34, x61);
+ uint32_t x65 = (x39 & 0xffffffff);
+ uint32_t x67, uint8_t _ = addcarryx_u32(x64, x37, x65);
+ (Return x67, Return x63, Return x59, Return x56, Return x53, Return x50, Return x46, Return x42))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/fesubDisplay.log b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/fesubDisplay.log
new file mode 100644
index 000000000..e27ff6cda
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = subborrow_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = subborrow_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = subborrow_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = subborrow_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = subborrow_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = subborrow_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = subborrow_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = subborrow_u32(x52, x16, x30);
+ uint32_t x56 = (uint32_t)cmovznz(x55, 0x0, 0xffffffff);
+ uint32_t x57 = (x56 & 0xffffffff);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(0x0, x33, x57);
+ uint32_t x61 = (x56 & 0xffffffff);
+ uint32_t x63, uint8_t x64 = addcarryx_u32(x60, x36, x61);
+ uint32_t x65 = (x56 & 0xffffffff);
+ uint32_t x67, uint8_t x68 = addcarryx_u32(x64, x39, x65);
+ uint32_t x70, uint8_t x71 = addcarryx_u32(x68, x42, 0x0);
+ uint32_t x73, uint8_t x74 = addcarryx_u32(x71, x45, 0x0);
+ uint32_t x76, uint8_t x77 = addcarryx_u32(x74, x48, 0x0);
+ uint8_t x78 = ((uint8_t)x56 & 0x1);
+ uint32_t x80, uint8_t x81 = addcarryx_u32(x77, x51, x78);
+ uint32_t x82 = (x56 & 0xffffffff);
+ uint32_t x84, uint8_t _ = addcarryx_u32(x81, x54, x82);
+ (Return x84, Return x80, Return x76, Return x73, Return x70, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m2e32m977/feaddDisplay.log b/src/Specific/montgomery32_2e256m2e32m977/feaddDisplay.log
new file mode 100644
index 000000000..47e22543e
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m2e32m977/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xfffffc2f);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xfffffffe);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0xffffffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m2e32m977/feoppDisplay.log b/src/Specific/montgomery32_2e256m2e32m977/feoppDisplay.log
new file mode 100644
index 000000000..ec9760d5a
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m2e32m977/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x19, uint8_t x20 = subborrow_u32(x17, 0x0, x4);
+ uint32_t x22, uint8_t x23 = subborrow_u32(x20, 0x0, x6);
+ uint32_t x25, uint8_t x26 = subborrow_u32(x23, 0x0, x8);
+ uint32_t x28, uint8_t x29 = subborrow_u32(x26, 0x0, x10);
+ uint32_t x31, uint8_t x32 = subborrow_u32(x29, 0x0, x12);
+ uint32_t x34, uint8_t x35 = subborrow_u32(x32, 0x0, x14);
+ uint32_t x37, uint8_t x38 = subborrow_u32(x35, 0x0, x13);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0xfffffc2f);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(0x0, x16, x40);
+ uint32_t x44 = (x39 & 0xfffffffe);
+ uint32_t x46, uint8_t x47 = addcarryx_u32(x43, x19, x44);
+ uint32_t x48 = (x39 & 0xffffffff);
+ uint32_t x50, uint8_t x51 = addcarryx_u32(x47, x22, x48);
+ uint32_t x52 = (x39 & 0xffffffff);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x51, x25, x52);
+ uint32_t x56 = (x39 & 0xffffffff);
+ uint32_t x58, uint8_t x59 = addcarryx_u32(x55, x28, x56);
+ uint32_t x60 = (x39 & 0xffffffff);
+ uint32_t x62, uint8_t x63 = addcarryx_u32(x59, x31, x60);
+ uint32_t x64 = (x39 & 0xffffffff);
+ uint32_t x66, uint8_t x67 = addcarryx_u32(x63, x34, x64);
+ uint32_t x68 = (x39 & 0xffffffff);
+ uint32_t x70, uint8_t _ = addcarryx_u32(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m2e32m977/fesubDisplay.log b/src/Specific/montgomery32_2e256m2e32m977/fesubDisplay.log
new file mode 100644
index 000000000..f6741e9db
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m2e32m977/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = subborrow_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = subborrow_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = subborrow_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = subborrow_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = subborrow_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = subborrow_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = subborrow_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = subborrow_u32(x52, x16, x30);
+ uint32_t x56 = (uint32_t)cmovznz(x55, 0x0, 0xffffffff);
+ uint32_t x57 = (x56 & 0xfffffc2f);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(0x0, x33, x57);
+ uint32_t x61 = (x56 & 0xfffffffe);
+ uint32_t x63, uint8_t x64 = addcarryx_u32(x60, x36, x61);
+ uint32_t x65 = (x56 & 0xffffffff);
+ uint32_t x67, uint8_t x68 = addcarryx_u32(x64, x39, x65);
+ uint32_t x69 = (x56 & 0xffffffff);
+ uint32_t x71, uint8_t x72 = addcarryx_u32(x68, x42, x69);
+ uint32_t x73 = (x56 & 0xffffffff);
+ uint32_t x75, uint8_t x76 = addcarryx_u32(x72, x45, x73);
+ uint32_t x77 = (x56 & 0xffffffff);
+ uint32_t x79, uint8_t x80 = addcarryx_u32(x76, x48, x77);
+ uint32_t x81 = (x56 & 0xffffffff);
+ uint32_t x83, uint8_t x84 = addcarryx_u32(x80, x51, x81);
+ uint32_t x85 = (x56 & 0xffffffff);
+ uint32_t x87, uint8_t _ = addcarryx_u32(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m88x2e240m1/feaddDisplay.log b/src/Specific/montgomery32_2e256m88x2e240m1/feaddDisplay.log
new file mode 100644
index 000000000..b0753a2c4
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m88x2e240m1/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = addcarryx_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = addcarryx_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = addcarryx_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = addcarryx_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = addcarryx_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = addcarryx_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x52, x16, x30);
+ uint32_t x57, uint8_t x58 = subborrow_u32(0x0, x33, 0xffffffff);
+ uint32_t x60, uint8_t x61 = subborrow_u32(x58, x36, 0xffffffff);
+ uint32_t x63, uint8_t x64 = subborrow_u32(x61, x39, 0xffffffff);
+ uint32_t x66, uint8_t x67 = subborrow_u32(x64, x42, 0xffffffff);
+ uint32_t x69, uint8_t x70 = subborrow_u32(x67, x45, 0xffffffff);
+ uint32_t x72, uint8_t x73 = subborrow_u32(x70, x48, 0xffffffff);
+ uint32_t x75, uint8_t x76 = subborrow_u32(x73, x51, 0xffffffff);
+ uint32_t x78, uint8_t x79 = subborrow_u32(x76, x54, 0xffa7ffff);
+ uint32_t _, uint8_t x82 = subborrow_u32(x79, x55, 0x0);
+ uint32_t x83 = cmovznz(x82, x78, x54);
+ uint32_t x84 = cmovznz(x82, x75, x51);
+ uint32_t x85 = cmovznz(x82, x72, x48);
+ uint32_t x86 = cmovznz(x82, x69, x45);
+ uint32_t x87 = cmovznz(x82, x66, x42);
+ uint32_t x88 = cmovznz(x82, x63, x39);
+ uint32_t x89 = cmovznz(x82, x60, x36);
+ uint32_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m88x2e240m1/feoppDisplay.log b/src/Specific/montgomery32_2e256m88x2e240m1/feoppDisplay.log
new file mode 100644
index 000000000..72484a2b2
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m88x2e240m1/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = subborrow_u32(0x0, 0x0, x2);
+ uint32_t x19, uint8_t x20 = subborrow_u32(x17, 0x0, x4);
+ uint32_t x22, uint8_t x23 = subborrow_u32(x20, 0x0, x6);
+ uint32_t x25, uint8_t x26 = subborrow_u32(x23, 0x0, x8);
+ uint32_t x28, uint8_t x29 = subborrow_u32(x26, 0x0, x10);
+ uint32_t x31, uint8_t x32 = subborrow_u32(x29, 0x0, x12);
+ uint32_t x34, uint8_t x35 = subborrow_u32(x32, 0x0, x14);
+ uint32_t x37, uint8_t x38 = subborrow_u32(x35, 0x0, x13);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0xffffffff);
+ uint32_t x42, uint8_t x43 = addcarryx_u32(0x0, x16, x40);
+ uint32_t x44 = (x39 & 0xffffffff);
+ uint32_t x46, uint8_t x47 = addcarryx_u32(x43, x19, x44);
+ uint32_t x48 = (x39 & 0xffffffff);
+ uint32_t x50, uint8_t x51 = addcarryx_u32(x47, x22, x48);
+ uint32_t x52 = (x39 & 0xffffffff);
+ uint32_t x54, uint8_t x55 = addcarryx_u32(x51, x25, x52);
+ uint32_t x56 = (x39 & 0xffffffff);
+ uint32_t x58, uint8_t x59 = addcarryx_u32(x55, x28, x56);
+ uint32_t x60 = (x39 & 0xffffffff);
+ uint32_t x62, uint8_t x63 = addcarryx_u32(x59, x31, x60);
+ uint32_t x64 = (x39 & 0xffffffff);
+ uint32_t x66, uint8_t x67 = addcarryx_u32(x63, x34, x64);
+ uint32_t x68 = (x39 & 0xffa7ffff);
+ uint32_t x70, uint8_t _ = addcarryx_u32(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e256m88x2e240m1/fesubDisplay.log b/src/Specific/montgomery32_2e256m88x2e240m1/fesubDisplay.log
new file mode 100644
index 000000000..b1e955d4c
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m88x2e240m1/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint32_t x33, uint8_t x34 = subborrow_u32(0x0, x5, x19);
+ uint32_t x36, uint8_t x37 = subborrow_u32(x34, x7, x21);
+ uint32_t x39, uint8_t x40 = subborrow_u32(x37, x9, x23);
+ uint32_t x42, uint8_t x43 = subborrow_u32(x40, x11, x25);
+ uint32_t x45, uint8_t x46 = subborrow_u32(x43, x13, x27);
+ uint32_t x48, uint8_t x49 = subborrow_u32(x46, x15, x29);
+ uint32_t x51, uint8_t x52 = subborrow_u32(x49, x17, x31);
+ uint32_t x54, uint8_t x55 = subborrow_u32(x52, x16, x30);
+ uint32_t x56 = (uint32_t)cmovznz(x55, 0x0, 0xffffffff);
+ uint32_t x57 = (x56 & 0xffffffff);
+ uint32_t x59, uint8_t x60 = addcarryx_u32(0x0, x33, x57);
+ uint32_t x61 = (x56 & 0xffffffff);
+ uint32_t x63, uint8_t x64 = addcarryx_u32(x60, x36, x61);
+ uint32_t x65 = (x56 & 0xffffffff);
+ uint32_t x67, uint8_t x68 = addcarryx_u32(x64, x39, x65);
+ uint32_t x69 = (x56 & 0xffffffff);
+ uint32_t x71, uint8_t x72 = addcarryx_u32(x68, x42, x69);
+ uint32_t x73 = (x56 & 0xffffffff);
+ uint32_t x75, uint8_t x76 = addcarryx_u32(x72, x45, x73);
+ uint32_t x77 = (x56 & 0xffffffff);
+ uint32_t x79, uint8_t x80 = addcarryx_u32(x76, x48, x77);
+ uint32_t x81 = (x56 & 0xffffffff);
+ uint32_t x83, uint8_t x84 = addcarryx_u32(x80, x51, x81);
+ uint32_t x85 = (x56 & 0xffa7ffff);
+ uint32_t x87, uint8_t _ = addcarryx_u32(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/montgomery32_2e266m3/feaddDisplay.log b/src/Specific/montgomery32_2e266m3/feaddDisplay.log
new file mode 100644
index 000000000..3d72d406d
--- /dev/null
+++ b/src/Specific/montgomery32_2e266m3/feaddDisplay.log
@@ -0,0 +1,35 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+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,
+ uint32_t x37, uint8_t x38 = addcarryx_u32(0x0, x5, x21);
+ uint32_t x40, uint8_t x41 = addcarryx_u32(x38, x7, x23);
+ uint32_t x43, uint8_t x44 = addcarryx_u32(x41, x9, x25);
+ uint32_t x46, uint8_t x47 = addcarryx_u32(x44, x11, x27);
+ uint32_t x49, uint8_t x50 = addcarryx_u32(x47, x13, x29);
+ uint32_t x52, uint8_t x53 = addcarryx_u32(x50, x15, x31);
+ uint32_t x55, uint8_t x56 = addcarryx_u32(x53, x17, x33);
+ uint32_t x58, uint8_t x59 = addcarryx_u32(x56, x19, x35);
+ uint32_t x61, uint8_t x62 = addcarryx_u32(x59, x18, x34);
+ uint32_t x64, uint8_t x65 = subborrow_u32(0x0, x37, 0xfffffffd);
+ uint32_t x67, uint8_t x68 = subborrow_u32(x65, x40, 0xffffffff);
+ uint32_t x70, uint8_t x71 = subborrow_u32(x68, x43, 0xffffffff);
+ uint32_t x73, uint8_t x74 = subborrow_u32(x71, x46, 0xffffffff);
+ uint32_t x76, uint8_t x77 = subborrow_u32(x74, x49, 0xffffffff);
+ uint32_t x79, uint8_t x80 = subborrow_u32(x77, x52, 0xffffffff);
+ uint32_t x82, uint8_t x83 = subborrow_u32(x80, x55, 0xffffffff);
+ uint32_t x85, uint8_t x86 = subborrow_u32(x83, x58, 0xffffffff);
+ uint32_t x88, uint8_t x89 = subborrow_u32(x86, x61, 0x3ff);
+ uint32_t _, uint8_t x92 = subborrow_u32(x89, x62, 0x0);
+ uint32_t x93 = cmovznz(x92, x88, x61);
+ uint32_t x94 = cmovznz(x92, x85, x58);
+ uint32_t x95 = cmovznz(x92, x82, x55);
+ uint32_t x96 = cmovznz(x92, x79, x52);
+ uint32_t x97 = cmovznz(x92, x76, x49);
+ uint32_t x98 = cmovznz(x92, x73, x46);
+ uint32_t x99 = cmovznz(x92, x70, x43);
+ uint32_t x100 = cmovznz(x92, x67, x40);
+ uint32_t x101 = cmovznz(x92, x64, x37);
+ return (x93, x94, x95, x96, x97, x98, x99, x100, x101))
+(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/montgomery32_2e285m9/feaddDisplay.log b/src/Specific/montgomery32_2e285m9/feaddDisplay.log
new file mode 100644
index 000000000..73f337088
--- /dev/null
+++ b/src/Specific/montgomery32_2e285m9/feaddDisplay.log
@@ -0,0 +1,35 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+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,
+ uint32_t x37, uint8_t x38 = addcarryx_u32(0x0, x5, x21);
+ uint32_t x40, uint8_t x41 = addcarryx_u32(x38, x7, x23);
+ uint32_t x43, uint8_t x44 = addcarryx_u32(x41, x9, x25);
+ uint32_t x46, uint8_t x47 = addcarryx_u32(x44, x11, x27);
+ uint32_t x49, uint8_t x50 = addcarryx_u32(x47, x13, x29);
+ uint32_t x52, uint8_t x53 = addcarryx_u32(x50, x15, x31);
+ uint32_t x55, uint8_t x56 = addcarryx_u32(x53, x17, x33);
+ uint32_t x58, uint8_t x59 = addcarryx_u32(x56, x19, x35);
+ uint32_t x61, uint8_t x62 = addcarryx_u32(x59, x18, x34);
+ uint32_t x64, uint8_t x65 = subborrow_u32(0x0, x37, 0xfffffff7);
+ uint32_t x67, uint8_t x68 = subborrow_u32(x65, x40, 0xffffffff);
+ uint32_t x70, uint8_t x71 = subborrow_u32(x68, x43, 0xffffffff);
+ uint32_t x73, uint8_t x74 = subborrow_u32(x71, x46, 0xffffffff);
+ uint32_t x76, uint8_t x77 = subborrow_u32(x74, x49, 0xffffffff);
+ uint32_t x79, uint8_t x80 = subborrow_u32(x77, x52, 0xffffffff);
+ uint32_t x82, uint8_t x83 = subborrow_u32(x80, x55, 0xffffffff);
+ uint32_t x85, uint8_t x86 = subborrow_u32(x83, x58, 0xffffffff);
+ uint32_t x88, uint8_t x89 = subborrow_u32(x86, x61, 0x1fffffff);
+ uint32_t _, uint8_t x92 = subborrow_u32(x89, x62, 0x0);
+ uint32_t x93 = cmovznz(x92, x88, x61);
+ uint32_t x94 = cmovznz(x92, x85, x58);
+ uint32_t x95 = cmovznz(x92, x82, x55);
+ uint32_t x96 = cmovznz(x92, x79, x52);
+ uint32_t x97 = cmovznz(x92, x76, x49);
+ uint32_t x98 = cmovznz(x92, x73, x46);
+ uint32_t x99 = cmovznz(x92, x70, x43);
+ uint32_t x100 = cmovznz(x92, x67, x40);
+ uint32_t x101 = cmovznz(x92, x64, x37);
+ return (x93, x94, x95, x96, x97, x98, x99, x100, x101))
+(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/montgomery64_2e322m2e161m1/femulDisplay.log b/src/Specific/montgomery64_2e322m2e161m1/femulDisplay.log
new file mode 100644
index 000000000..924bee221
--- /dev/null
+++ b/src/Specific/montgomery64_2e322m2e161m1/femulDisplay.log
@@ -0,0 +1,246 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x12, x13, x11, x9, x7, x5, (x22, x23, x21, x19, x17, x15))%core,
+ uint64_t x25, uint64_t x26 = mulx_u64(x5, x15);
+ uint64_t x28, uint64_t x29 = mulx_u64(x5, x17);
+ uint64_t x31, uint64_t x32 = mulx_u64(x5, x19);
+ uint64_t x34, uint64_t x35 = mulx_u64(x5, x21);
+ uint64_t x37, uint64_t x38 = mulx_u64(x5, x23);
+ uint64_t x40, uint64_t x41 = mulx_u64(x5, x22);
+ uint64_t x43, uint8_t x44 = addcarryx_u64(0x0, x26, x28);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x44, x29, x31);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x47, x32, x34);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(x50, x35, x37);
+ uint64_t x55, uint8_t x56 = addcarryx_u64(x53, x38, x40);
+ uint64_t x58, uint8_t _ = addcarryx_u64(0x0, x56, x41);
+ uint64_t x61, uint64_t x62 = mulx_u64(x25, 0xffffffffffffffffL);
+ uint64_t x64, uint64_t x65 = mulx_u64(x25, 0xffffffffffffffffL);
+ uint64_t x67, uint64_t x68 = mulx_u64(x25, 0xfffffffdffffffffL);
+ uint64_t x70, uint64_t x71 = mulx_u64(x25, 0xffffffffffffffffL);
+ uint64_t x73, uint64_t x74 = mulx_u64(x25, 0xffffffffffffffffL);
+ uint64_t x76, uint8_t x77 = Op (Syntax.MulSplit 64 (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, 0x3);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(0x0, x62, x64);
+ uint64_t x82, uint8_t x83 = addcarryx_u64(x80, x65, x67);
+ uint64_t x85, uint8_t x86 = addcarryx_u64(x83, x68, x70);
+ uint64_t x88, uint8_t x89 = addcarryx_u64(x86, x71, x73);
+ uint64_t x91, uint8_t x92 = addcarryx_u64(x89, x74, x76);
+ uint8_t x93 = (x92 + x77);
+ uint64_t _, uint8_t x96 = addcarryx_u64(0x0, x25, x61);
+ uint64_t x98, uint8_t x99 = addcarryx_u64(x96, x43, x79);
+ uint64_t x101, uint8_t x102 = addcarryx_u64(x99, x46, x82);
+ uint64_t x104, uint8_t x105 = addcarryx_u64(x102, x49, x85);
+ uint64_t x107, uint8_t x108 = addcarryx_u64(x105, x52, x88);
+ uint64_t x110, uint8_t x111 = addcarryx_u64(x108, x55, x91);
+ uint64_t x113, uint8_t x114 = addcarryx_u64(x111, x58, x93);
+ uint64_t x116, uint64_t x117 = mulx_u64(x7, x15);
+ uint64_t x119, uint64_t x120 = mulx_u64(x7, x17);
+ uint64_t x122, uint64_t x123 = mulx_u64(x7, x19);
+ uint64_t x125, uint64_t x126 = mulx_u64(x7, x21);
+ uint64_t x128, uint64_t x129 = mulx_u64(x7, x23);
+ uint64_t x131, uint64_t x132 = mulx_u64(x7, x22);
+ uint64_t x134, uint8_t x135 = addcarryx_u64(0x0, x117, x119);
+ uint64_t x137, uint8_t x138 = addcarryx_u64(x135, x120, x122);
+ uint64_t x140, uint8_t x141 = addcarryx_u64(x138, x123, x125);
+ uint64_t x143, uint8_t x144 = addcarryx_u64(x141, x126, x128);
+ uint64_t x146, uint8_t x147 = addcarryx_u64(x144, x129, x131);
+ uint64_t x149, uint8_t _ = addcarryx_u64(0x0, x147, x132);
+ uint64_t x152, uint8_t x153 = addcarryx_u64(0x0, x98, x116);
+ uint64_t x155, uint8_t x156 = addcarryx_u64(x153, x101, x134);
+ uint64_t x158, uint8_t x159 = addcarryx_u64(x156, x104, x137);
+ uint64_t x161, uint8_t x162 = addcarryx_u64(x159, x107, x140);
+ uint64_t x164, uint8_t x165 = addcarryx_u64(x162, x110, x143);
+ uint64_t x167, uint8_t x168 = addcarryx_u64(x165, x113, x146);
+ uint64_t x170, uint8_t x171 = addcarryx_u64(x168, x114, x149);
+ uint64_t x173, uint64_t x174 = mulx_u64(x152, 0xffffffffffffffffL);
+ uint64_t x176, uint64_t x177 = mulx_u64(x152, 0xffffffffffffffffL);
+ uint64_t x179, uint64_t x180 = mulx_u64(x152, 0xfffffffdffffffffL);
+ uint64_t x182, uint64_t x183 = mulx_u64(x152, 0xffffffffffffffffL);
+ uint64_t x185, uint64_t x186 = mulx_u64(x152, 0xffffffffffffffffL);
+ uint64_t x188, uint8_t x189 = Op (Syntax.MulSplit 64 (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x152, 0x3);
+ uint64_t x191, uint8_t x192 = addcarryx_u64(0x0, x174, x176);
+ uint64_t x194, uint8_t x195 = addcarryx_u64(x192, x177, x179);
+ uint64_t x197, uint8_t x198 = addcarryx_u64(x195, x180, x182);
+ uint64_t x200, uint8_t x201 = addcarryx_u64(x198, x183, x185);
+ uint64_t x203, uint8_t x204 = addcarryx_u64(x201, x186, x188);
+ uint8_t x205 = (x204 + x189);
+ uint64_t _, uint8_t x208 = addcarryx_u64(0x0, x152, x173);
+ uint64_t x210, uint8_t x211 = addcarryx_u64(x208, x155, x191);
+ uint64_t x213, uint8_t x214 = addcarryx_u64(x211, x158, x194);
+ uint64_t x216, uint8_t x217 = addcarryx_u64(x214, x161, x197);
+ uint64_t x219, uint8_t x220 = addcarryx_u64(x217, x164, x200);
+ uint64_t x222, uint8_t x223 = addcarryx_u64(x220, x167, x203);
+ uint64_t x225, uint8_t x226 = addcarryx_u64(x223, x170, x205);
+ uint8_t x227 = (x226 + x171);
+ uint64_t x229, uint64_t x230 = mulx_u64(x9, x15);
+ uint64_t x232, uint64_t x233 = mulx_u64(x9, x17);
+ uint64_t x235, uint64_t x236 = mulx_u64(x9, x19);
+ uint64_t x238, uint64_t x239 = mulx_u64(x9, x21);
+ uint64_t x241, uint64_t x242 = mulx_u64(x9, x23);
+ uint64_t x244, uint64_t x245 = mulx_u64(x9, x22);
+ uint64_t x247, uint8_t x248 = addcarryx_u64(0x0, x230, x232);
+ uint64_t x250, uint8_t x251 = addcarryx_u64(x248, x233, x235);
+ uint64_t x253, uint8_t x254 = addcarryx_u64(x251, x236, x238);
+ uint64_t x256, uint8_t x257 = addcarryx_u64(x254, x239, x241);
+ uint64_t x259, uint8_t x260 = addcarryx_u64(x257, x242, x244);
+ uint64_t x262, uint8_t _ = addcarryx_u64(0x0, x260, x245);
+ uint64_t x265, uint8_t x266 = addcarryx_u64(0x0, x210, x229);
+ uint64_t x268, uint8_t x269 = addcarryx_u64(x266, x213, x247);
+ uint64_t x271, uint8_t x272 = addcarryx_u64(x269, x216, x250);
+ uint64_t x274, uint8_t x275 = addcarryx_u64(x272, x219, x253);
+ uint64_t x277, uint8_t x278 = addcarryx_u64(x275, x222, x256);
+ uint64_t x280, uint8_t x281 = addcarryx_u64(x278, x225, x259);
+ uint64_t x283, uint8_t x284 = addcarryx_u64(x281, x227, x262);
+ uint64_t x286, uint64_t x287 = mulx_u64(x265, 0xffffffffffffffffL);
+ uint64_t x289, uint64_t x290 = mulx_u64(x265, 0xffffffffffffffffL);
+ uint64_t x292, uint64_t x293 = mulx_u64(x265, 0xfffffffdffffffffL);
+ uint64_t x295, uint64_t x296 = mulx_u64(x265, 0xffffffffffffffffL);
+ uint64_t x298, uint64_t x299 = mulx_u64(x265, 0xffffffffffffffffL);
+ uint64_t x301, uint8_t x302 = Op (Syntax.MulSplit 64 (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x265, 0x3);
+ uint64_t x304, uint8_t x305 = addcarryx_u64(0x0, x287, x289);
+ uint64_t x307, uint8_t x308 = addcarryx_u64(x305, x290, x292);
+ uint64_t x310, uint8_t x311 = addcarryx_u64(x308, x293, x295);
+ uint64_t x313, uint8_t x314 = addcarryx_u64(x311, x296, x298);
+ uint64_t x316, uint8_t x317 = addcarryx_u64(x314, x299, x301);
+ uint8_t x318 = (x317 + x302);
+ uint64_t _, uint8_t x321 = addcarryx_u64(0x0, x265, x286);
+ uint64_t x323, uint8_t x324 = addcarryx_u64(x321, x268, x304);
+ uint64_t x326, uint8_t x327 = addcarryx_u64(x324, x271, x307);
+ uint64_t x329, uint8_t x330 = addcarryx_u64(x327, x274, x310);
+ uint64_t x332, uint8_t x333 = addcarryx_u64(x330, x277, x313);
+ uint64_t x335, uint8_t x336 = addcarryx_u64(x333, x280, x316);
+ uint64_t x338, uint8_t x339 = addcarryx_u64(x336, x283, x318);
+ uint8_t x340 = (x339 + x284);
+ uint64_t x342, uint64_t x343 = mulx_u64(x11, x15);
+ uint64_t x345, uint64_t x346 = mulx_u64(x11, x17);
+ uint64_t x348, uint64_t x349 = mulx_u64(x11, x19);
+ uint64_t x351, uint64_t x352 = mulx_u64(x11, x21);
+ uint64_t x354, uint64_t x355 = mulx_u64(x11, x23);
+ uint64_t x357, uint64_t x358 = mulx_u64(x11, x22);
+ uint64_t x360, uint8_t x361 = addcarryx_u64(0x0, x343, x345);
+ uint64_t x363, uint8_t x364 = addcarryx_u64(x361, x346, x348);
+ uint64_t x366, uint8_t x367 = addcarryx_u64(x364, x349, x351);
+ uint64_t x369, uint8_t x370 = addcarryx_u64(x367, x352, x354);
+ uint64_t x372, uint8_t x373 = addcarryx_u64(x370, x355, x357);
+ uint64_t x375, uint8_t _ = addcarryx_u64(0x0, x373, x358);
+ uint64_t x378, uint8_t x379 = addcarryx_u64(0x0, x323, x342);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x326, x360);
+ uint64_t x384, uint8_t x385 = addcarryx_u64(x382, x329, x363);
+ uint64_t x387, uint8_t x388 = addcarryx_u64(x385, x332, x366);
+ uint64_t x390, uint8_t x391 = addcarryx_u64(x388, x335, x369);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(x391, x338, x372);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x340, x375);
+ uint64_t x399, uint64_t x400 = mulx_u64(x378, 0xffffffffffffffffL);
+ uint64_t x402, uint64_t x403 = mulx_u64(x378, 0xffffffffffffffffL);
+ uint64_t x405, uint64_t x406 = mulx_u64(x378, 0xfffffffdffffffffL);
+ uint64_t x408, uint64_t x409 = mulx_u64(x378, 0xffffffffffffffffL);
+ uint64_t x411, uint64_t x412 = mulx_u64(x378, 0xffffffffffffffffL);
+ uint64_t x414, uint8_t x415 = Op (Syntax.MulSplit 64 (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x378, 0x3);
+ uint64_t x417, uint8_t x418 = addcarryx_u64(0x0, x400, x402);
+ uint64_t x420, uint8_t x421 = addcarryx_u64(x418, x403, x405);
+ uint64_t x423, uint8_t x424 = addcarryx_u64(x421, x406, x408);
+ uint64_t x426, uint8_t x427 = addcarryx_u64(x424, x409, x411);
+ uint64_t x429, uint8_t x430 = addcarryx_u64(x427, x412, x414);
+ uint8_t x431 = (x430 + x415);
+ uint64_t _, uint8_t x434 = addcarryx_u64(0x0, x378, x399);
+ uint64_t x436, uint8_t x437 = addcarryx_u64(x434, x381, x417);
+ uint64_t x439, uint8_t x440 = addcarryx_u64(x437, x384, x420);
+ uint64_t x442, uint8_t x443 = addcarryx_u64(x440, x387, x423);
+ uint64_t x445, uint8_t x446 = addcarryx_u64(x443, x390, x426);
+ uint64_t x448, uint8_t x449 = addcarryx_u64(x446, x393, x429);
+ uint64_t x451, uint8_t x452 = addcarryx_u64(x449, x396, x431);
+ uint8_t x453 = (x452 + x397);
+ uint64_t x455, uint64_t x456 = mulx_u64(x13, x15);
+ uint64_t x458, uint64_t x459 = mulx_u64(x13, x17);
+ uint64_t x461, uint64_t x462 = mulx_u64(x13, x19);
+ uint64_t x464, uint64_t x465 = mulx_u64(x13, x21);
+ uint64_t x467, uint64_t x468 = mulx_u64(x13, x23);
+ uint64_t x470, uint64_t x471 = mulx_u64(x13, x22);
+ uint64_t x473, uint8_t x474 = addcarryx_u64(0x0, x456, x458);
+ uint64_t x476, uint8_t x477 = addcarryx_u64(x474, x459, x461);
+ uint64_t x479, uint8_t x480 = addcarryx_u64(x477, x462, x464);
+ uint64_t x482, uint8_t x483 = addcarryx_u64(x480, x465, x467);
+ uint64_t x485, uint8_t x486 = addcarryx_u64(x483, x468, x470);
+ uint64_t x488, uint8_t _ = addcarryx_u64(0x0, x486, x471);
+ uint64_t x491, uint8_t x492 = addcarryx_u64(0x0, x436, x455);
+ uint64_t x494, uint8_t x495 = addcarryx_u64(x492, x439, x473);
+ uint64_t x497, uint8_t x498 = addcarryx_u64(x495, x442, x476);
+ uint64_t x500, uint8_t x501 = addcarryx_u64(x498, x445, x479);
+ uint64_t x503, uint8_t x504 = addcarryx_u64(x501, x448, x482);
+ uint64_t x506, uint8_t x507 = addcarryx_u64(x504, x451, x485);
+ uint64_t x509, uint8_t x510 = addcarryx_u64(x507, x453, x488);
+ uint64_t x512, uint64_t x513 = mulx_u64(x491, 0xffffffffffffffffL);
+ uint64_t x515, uint64_t x516 = mulx_u64(x491, 0xffffffffffffffffL);
+ uint64_t x518, uint64_t x519 = mulx_u64(x491, 0xfffffffdffffffffL);
+ uint64_t x521, uint64_t x522 = mulx_u64(x491, 0xffffffffffffffffL);
+ uint64_t x524, uint64_t x525 = mulx_u64(x491, 0xffffffffffffffffL);
+ uint64_t x527, uint8_t x528 = Op (Syntax.MulSplit 64 (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x491, 0x3);
+ uint64_t x530, uint8_t x531 = addcarryx_u64(0x0, x513, x515);
+ uint64_t x533, uint8_t x534 = addcarryx_u64(x531, x516, x518);
+ uint64_t x536, uint8_t x537 = addcarryx_u64(x534, x519, x521);
+ uint64_t x539, uint8_t x540 = addcarryx_u64(x537, x522, x524);
+ uint64_t x542, uint8_t x543 = addcarryx_u64(x540, x525, x527);
+ uint8_t x544 = (x543 + x528);
+ uint64_t _, uint8_t x547 = addcarryx_u64(0x0, x491, x512);
+ uint64_t x549, uint8_t x550 = addcarryx_u64(x547, x494, x530);
+ uint64_t x552, uint8_t x553 = addcarryx_u64(x550, x497, x533);
+ uint64_t x555, uint8_t x556 = addcarryx_u64(x553, x500, x536);
+ uint64_t x558, uint8_t x559 = addcarryx_u64(x556, x503, x539);
+ uint64_t x561, uint8_t x562 = addcarryx_u64(x559, x506, x542);
+ uint64_t x564, uint8_t x565 = addcarryx_u64(x562, x509, x544);
+ uint8_t x566 = (x565 + x510);
+ uint64_t x568, uint64_t x569 = mulx_u64(x12, x15);
+ uint64_t x571, uint64_t x572 = mulx_u64(x12, x17);
+ uint64_t x574, uint64_t x575 = mulx_u64(x12, x19);
+ uint64_t x577, uint64_t x578 = mulx_u64(x12, x21);
+ uint64_t x580, uint64_t x581 = mulx_u64(x12, x23);
+ uint64_t x583, uint64_t x584 = mulx_u64(x12, x22);
+ uint64_t x586, uint8_t x587 = addcarryx_u64(0x0, x569, x571);
+ uint64_t x589, uint8_t x590 = addcarryx_u64(x587, x572, x574);
+ uint64_t x592, uint8_t x593 = addcarryx_u64(x590, x575, x577);
+ uint64_t x595, uint8_t x596 = addcarryx_u64(x593, x578, x580);
+ uint64_t x598, uint8_t x599 = addcarryx_u64(x596, x581, x583);
+ uint64_t x601, uint8_t _ = addcarryx_u64(0x0, x599, x584);
+ uint64_t x604, uint8_t x605 = addcarryx_u64(0x0, x549, x568);
+ uint64_t x607, uint8_t x608 = addcarryx_u64(x605, x552, x586);
+ uint64_t x610, uint8_t x611 = addcarryx_u64(x608, x555, x589);
+ uint64_t x613, uint8_t x614 = addcarryx_u64(x611, x558, x592);
+ uint64_t x616, uint8_t x617 = addcarryx_u64(x614, x561, x595);
+ uint64_t x619, uint8_t x620 = addcarryx_u64(x617, x564, x598);
+ uint64_t x622, uint8_t x623 = addcarryx_u64(x620, x566, x601);
+ uint64_t x625, uint64_t x626 = mulx_u64(x604, 0xffffffffffffffffL);
+ uint64_t x628, uint64_t x629 = mulx_u64(x604, 0xffffffffffffffffL);
+ uint64_t x631, uint64_t x632 = mulx_u64(x604, 0xfffffffdffffffffL);
+ uint64_t x634, uint64_t x635 = mulx_u64(x604, 0xffffffffffffffffL);
+ uint64_t x637, uint64_t x638 = mulx_u64(x604, 0xffffffffffffffffL);
+ uint64_t x640, uint8_t x641 = Op (Syntax.MulSplit 64 (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x604, 0x3);
+ uint64_t x643, uint8_t x644 = addcarryx_u64(0x0, x626, x628);
+ uint64_t x646, uint8_t x647 = addcarryx_u64(x644, x629, x631);
+ uint64_t x649, uint8_t x650 = addcarryx_u64(x647, x632, x634);
+ uint64_t x652, uint8_t x653 = addcarryx_u64(x650, x635, x637);
+ uint64_t x655, uint8_t x656 = addcarryx_u64(x653, x638, x640);
+ uint8_t x657 = (x656 + x641);
+ uint64_t _, uint8_t x660 = addcarryx_u64(0x0, x604, x625);
+ uint64_t x662, uint8_t x663 = addcarryx_u64(x660, x607, x643);
+ uint64_t x665, uint8_t x666 = addcarryx_u64(x663, x610, x646);
+ uint64_t x668, uint8_t x669 = addcarryx_u64(x666, x613, x649);
+ uint64_t x671, uint8_t x672 = addcarryx_u64(x669, x616, x652);
+ uint64_t x674, uint8_t x675 = addcarryx_u64(x672, x619, x655);
+ uint64_t x677, uint8_t x678 = addcarryx_u64(x675, x622, x657);
+ uint8_t x679 = (x678 + x623);
+ uint64_t x681, uint8_t x682 = subborrow_u64(0x0, x662, 0xffffffffffffffffL);
+ uint64_t x684, uint8_t x685 = subborrow_u64(x682, x665, 0xffffffffffffffffL);
+ uint64_t x687, uint8_t x688 = subborrow_u64(x685, x668, 0xfffffffdffffffffL);
+ uint64_t x690, uint8_t x691 = subborrow_u64(x688, x671, 0xffffffffffffffffL);
+ uint64_t x693, uint8_t x694 = subborrow_u64(x691, x674, 0xffffffffffffffffL);
+ uint64_t x696, uint8_t x697 = subborrow_u64(x694, x677, 0x3);
+ uint64_t _, uint8_t x700 = subborrow_u64(x697, x679, 0x0);
+ uint64_t x701 = cmovznz(x700, x696, x677);
+ uint64_t x702 = cmovznz(x700, x693, x674);
+ uint64_t x703 = cmovznz(x700, x690, x671);
+ uint64_t x704 = cmovznz(x700, x687, x668);
+ uint64_t x705 = cmovznz(x700, x684, x665);
+ uint64_t x706 = cmovznz(x700, x681, x662);
+ return (x701, x702, x703, x704, x705, x706))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e379m19/femulDisplay.log b/src/Specific/montgomery64_2e379m19/femulDisplay.log
new file mode 100644
index 000000000..54df5d5ec
--- /dev/null
+++ b/src/Specific/montgomery64_2e379m19/femulDisplay.log
@@ -0,0 +1,252 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x12, x13, x11, x9, x7, x5, (x22, x23, x21, x19, x17, x15))%core,
+ uint64_t x25, uint64_t x26 = mulx_u64(x5, x15);
+ uint64_t x28, uint64_t x29 = mulx_u64(x5, x17);
+ uint64_t x31, uint64_t x32 = mulx_u64(x5, x19);
+ uint64_t x34, uint64_t x35 = mulx_u64(x5, x21);
+ uint64_t x37, uint64_t x38 = mulx_u64(x5, x23);
+ uint64_t x40, uint64_t x41 = mulx_u64(x5, x22);
+ uint64_t x43, uint8_t x44 = addcarryx_u64(0x0, x26, x28);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x44, x29, x31);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x47, x32, x34);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(x50, x35, x37);
+ uint64_t x55, uint8_t x56 = addcarryx_u64(x53, x38, x40);
+ uint64_t x58, uint8_t _ = addcarryx_u64(0x0, x56, x41);
+ uint64_t x61, uint64_t _ = mulx_u64(x25, 0x86bca1af286bca1bL);
+ uint64_t x64, uint64_t x65 = mulx_u64(x61, 0xffffffffffffffedL);
+ uint64_t x67, uint64_t x68 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x70, uint64_t x71 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x73, uint64_t x74 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x76, uint64_t x77 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x79, uint64_t x80 = mulx_u64(x61, 0x7ffffffffffffff);
+ uint64_t x82, uint8_t x83 = addcarryx_u64(0x0, x65, x67);
+ uint64_t x85, uint8_t x86 = addcarryx_u64(x83, x68, x70);
+ uint64_t x88, uint8_t x89 = addcarryx_u64(x86, x71, x73);
+ uint64_t x91, uint8_t x92 = addcarryx_u64(x89, x74, x76);
+ uint64_t x94, uint8_t x95 = addcarryx_u64(x92, x77, x79);
+ uint64_t x97, uint8_t _ = addcarryx_u64(0x0, x95, x80);
+ uint64_t _, uint8_t x101 = addcarryx_u64(0x0, x25, x64);
+ uint64_t x103, uint8_t x104 = addcarryx_u64(x101, x43, x82);
+ uint64_t x106, uint8_t x107 = addcarryx_u64(x104, x46, x85);
+ uint64_t x109, uint8_t x110 = addcarryx_u64(x107, x49, x88);
+ uint64_t x112, uint8_t x113 = addcarryx_u64(x110, x52, x91);
+ uint64_t x115, uint8_t x116 = addcarryx_u64(x113, x55, x94);
+ uint64_t x118, uint8_t x119 = addcarryx_u64(x116, x58, x97);
+ uint64_t x121, uint64_t x122 = mulx_u64(x7, x15);
+ uint64_t x124, uint64_t x125 = mulx_u64(x7, x17);
+ uint64_t x127, uint64_t x128 = mulx_u64(x7, x19);
+ uint64_t x130, uint64_t x131 = mulx_u64(x7, x21);
+ uint64_t x133, uint64_t x134 = mulx_u64(x7, x23);
+ uint64_t x136, uint64_t x137 = mulx_u64(x7, x22);
+ uint64_t x139, uint8_t x140 = addcarryx_u64(0x0, x122, x124);
+ uint64_t x142, uint8_t x143 = addcarryx_u64(x140, x125, x127);
+ uint64_t x145, uint8_t x146 = addcarryx_u64(x143, x128, x130);
+ uint64_t x148, uint8_t x149 = addcarryx_u64(x146, x131, x133);
+ uint64_t x151, uint8_t x152 = addcarryx_u64(x149, x134, x136);
+ uint64_t x154, uint8_t _ = addcarryx_u64(0x0, x152, x137);
+ uint64_t x157, uint8_t x158 = addcarryx_u64(0x0, x103, x121);
+ uint64_t x160, uint8_t x161 = addcarryx_u64(x158, x106, x139);
+ uint64_t x163, uint8_t x164 = addcarryx_u64(x161, x109, x142);
+ uint64_t x166, uint8_t x167 = addcarryx_u64(x164, x112, x145);
+ uint64_t x169, uint8_t x170 = addcarryx_u64(x167, x115, x148);
+ uint64_t x172, uint8_t x173 = addcarryx_u64(x170, x118, x151);
+ uint64_t x175, uint8_t x176 = addcarryx_u64(x173, x119, x154);
+ uint64_t x178, uint64_t _ = mulx_u64(x157, 0x86bca1af286bca1bL);
+ uint64_t x181, uint64_t x182 = mulx_u64(x178, 0xffffffffffffffedL);
+ uint64_t x184, uint64_t x185 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x187, uint64_t x188 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x190, uint64_t x191 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x193, uint64_t x194 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x196, uint64_t x197 = mulx_u64(x178, 0x7ffffffffffffff);
+ uint64_t x199, uint8_t x200 = addcarryx_u64(0x0, x182, x184);
+ uint64_t x202, uint8_t x203 = addcarryx_u64(x200, x185, x187);
+ uint64_t x205, uint8_t x206 = addcarryx_u64(x203, x188, x190);
+ uint64_t x208, uint8_t x209 = addcarryx_u64(x206, x191, x193);
+ uint64_t x211, uint8_t x212 = addcarryx_u64(x209, x194, x196);
+ uint64_t x214, uint8_t _ = addcarryx_u64(0x0, x212, x197);
+ uint64_t _, uint8_t x218 = addcarryx_u64(0x0, x157, x181);
+ uint64_t x220, uint8_t x221 = addcarryx_u64(x218, x160, x199);
+ uint64_t x223, uint8_t x224 = addcarryx_u64(x221, x163, x202);
+ uint64_t x226, uint8_t x227 = addcarryx_u64(x224, x166, x205);
+ uint64_t x229, uint8_t x230 = addcarryx_u64(x227, x169, x208);
+ uint64_t x232, uint8_t x233 = addcarryx_u64(x230, x172, x211);
+ uint64_t x235, uint8_t x236 = addcarryx_u64(x233, x175, x214);
+ uint8_t x237 = (x236 + x176);
+ uint64_t x239, uint64_t x240 = mulx_u64(x9, x15);
+ uint64_t x242, uint64_t x243 = mulx_u64(x9, x17);
+ uint64_t x245, uint64_t x246 = mulx_u64(x9, x19);
+ uint64_t x248, uint64_t x249 = mulx_u64(x9, x21);
+ uint64_t x251, uint64_t x252 = mulx_u64(x9, x23);
+ uint64_t x254, uint64_t x255 = mulx_u64(x9, x22);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(0x0, x240, x242);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x243, x245);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x246, x248);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x249, x251);
+ uint64_t x269, uint8_t x270 = addcarryx_u64(x267, x252, x254);
+ uint64_t x272, uint8_t _ = addcarryx_u64(0x0, x270, x255);
+ uint64_t x275, uint8_t x276 = addcarryx_u64(0x0, x220, x239);
+ uint64_t x278, uint8_t x279 = addcarryx_u64(x276, x223, x257);
+ uint64_t x281, uint8_t x282 = addcarryx_u64(x279, x226, x260);
+ uint64_t x284, uint8_t x285 = addcarryx_u64(x282, x229, x263);
+ uint64_t x287, uint8_t x288 = addcarryx_u64(x285, x232, x266);
+ uint64_t x290, uint8_t x291 = addcarryx_u64(x288, x235, x269);
+ uint64_t x293, uint8_t x294 = addcarryx_u64(x291, x237, x272);
+ uint64_t x296, uint64_t _ = mulx_u64(x275, 0x86bca1af286bca1bL);
+ uint64_t x299, uint64_t x300 = mulx_u64(x296, 0xffffffffffffffedL);
+ uint64_t x302, uint64_t x303 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x305, uint64_t x306 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x308, uint64_t x309 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x311, uint64_t x312 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x314, uint64_t x315 = mulx_u64(x296, 0x7ffffffffffffff);
+ uint64_t x317, uint8_t x318 = addcarryx_u64(0x0, x300, x302);
+ uint64_t x320, uint8_t x321 = addcarryx_u64(x318, x303, x305);
+ uint64_t x323, uint8_t x324 = addcarryx_u64(x321, x306, x308);
+ uint64_t x326, uint8_t x327 = addcarryx_u64(x324, x309, x311);
+ uint64_t x329, uint8_t x330 = addcarryx_u64(x327, x312, x314);
+ uint64_t x332, uint8_t _ = addcarryx_u64(0x0, x330, x315);
+ uint64_t _, uint8_t x336 = addcarryx_u64(0x0, x275, x299);
+ uint64_t x338, uint8_t x339 = addcarryx_u64(x336, x278, x317);
+ uint64_t x341, uint8_t x342 = addcarryx_u64(x339, x281, x320);
+ uint64_t x344, uint8_t x345 = addcarryx_u64(x342, x284, x323);
+ uint64_t x347, uint8_t x348 = addcarryx_u64(x345, x287, x326);
+ uint64_t x350, uint8_t x351 = addcarryx_u64(x348, x290, x329);
+ uint64_t x353, uint8_t x354 = addcarryx_u64(x351, x293, x332);
+ uint8_t x355 = (x354 + x294);
+ uint64_t x357, uint64_t x358 = mulx_u64(x11, x15);
+ uint64_t x360, uint64_t x361 = mulx_u64(x11, x17);
+ uint64_t x363, uint64_t x364 = mulx_u64(x11, x19);
+ uint64_t x366, uint64_t x367 = mulx_u64(x11, x21);
+ uint64_t x369, uint64_t x370 = mulx_u64(x11, x23);
+ uint64_t x372, uint64_t x373 = mulx_u64(x11, x22);
+ uint64_t x375, uint8_t x376 = addcarryx_u64(0x0, x358, x360);
+ uint64_t x378, uint8_t x379 = addcarryx_u64(x376, x361, x363);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x364, x366);
+ uint64_t x384, uint8_t x385 = addcarryx_u64(x382, x367, x369);
+ uint64_t x387, uint8_t x388 = addcarryx_u64(x385, x370, x372);
+ uint64_t x390, uint8_t _ = addcarryx_u64(0x0, x388, x373);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(0x0, x338, x357);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x341, x375);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x344, x378);
+ uint64_t x402, uint8_t x403 = addcarryx_u64(x400, x347, x381);
+ uint64_t x405, uint8_t x406 = addcarryx_u64(x403, x350, x384);
+ uint64_t x408, uint8_t x409 = addcarryx_u64(x406, x353, x387);
+ uint64_t x411, uint8_t x412 = addcarryx_u64(x409, x355, x390);
+ uint64_t x414, uint64_t _ = mulx_u64(x393, 0x86bca1af286bca1bL);
+ uint64_t x417, uint64_t x418 = mulx_u64(x414, 0xffffffffffffffedL);
+ uint64_t x420, uint64_t x421 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x423, uint64_t x424 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x426, uint64_t x427 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x429, uint64_t x430 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x432, uint64_t x433 = mulx_u64(x414, 0x7ffffffffffffff);
+ uint64_t x435, uint8_t x436 = addcarryx_u64(0x0, x418, x420);
+ uint64_t x438, uint8_t x439 = addcarryx_u64(x436, x421, x423);
+ uint64_t x441, uint8_t x442 = addcarryx_u64(x439, x424, x426);
+ uint64_t x444, uint8_t x445 = addcarryx_u64(x442, x427, x429);
+ uint64_t x447, uint8_t x448 = addcarryx_u64(x445, x430, x432);
+ uint64_t x450, uint8_t _ = addcarryx_u64(0x0, x448, x433);
+ uint64_t _, uint8_t x454 = addcarryx_u64(0x0, x393, x417);
+ uint64_t x456, uint8_t x457 = addcarryx_u64(x454, x396, x435);
+ uint64_t x459, uint8_t x460 = addcarryx_u64(x457, x399, x438);
+ uint64_t x462, uint8_t x463 = addcarryx_u64(x460, x402, x441);
+ uint64_t x465, uint8_t x466 = addcarryx_u64(x463, x405, x444);
+ uint64_t x468, uint8_t x469 = addcarryx_u64(x466, x408, x447);
+ uint64_t x471, uint8_t x472 = addcarryx_u64(x469, x411, x450);
+ uint8_t x473 = (x472 + x412);
+ uint64_t x475, uint64_t x476 = mulx_u64(x13, x15);
+ uint64_t x478, uint64_t x479 = mulx_u64(x13, x17);
+ uint64_t x481, uint64_t x482 = mulx_u64(x13, x19);
+ uint64_t x484, uint64_t x485 = mulx_u64(x13, x21);
+ uint64_t x487, uint64_t x488 = mulx_u64(x13, x23);
+ uint64_t x490, uint64_t x491 = mulx_u64(x13, x22);
+ uint64_t x493, uint8_t x494 = addcarryx_u64(0x0, x476, x478);
+ uint64_t x496, uint8_t x497 = addcarryx_u64(x494, x479, x481);
+ uint64_t x499, uint8_t x500 = addcarryx_u64(x497, x482, x484);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(x500, x485, x487);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x488, x490);
+ uint64_t x508, uint8_t _ = addcarryx_u64(0x0, x506, x491);
+ uint64_t x511, uint8_t x512 = addcarryx_u64(0x0, x456, x475);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x459, x493);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x462, x496);
+ uint64_t x520, uint8_t x521 = addcarryx_u64(x518, x465, x499);
+ uint64_t x523, uint8_t x524 = addcarryx_u64(x521, x468, x502);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x471, x505);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x473, x508);
+ uint64_t x532, uint64_t _ = mulx_u64(x511, 0x86bca1af286bca1bL);
+ uint64_t x535, uint64_t x536 = mulx_u64(x532, 0xffffffffffffffedL);
+ uint64_t x538, uint64_t x539 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x541, uint64_t x542 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x544, uint64_t x545 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x547, uint64_t x548 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x550, uint64_t x551 = mulx_u64(x532, 0x7ffffffffffffff);
+ uint64_t x553, uint8_t x554 = addcarryx_u64(0x0, x536, x538);
+ uint64_t x556, uint8_t x557 = addcarryx_u64(x554, x539, x541);
+ uint64_t x559, uint8_t x560 = addcarryx_u64(x557, x542, x544);
+ uint64_t x562, uint8_t x563 = addcarryx_u64(x560, x545, x547);
+ uint64_t x565, uint8_t x566 = addcarryx_u64(x563, x548, x550);
+ uint64_t x568, uint8_t _ = addcarryx_u64(0x0, x566, x551);
+ uint64_t _, uint8_t x572 = addcarryx_u64(0x0, x511, x535);
+ uint64_t x574, uint8_t x575 = addcarryx_u64(x572, x514, x553);
+ uint64_t x577, uint8_t x578 = addcarryx_u64(x575, x517, x556);
+ uint64_t x580, uint8_t x581 = addcarryx_u64(x578, x520, x559);
+ uint64_t x583, uint8_t x584 = addcarryx_u64(x581, x523, x562);
+ uint64_t x586, uint8_t x587 = addcarryx_u64(x584, x526, x565);
+ uint64_t x589, uint8_t x590 = addcarryx_u64(x587, x529, x568);
+ uint8_t x591 = (x590 + x530);
+ uint64_t x593, uint64_t x594 = mulx_u64(x12, x15);
+ uint64_t x596, uint64_t x597 = mulx_u64(x12, x17);
+ uint64_t x599, uint64_t x600 = mulx_u64(x12, x19);
+ uint64_t x602, uint64_t x603 = mulx_u64(x12, x21);
+ uint64_t x605, uint64_t x606 = mulx_u64(x12, x23);
+ uint64_t x608, uint64_t x609 = mulx_u64(x12, x22);
+ uint64_t x611, uint8_t x612 = addcarryx_u64(0x0, x594, x596);
+ uint64_t x614, uint8_t x615 = addcarryx_u64(x612, x597, x599);
+ uint64_t x617, uint8_t x618 = addcarryx_u64(x615, x600, x602);
+ uint64_t x620, uint8_t x621 = addcarryx_u64(x618, x603, x605);
+ uint64_t x623, uint8_t x624 = addcarryx_u64(x621, x606, x608);
+ uint64_t x626, uint8_t _ = addcarryx_u64(0x0, x624, x609);
+ uint64_t x629, uint8_t x630 = addcarryx_u64(0x0, x574, x593);
+ uint64_t x632, uint8_t x633 = addcarryx_u64(x630, x577, x611);
+ uint64_t x635, uint8_t x636 = addcarryx_u64(x633, x580, x614);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(x636, x583, x617);
+ uint64_t x641, uint8_t x642 = addcarryx_u64(x639, x586, x620);
+ uint64_t x644, uint8_t x645 = addcarryx_u64(x642, x589, x623);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x591, x626);
+ uint64_t x650, uint64_t _ = mulx_u64(x629, 0x86bca1af286bca1bL);
+ uint64_t x653, uint64_t x654 = mulx_u64(x650, 0xffffffffffffffedL);
+ uint64_t x656, uint64_t x657 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x659, uint64_t x660 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x662, uint64_t x663 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x665, uint64_t x666 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x668, uint64_t x669 = mulx_u64(x650, 0x7ffffffffffffff);
+ uint64_t x671, uint8_t x672 = addcarryx_u64(0x0, x654, x656);
+ uint64_t x674, uint8_t x675 = addcarryx_u64(x672, x657, x659);
+ uint64_t x677, uint8_t x678 = addcarryx_u64(x675, x660, x662);
+ uint64_t x680, uint8_t x681 = addcarryx_u64(x678, x663, x665);
+ uint64_t x683, uint8_t x684 = addcarryx_u64(x681, x666, x668);
+ uint64_t x686, uint8_t _ = addcarryx_u64(0x0, x684, x669);
+ uint64_t _, uint8_t x690 = addcarryx_u64(0x0, x629, x653);
+ uint64_t x692, uint8_t x693 = addcarryx_u64(x690, x632, x671);
+ uint64_t x695, uint8_t x696 = addcarryx_u64(x693, x635, x674);
+ uint64_t x698, uint8_t x699 = addcarryx_u64(x696, x638, x677);
+ uint64_t x701, uint8_t x702 = addcarryx_u64(x699, x641, x680);
+ uint64_t x704, uint8_t x705 = addcarryx_u64(x702, x644, x683);
+ uint64_t x707, uint8_t x708 = addcarryx_u64(x705, x647, x686);
+ uint8_t x709 = (x708 + x648);
+ uint64_t x711, uint8_t x712 = subborrow_u64(0x0, x692, 0xffffffffffffffedL);
+ uint64_t x714, uint8_t x715 = subborrow_u64(x712, x695, 0xffffffffffffffffL);
+ uint64_t x717, uint8_t x718 = subborrow_u64(x715, x698, 0xffffffffffffffffL);
+ uint64_t x720, uint8_t x721 = subborrow_u64(x718, x701, 0xffffffffffffffffL);
+ uint64_t x723, uint8_t x724 = subborrow_u64(x721, x704, 0xffffffffffffffffL);
+ uint64_t x726, uint8_t x727 = subborrow_u64(x724, x707, 0x7ffffffffffffff);
+ uint64_t _, uint8_t x730 = subborrow_u64(x727, x709, 0x0);
+ uint64_t x731 = cmovznz(x730, x726, x707);
+ uint64_t x732 = cmovznz(x730, x723, x704);
+ uint64_t x733 = cmovznz(x730, x720, x701);
+ uint64_t x734 = cmovznz(x730, x717, x698);
+ uint64_t x735 = cmovznz(x730, x714, x695);
+ uint64_t x736 = cmovznz(x730, x711, x692);
+ return (x731, x732, x733, x734, x735, x736))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e383m187/femulDisplay.log b/src/Specific/montgomery64_2e383m187/femulDisplay.log
new file mode 100644
index 000000000..f9d630e11
--- /dev/null
+++ b/src/Specific/montgomery64_2e383m187/femulDisplay.log
@@ -0,0 +1,252 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x12, x13, x11, x9, x7, x5, (x22, x23, x21, x19, x17, x15))%core,
+ uint64_t x25, uint64_t x26 = mulx_u64(x5, x15);
+ uint64_t x28, uint64_t x29 = mulx_u64(x5, x17);
+ uint64_t x31, uint64_t x32 = mulx_u64(x5, x19);
+ uint64_t x34, uint64_t x35 = mulx_u64(x5, x21);
+ uint64_t x37, uint64_t x38 = mulx_u64(x5, x23);
+ uint64_t x40, uint64_t x41 = mulx_u64(x5, x22);
+ uint64_t x43, uint8_t x44 = addcarryx_u64(0x0, x26, x28);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x44, x29, x31);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x47, x32, x34);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(x50, x35, x37);
+ uint64_t x55, uint8_t x56 = addcarryx_u64(x53, x38, x40);
+ uint64_t x58, uint8_t _ = addcarryx_u64(0x0, x56, x41);
+ uint64_t x61, uint64_t _ = mulx_u64(x25, 0x8a4472fea18a4473L);
+ uint64_t x64, uint64_t x65 = mulx_u64(x61, 0xffffffffffffff45L);
+ uint64_t x67, uint64_t x68 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x70, uint64_t x71 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x73, uint64_t x74 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x76, uint64_t x77 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x79, uint64_t x80 = mulx_u64(x61, 0x7fffffffffffffffL);
+ uint64_t x82, uint8_t x83 = addcarryx_u64(0x0, x65, x67);
+ uint64_t x85, uint8_t x86 = addcarryx_u64(x83, x68, x70);
+ uint64_t x88, uint8_t x89 = addcarryx_u64(x86, x71, x73);
+ uint64_t x91, uint8_t x92 = addcarryx_u64(x89, x74, x76);
+ uint64_t x94, uint8_t x95 = addcarryx_u64(x92, x77, x79);
+ uint64_t x97, uint8_t _ = addcarryx_u64(0x0, x95, x80);
+ uint64_t _, uint8_t x101 = addcarryx_u64(0x0, x25, x64);
+ uint64_t x103, uint8_t x104 = addcarryx_u64(x101, x43, x82);
+ uint64_t x106, uint8_t x107 = addcarryx_u64(x104, x46, x85);
+ uint64_t x109, uint8_t x110 = addcarryx_u64(x107, x49, x88);
+ uint64_t x112, uint8_t x113 = addcarryx_u64(x110, x52, x91);
+ uint64_t x115, uint8_t x116 = addcarryx_u64(x113, x55, x94);
+ uint64_t x118, uint8_t x119 = addcarryx_u64(x116, x58, x97);
+ uint64_t x121, uint64_t x122 = mulx_u64(x7, x15);
+ uint64_t x124, uint64_t x125 = mulx_u64(x7, x17);
+ uint64_t x127, uint64_t x128 = mulx_u64(x7, x19);
+ uint64_t x130, uint64_t x131 = mulx_u64(x7, x21);
+ uint64_t x133, uint64_t x134 = mulx_u64(x7, x23);
+ uint64_t x136, uint64_t x137 = mulx_u64(x7, x22);
+ uint64_t x139, uint8_t x140 = addcarryx_u64(0x0, x122, x124);
+ uint64_t x142, uint8_t x143 = addcarryx_u64(x140, x125, x127);
+ uint64_t x145, uint8_t x146 = addcarryx_u64(x143, x128, x130);
+ uint64_t x148, uint8_t x149 = addcarryx_u64(x146, x131, x133);
+ uint64_t x151, uint8_t x152 = addcarryx_u64(x149, x134, x136);
+ uint64_t x154, uint8_t _ = addcarryx_u64(0x0, x152, x137);
+ uint64_t x157, uint8_t x158 = addcarryx_u64(0x0, x103, x121);
+ uint64_t x160, uint8_t x161 = addcarryx_u64(x158, x106, x139);
+ uint64_t x163, uint8_t x164 = addcarryx_u64(x161, x109, x142);
+ uint64_t x166, uint8_t x167 = addcarryx_u64(x164, x112, x145);
+ uint64_t x169, uint8_t x170 = addcarryx_u64(x167, x115, x148);
+ uint64_t x172, uint8_t x173 = addcarryx_u64(x170, x118, x151);
+ uint64_t x175, uint8_t x176 = addcarryx_u64(x173, x119, x154);
+ uint64_t x178, uint64_t _ = mulx_u64(x157, 0x8a4472fea18a4473L);
+ uint64_t x181, uint64_t x182 = mulx_u64(x178, 0xffffffffffffff45L);
+ uint64_t x184, uint64_t x185 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x187, uint64_t x188 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x190, uint64_t x191 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x193, uint64_t x194 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x196, uint64_t x197 = mulx_u64(x178, 0x7fffffffffffffffL);
+ uint64_t x199, uint8_t x200 = addcarryx_u64(0x0, x182, x184);
+ uint64_t x202, uint8_t x203 = addcarryx_u64(x200, x185, x187);
+ uint64_t x205, uint8_t x206 = addcarryx_u64(x203, x188, x190);
+ uint64_t x208, uint8_t x209 = addcarryx_u64(x206, x191, x193);
+ uint64_t x211, uint8_t x212 = addcarryx_u64(x209, x194, x196);
+ uint64_t x214, uint8_t _ = addcarryx_u64(0x0, x212, x197);
+ uint64_t _, uint8_t x218 = addcarryx_u64(0x0, x157, x181);
+ uint64_t x220, uint8_t x221 = addcarryx_u64(x218, x160, x199);
+ uint64_t x223, uint8_t x224 = addcarryx_u64(x221, x163, x202);
+ uint64_t x226, uint8_t x227 = addcarryx_u64(x224, x166, x205);
+ uint64_t x229, uint8_t x230 = addcarryx_u64(x227, x169, x208);
+ uint64_t x232, uint8_t x233 = addcarryx_u64(x230, x172, x211);
+ uint64_t x235, uint8_t x236 = addcarryx_u64(x233, x175, x214);
+ uint8_t x237 = (x236 + x176);
+ uint64_t x239, uint64_t x240 = mulx_u64(x9, x15);
+ uint64_t x242, uint64_t x243 = mulx_u64(x9, x17);
+ uint64_t x245, uint64_t x246 = mulx_u64(x9, x19);
+ uint64_t x248, uint64_t x249 = mulx_u64(x9, x21);
+ uint64_t x251, uint64_t x252 = mulx_u64(x9, x23);
+ uint64_t x254, uint64_t x255 = mulx_u64(x9, x22);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(0x0, x240, x242);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x243, x245);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x246, x248);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x249, x251);
+ uint64_t x269, uint8_t x270 = addcarryx_u64(x267, x252, x254);
+ uint64_t x272, uint8_t _ = addcarryx_u64(0x0, x270, x255);
+ uint64_t x275, uint8_t x276 = addcarryx_u64(0x0, x220, x239);
+ uint64_t x278, uint8_t x279 = addcarryx_u64(x276, x223, x257);
+ uint64_t x281, uint8_t x282 = addcarryx_u64(x279, x226, x260);
+ uint64_t x284, uint8_t x285 = addcarryx_u64(x282, x229, x263);
+ uint64_t x287, uint8_t x288 = addcarryx_u64(x285, x232, x266);
+ uint64_t x290, uint8_t x291 = addcarryx_u64(x288, x235, x269);
+ uint64_t x293, uint8_t x294 = addcarryx_u64(x291, x237, x272);
+ uint64_t x296, uint64_t _ = mulx_u64(x275, 0x8a4472fea18a4473L);
+ uint64_t x299, uint64_t x300 = mulx_u64(x296, 0xffffffffffffff45L);
+ uint64_t x302, uint64_t x303 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x305, uint64_t x306 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x308, uint64_t x309 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x311, uint64_t x312 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x314, uint64_t x315 = mulx_u64(x296, 0x7fffffffffffffffL);
+ uint64_t x317, uint8_t x318 = addcarryx_u64(0x0, x300, x302);
+ uint64_t x320, uint8_t x321 = addcarryx_u64(x318, x303, x305);
+ uint64_t x323, uint8_t x324 = addcarryx_u64(x321, x306, x308);
+ uint64_t x326, uint8_t x327 = addcarryx_u64(x324, x309, x311);
+ uint64_t x329, uint8_t x330 = addcarryx_u64(x327, x312, x314);
+ uint64_t x332, uint8_t _ = addcarryx_u64(0x0, x330, x315);
+ uint64_t _, uint8_t x336 = addcarryx_u64(0x0, x275, x299);
+ uint64_t x338, uint8_t x339 = addcarryx_u64(x336, x278, x317);
+ uint64_t x341, uint8_t x342 = addcarryx_u64(x339, x281, x320);
+ uint64_t x344, uint8_t x345 = addcarryx_u64(x342, x284, x323);
+ uint64_t x347, uint8_t x348 = addcarryx_u64(x345, x287, x326);
+ uint64_t x350, uint8_t x351 = addcarryx_u64(x348, x290, x329);
+ uint64_t x353, uint8_t x354 = addcarryx_u64(x351, x293, x332);
+ uint8_t x355 = (x354 + x294);
+ uint64_t x357, uint64_t x358 = mulx_u64(x11, x15);
+ uint64_t x360, uint64_t x361 = mulx_u64(x11, x17);
+ uint64_t x363, uint64_t x364 = mulx_u64(x11, x19);
+ uint64_t x366, uint64_t x367 = mulx_u64(x11, x21);
+ uint64_t x369, uint64_t x370 = mulx_u64(x11, x23);
+ uint64_t x372, uint64_t x373 = mulx_u64(x11, x22);
+ uint64_t x375, uint8_t x376 = addcarryx_u64(0x0, x358, x360);
+ uint64_t x378, uint8_t x379 = addcarryx_u64(x376, x361, x363);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x364, x366);
+ uint64_t x384, uint8_t x385 = addcarryx_u64(x382, x367, x369);
+ uint64_t x387, uint8_t x388 = addcarryx_u64(x385, x370, x372);
+ uint64_t x390, uint8_t _ = addcarryx_u64(0x0, x388, x373);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(0x0, x338, x357);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x341, x375);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x344, x378);
+ uint64_t x402, uint8_t x403 = addcarryx_u64(x400, x347, x381);
+ uint64_t x405, uint8_t x406 = addcarryx_u64(x403, x350, x384);
+ uint64_t x408, uint8_t x409 = addcarryx_u64(x406, x353, x387);
+ uint64_t x411, uint8_t x412 = addcarryx_u64(x409, x355, x390);
+ uint64_t x414, uint64_t _ = mulx_u64(x393, 0x8a4472fea18a4473L);
+ uint64_t x417, uint64_t x418 = mulx_u64(x414, 0xffffffffffffff45L);
+ uint64_t x420, uint64_t x421 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x423, uint64_t x424 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x426, uint64_t x427 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x429, uint64_t x430 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x432, uint64_t x433 = mulx_u64(x414, 0x7fffffffffffffffL);
+ uint64_t x435, uint8_t x436 = addcarryx_u64(0x0, x418, x420);
+ uint64_t x438, uint8_t x439 = addcarryx_u64(x436, x421, x423);
+ uint64_t x441, uint8_t x442 = addcarryx_u64(x439, x424, x426);
+ uint64_t x444, uint8_t x445 = addcarryx_u64(x442, x427, x429);
+ uint64_t x447, uint8_t x448 = addcarryx_u64(x445, x430, x432);
+ uint64_t x450, uint8_t _ = addcarryx_u64(0x0, x448, x433);
+ uint64_t _, uint8_t x454 = addcarryx_u64(0x0, x393, x417);
+ uint64_t x456, uint8_t x457 = addcarryx_u64(x454, x396, x435);
+ uint64_t x459, uint8_t x460 = addcarryx_u64(x457, x399, x438);
+ uint64_t x462, uint8_t x463 = addcarryx_u64(x460, x402, x441);
+ uint64_t x465, uint8_t x466 = addcarryx_u64(x463, x405, x444);
+ uint64_t x468, uint8_t x469 = addcarryx_u64(x466, x408, x447);
+ uint64_t x471, uint8_t x472 = addcarryx_u64(x469, x411, x450);
+ uint8_t x473 = (x472 + x412);
+ uint64_t x475, uint64_t x476 = mulx_u64(x13, x15);
+ uint64_t x478, uint64_t x479 = mulx_u64(x13, x17);
+ uint64_t x481, uint64_t x482 = mulx_u64(x13, x19);
+ uint64_t x484, uint64_t x485 = mulx_u64(x13, x21);
+ uint64_t x487, uint64_t x488 = mulx_u64(x13, x23);
+ uint64_t x490, uint64_t x491 = mulx_u64(x13, x22);
+ uint64_t x493, uint8_t x494 = addcarryx_u64(0x0, x476, x478);
+ uint64_t x496, uint8_t x497 = addcarryx_u64(x494, x479, x481);
+ uint64_t x499, uint8_t x500 = addcarryx_u64(x497, x482, x484);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(x500, x485, x487);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x488, x490);
+ uint64_t x508, uint8_t _ = addcarryx_u64(0x0, x506, x491);
+ uint64_t x511, uint8_t x512 = addcarryx_u64(0x0, x456, x475);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x459, x493);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x462, x496);
+ uint64_t x520, uint8_t x521 = addcarryx_u64(x518, x465, x499);
+ uint64_t x523, uint8_t x524 = addcarryx_u64(x521, x468, x502);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x471, x505);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x473, x508);
+ uint64_t x532, uint64_t _ = mulx_u64(x511, 0x8a4472fea18a4473L);
+ uint64_t x535, uint64_t x536 = mulx_u64(x532, 0xffffffffffffff45L);
+ uint64_t x538, uint64_t x539 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x541, uint64_t x542 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x544, uint64_t x545 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x547, uint64_t x548 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x550, uint64_t x551 = mulx_u64(x532, 0x7fffffffffffffffL);
+ uint64_t x553, uint8_t x554 = addcarryx_u64(0x0, x536, x538);
+ uint64_t x556, uint8_t x557 = addcarryx_u64(x554, x539, x541);
+ uint64_t x559, uint8_t x560 = addcarryx_u64(x557, x542, x544);
+ uint64_t x562, uint8_t x563 = addcarryx_u64(x560, x545, x547);
+ uint64_t x565, uint8_t x566 = addcarryx_u64(x563, x548, x550);
+ uint64_t x568, uint8_t _ = addcarryx_u64(0x0, x566, x551);
+ uint64_t _, uint8_t x572 = addcarryx_u64(0x0, x511, x535);
+ uint64_t x574, uint8_t x575 = addcarryx_u64(x572, x514, x553);
+ uint64_t x577, uint8_t x578 = addcarryx_u64(x575, x517, x556);
+ uint64_t x580, uint8_t x581 = addcarryx_u64(x578, x520, x559);
+ uint64_t x583, uint8_t x584 = addcarryx_u64(x581, x523, x562);
+ uint64_t x586, uint8_t x587 = addcarryx_u64(x584, x526, x565);
+ uint64_t x589, uint8_t x590 = addcarryx_u64(x587, x529, x568);
+ uint8_t x591 = (x590 + x530);
+ uint64_t x593, uint64_t x594 = mulx_u64(x12, x15);
+ uint64_t x596, uint64_t x597 = mulx_u64(x12, x17);
+ uint64_t x599, uint64_t x600 = mulx_u64(x12, x19);
+ uint64_t x602, uint64_t x603 = mulx_u64(x12, x21);
+ uint64_t x605, uint64_t x606 = mulx_u64(x12, x23);
+ uint64_t x608, uint64_t x609 = mulx_u64(x12, x22);
+ uint64_t x611, uint8_t x612 = addcarryx_u64(0x0, x594, x596);
+ uint64_t x614, uint8_t x615 = addcarryx_u64(x612, x597, x599);
+ uint64_t x617, uint8_t x618 = addcarryx_u64(x615, x600, x602);
+ uint64_t x620, uint8_t x621 = addcarryx_u64(x618, x603, x605);
+ uint64_t x623, uint8_t x624 = addcarryx_u64(x621, x606, x608);
+ uint64_t x626, uint8_t _ = addcarryx_u64(0x0, x624, x609);
+ uint64_t x629, uint8_t x630 = addcarryx_u64(0x0, x574, x593);
+ uint64_t x632, uint8_t x633 = addcarryx_u64(x630, x577, x611);
+ uint64_t x635, uint8_t x636 = addcarryx_u64(x633, x580, x614);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(x636, x583, x617);
+ uint64_t x641, uint8_t x642 = addcarryx_u64(x639, x586, x620);
+ uint64_t x644, uint8_t x645 = addcarryx_u64(x642, x589, x623);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x591, x626);
+ uint64_t x650, uint64_t _ = mulx_u64(x629, 0x8a4472fea18a4473L);
+ uint64_t x653, uint64_t x654 = mulx_u64(x650, 0xffffffffffffff45L);
+ uint64_t x656, uint64_t x657 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x659, uint64_t x660 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x662, uint64_t x663 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x665, uint64_t x666 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x668, uint64_t x669 = mulx_u64(x650, 0x7fffffffffffffffL);
+ uint64_t x671, uint8_t x672 = addcarryx_u64(0x0, x654, x656);
+ uint64_t x674, uint8_t x675 = addcarryx_u64(x672, x657, x659);
+ uint64_t x677, uint8_t x678 = addcarryx_u64(x675, x660, x662);
+ uint64_t x680, uint8_t x681 = addcarryx_u64(x678, x663, x665);
+ uint64_t x683, uint8_t x684 = addcarryx_u64(x681, x666, x668);
+ uint64_t x686, uint8_t _ = addcarryx_u64(0x0, x684, x669);
+ uint64_t _, uint8_t x690 = addcarryx_u64(0x0, x629, x653);
+ uint64_t x692, uint8_t x693 = addcarryx_u64(x690, x632, x671);
+ uint64_t x695, uint8_t x696 = addcarryx_u64(x693, x635, x674);
+ uint64_t x698, uint8_t x699 = addcarryx_u64(x696, x638, x677);
+ uint64_t x701, uint8_t x702 = addcarryx_u64(x699, x641, x680);
+ uint64_t x704, uint8_t x705 = addcarryx_u64(x702, x644, x683);
+ uint64_t x707, uint8_t x708 = addcarryx_u64(x705, x647, x686);
+ uint8_t x709 = (x708 + x648);
+ uint64_t x711, uint8_t x712 = subborrow_u64(0x0, x692, 0xffffffffffffff45L);
+ uint64_t x714, uint8_t x715 = subborrow_u64(x712, x695, 0xffffffffffffffffL);
+ uint64_t x717, uint8_t x718 = subborrow_u64(x715, x698, 0xffffffffffffffffL);
+ uint64_t x720, uint8_t x721 = subborrow_u64(x718, x701, 0xffffffffffffffffL);
+ uint64_t x723, uint8_t x724 = subborrow_u64(x721, x704, 0xffffffffffffffffL);
+ uint64_t x726, uint8_t x727 = subborrow_u64(x724, x707, 0x7fffffffffffffffL);
+ uint64_t _, uint8_t x730 = subborrow_u64(x727, x709, 0x0);
+ uint64_t x731 = cmovznz(x730, x726, x707);
+ uint64_t x732 = cmovznz(x730, x723, x704);
+ uint64_t x733 = cmovznz(x730, x720, x701);
+ uint64_t x734 = cmovznz(x730, x717, x698);
+ uint64_t x735 = cmovznz(x730, x714, x695);
+ uint64_t x736 = cmovznz(x730, x711, x692);
+ return (x731, x732, x733, x734, x735, x736))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/fenzDisplay.log b/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/fenzDisplay.log
index f39f1d91b..2a7474647 100644
--- a/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/fenzDisplay.log
+++ b/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/fenzDisplay.log
@@ -9,4 +9,16 @@ Interp-η
uint64_t x15 = (x2 | x14);
return x15)
x
- : word64 * word64 * word64 * word64 * word64 * word64 → ReturnType uint64_t
+ : word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (Tbase match (if match match (let (lower, _) := Synthesis.P.bound1 in
+ lower) with
+ | 0%Z => Eq
+ | Z.pos _ => Lt
+ | Z.neg _ => Gt
+ end with
+ | Eq => true
+ | Lt => true
+ | Gt => false
+ end then Some 6 else None) with
+ | Some lgsz => Syntax.TWord lgsz
+ | None => Syntax.TZ
+ end)
diff --git a/src/Specific/montgomery64_2e384m317/femulDisplay.log b/src/Specific/montgomery64_2e384m317/femulDisplay.log
new file mode 100644
index 000000000..0059aa1f0
--- /dev/null
+++ b/src/Specific/montgomery64_2e384m317/femulDisplay.log
@@ -0,0 +1,252 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x12, x13, x11, x9, x7, x5, (x22, x23, x21, x19, x17, x15))%core,
+ uint64_t x25, uint64_t x26 = mulx_u64(x5, x15);
+ uint64_t x28, uint64_t x29 = mulx_u64(x5, x17);
+ uint64_t x31, uint64_t x32 = mulx_u64(x5, x19);
+ uint64_t x34, uint64_t x35 = mulx_u64(x5, x21);
+ uint64_t x37, uint64_t x38 = mulx_u64(x5, x23);
+ uint64_t x40, uint64_t x41 = mulx_u64(x5, x22);
+ uint64_t x43, uint8_t x44 = addcarryx_u64(0x0, x26, x28);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x44, x29, x31);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x47, x32, x34);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(x50, x35, x37);
+ uint64_t x55, uint8_t x56 = addcarryx_u64(x53, x38, x40);
+ uint64_t x58, uint8_t _ = addcarryx_u64(0x0, x56, x41);
+ uint64_t x61, uint64_t _ = mulx_u64(x25, 0xec9e48ae6f71de15L);
+ uint64_t x64, uint64_t x65 = mulx_u64(x61, 0xfffffffffffffec3L);
+ uint64_t x67, uint64_t x68 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x70, uint64_t x71 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x73, uint64_t x74 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x76, uint64_t x77 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x79, uint64_t x80 = mulx_u64(x61, 0xffffffffffffffffL);
+ uint64_t x82, uint8_t x83 = addcarryx_u64(0x0, x65, x67);
+ uint64_t x85, uint8_t x86 = addcarryx_u64(x83, x68, x70);
+ uint64_t x88, uint8_t x89 = addcarryx_u64(x86, x71, x73);
+ uint64_t x91, uint8_t x92 = addcarryx_u64(x89, x74, x76);
+ uint64_t x94, uint8_t x95 = addcarryx_u64(x92, x77, x79);
+ uint64_t x97, uint8_t _ = addcarryx_u64(0x0, x95, x80);
+ uint64_t _, uint8_t x101 = addcarryx_u64(0x0, x25, x64);
+ uint64_t x103, uint8_t x104 = addcarryx_u64(x101, x43, x82);
+ uint64_t x106, uint8_t x107 = addcarryx_u64(x104, x46, x85);
+ uint64_t x109, uint8_t x110 = addcarryx_u64(x107, x49, x88);
+ uint64_t x112, uint8_t x113 = addcarryx_u64(x110, x52, x91);
+ uint64_t x115, uint8_t x116 = addcarryx_u64(x113, x55, x94);
+ uint64_t x118, uint8_t x119 = addcarryx_u64(x116, x58, x97);
+ uint64_t x121, uint64_t x122 = mulx_u64(x7, x15);
+ uint64_t x124, uint64_t x125 = mulx_u64(x7, x17);
+ uint64_t x127, uint64_t x128 = mulx_u64(x7, x19);
+ uint64_t x130, uint64_t x131 = mulx_u64(x7, x21);
+ uint64_t x133, uint64_t x134 = mulx_u64(x7, x23);
+ uint64_t x136, uint64_t x137 = mulx_u64(x7, x22);
+ uint64_t x139, uint8_t x140 = addcarryx_u64(0x0, x122, x124);
+ uint64_t x142, uint8_t x143 = addcarryx_u64(x140, x125, x127);
+ uint64_t x145, uint8_t x146 = addcarryx_u64(x143, x128, x130);
+ uint64_t x148, uint8_t x149 = addcarryx_u64(x146, x131, x133);
+ uint64_t x151, uint8_t x152 = addcarryx_u64(x149, x134, x136);
+ uint64_t x154, uint8_t _ = addcarryx_u64(0x0, x152, x137);
+ uint64_t x157, uint8_t x158 = addcarryx_u64(0x0, x103, x121);
+ uint64_t x160, uint8_t x161 = addcarryx_u64(x158, x106, x139);
+ uint64_t x163, uint8_t x164 = addcarryx_u64(x161, x109, x142);
+ uint64_t x166, uint8_t x167 = addcarryx_u64(x164, x112, x145);
+ uint64_t x169, uint8_t x170 = addcarryx_u64(x167, x115, x148);
+ uint64_t x172, uint8_t x173 = addcarryx_u64(x170, x118, x151);
+ uint64_t x175, uint8_t x176 = addcarryx_u64(x173, x119, x154);
+ uint64_t x178, uint64_t _ = mulx_u64(x157, 0xec9e48ae6f71de15L);
+ uint64_t x181, uint64_t x182 = mulx_u64(x178, 0xfffffffffffffec3L);
+ uint64_t x184, uint64_t x185 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x187, uint64_t x188 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x190, uint64_t x191 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x193, uint64_t x194 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x196, uint64_t x197 = mulx_u64(x178, 0xffffffffffffffffL);
+ uint64_t x199, uint8_t x200 = addcarryx_u64(0x0, x182, x184);
+ uint64_t x202, uint8_t x203 = addcarryx_u64(x200, x185, x187);
+ uint64_t x205, uint8_t x206 = addcarryx_u64(x203, x188, x190);
+ uint64_t x208, uint8_t x209 = addcarryx_u64(x206, x191, x193);
+ uint64_t x211, uint8_t x212 = addcarryx_u64(x209, x194, x196);
+ uint64_t x214, uint8_t _ = addcarryx_u64(0x0, x212, x197);
+ uint64_t _, uint8_t x218 = addcarryx_u64(0x0, x157, x181);
+ uint64_t x220, uint8_t x221 = addcarryx_u64(x218, x160, x199);
+ uint64_t x223, uint8_t x224 = addcarryx_u64(x221, x163, x202);
+ uint64_t x226, uint8_t x227 = addcarryx_u64(x224, x166, x205);
+ uint64_t x229, uint8_t x230 = addcarryx_u64(x227, x169, x208);
+ uint64_t x232, uint8_t x233 = addcarryx_u64(x230, x172, x211);
+ uint64_t x235, uint8_t x236 = addcarryx_u64(x233, x175, x214);
+ uint8_t x237 = (x236 + x176);
+ uint64_t x239, uint64_t x240 = mulx_u64(x9, x15);
+ uint64_t x242, uint64_t x243 = mulx_u64(x9, x17);
+ uint64_t x245, uint64_t x246 = mulx_u64(x9, x19);
+ uint64_t x248, uint64_t x249 = mulx_u64(x9, x21);
+ uint64_t x251, uint64_t x252 = mulx_u64(x9, x23);
+ uint64_t x254, uint64_t x255 = mulx_u64(x9, x22);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(0x0, x240, x242);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x243, x245);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x246, x248);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x249, x251);
+ uint64_t x269, uint8_t x270 = addcarryx_u64(x267, x252, x254);
+ uint64_t x272, uint8_t _ = addcarryx_u64(0x0, x270, x255);
+ uint64_t x275, uint8_t x276 = addcarryx_u64(0x0, x220, x239);
+ uint64_t x278, uint8_t x279 = addcarryx_u64(x276, x223, x257);
+ uint64_t x281, uint8_t x282 = addcarryx_u64(x279, x226, x260);
+ uint64_t x284, uint8_t x285 = addcarryx_u64(x282, x229, x263);
+ uint64_t x287, uint8_t x288 = addcarryx_u64(x285, x232, x266);
+ uint64_t x290, uint8_t x291 = addcarryx_u64(x288, x235, x269);
+ uint64_t x293, uint8_t x294 = addcarryx_u64(x291, x237, x272);
+ uint64_t x296, uint64_t _ = mulx_u64(x275, 0xec9e48ae6f71de15L);
+ uint64_t x299, uint64_t x300 = mulx_u64(x296, 0xfffffffffffffec3L);
+ uint64_t x302, uint64_t x303 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x305, uint64_t x306 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x308, uint64_t x309 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x311, uint64_t x312 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x314, uint64_t x315 = mulx_u64(x296, 0xffffffffffffffffL);
+ uint64_t x317, uint8_t x318 = addcarryx_u64(0x0, x300, x302);
+ uint64_t x320, uint8_t x321 = addcarryx_u64(x318, x303, x305);
+ uint64_t x323, uint8_t x324 = addcarryx_u64(x321, x306, x308);
+ uint64_t x326, uint8_t x327 = addcarryx_u64(x324, x309, x311);
+ uint64_t x329, uint8_t x330 = addcarryx_u64(x327, x312, x314);
+ uint64_t x332, uint8_t _ = addcarryx_u64(0x0, x330, x315);
+ uint64_t _, uint8_t x336 = addcarryx_u64(0x0, x275, x299);
+ uint64_t x338, uint8_t x339 = addcarryx_u64(x336, x278, x317);
+ uint64_t x341, uint8_t x342 = addcarryx_u64(x339, x281, x320);
+ uint64_t x344, uint8_t x345 = addcarryx_u64(x342, x284, x323);
+ uint64_t x347, uint8_t x348 = addcarryx_u64(x345, x287, x326);
+ uint64_t x350, uint8_t x351 = addcarryx_u64(x348, x290, x329);
+ uint64_t x353, uint8_t x354 = addcarryx_u64(x351, x293, x332);
+ uint8_t x355 = (x354 + x294);
+ uint64_t x357, uint64_t x358 = mulx_u64(x11, x15);
+ uint64_t x360, uint64_t x361 = mulx_u64(x11, x17);
+ uint64_t x363, uint64_t x364 = mulx_u64(x11, x19);
+ uint64_t x366, uint64_t x367 = mulx_u64(x11, x21);
+ uint64_t x369, uint64_t x370 = mulx_u64(x11, x23);
+ uint64_t x372, uint64_t x373 = mulx_u64(x11, x22);
+ uint64_t x375, uint8_t x376 = addcarryx_u64(0x0, x358, x360);
+ uint64_t x378, uint8_t x379 = addcarryx_u64(x376, x361, x363);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x364, x366);
+ uint64_t x384, uint8_t x385 = addcarryx_u64(x382, x367, x369);
+ uint64_t x387, uint8_t x388 = addcarryx_u64(x385, x370, x372);
+ uint64_t x390, uint8_t _ = addcarryx_u64(0x0, x388, x373);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(0x0, x338, x357);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x341, x375);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x344, x378);
+ uint64_t x402, uint8_t x403 = addcarryx_u64(x400, x347, x381);
+ uint64_t x405, uint8_t x406 = addcarryx_u64(x403, x350, x384);
+ uint64_t x408, uint8_t x409 = addcarryx_u64(x406, x353, x387);
+ uint64_t x411, uint8_t x412 = addcarryx_u64(x409, x355, x390);
+ uint64_t x414, uint64_t _ = mulx_u64(x393, 0xec9e48ae6f71de15L);
+ uint64_t x417, uint64_t x418 = mulx_u64(x414, 0xfffffffffffffec3L);
+ uint64_t x420, uint64_t x421 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x423, uint64_t x424 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x426, uint64_t x427 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x429, uint64_t x430 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x432, uint64_t x433 = mulx_u64(x414, 0xffffffffffffffffL);
+ uint64_t x435, uint8_t x436 = addcarryx_u64(0x0, x418, x420);
+ uint64_t x438, uint8_t x439 = addcarryx_u64(x436, x421, x423);
+ uint64_t x441, uint8_t x442 = addcarryx_u64(x439, x424, x426);
+ uint64_t x444, uint8_t x445 = addcarryx_u64(x442, x427, x429);
+ uint64_t x447, uint8_t x448 = addcarryx_u64(x445, x430, x432);
+ uint64_t x450, uint8_t _ = addcarryx_u64(0x0, x448, x433);
+ uint64_t _, uint8_t x454 = addcarryx_u64(0x0, x393, x417);
+ uint64_t x456, uint8_t x457 = addcarryx_u64(x454, x396, x435);
+ uint64_t x459, uint8_t x460 = addcarryx_u64(x457, x399, x438);
+ uint64_t x462, uint8_t x463 = addcarryx_u64(x460, x402, x441);
+ uint64_t x465, uint8_t x466 = addcarryx_u64(x463, x405, x444);
+ uint64_t x468, uint8_t x469 = addcarryx_u64(x466, x408, x447);
+ uint64_t x471, uint8_t x472 = addcarryx_u64(x469, x411, x450);
+ uint8_t x473 = (x472 + x412);
+ uint64_t x475, uint64_t x476 = mulx_u64(x13, x15);
+ uint64_t x478, uint64_t x479 = mulx_u64(x13, x17);
+ uint64_t x481, uint64_t x482 = mulx_u64(x13, x19);
+ uint64_t x484, uint64_t x485 = mulx_u64(x13, x21);
+ uint64_t x487, uint64_t x488 = mulx_u64(x13, x23);
+ uint64_t x490, uint64_t x491 = mulx_u64(x13, x22);
+ uint64_t x493, uint8_t x494 = addcarryx_u64(0x0, x476, x478);
+ uint64_t x496, uint8_t x497 = addcarryx_u64(x494, x479, x481);
+ uint64_t x499, uint8_t x500 = addcarryx_u64(x497, x482, x484);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(x500, x485, x487);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x488, x490);
+ uint64_t x508, uint8_t _ = addcarryx_u64(0x0, x506, x491);
+ uint64_t x511, uint8_t x512 = addcarryx_u64(0x0, x456, x475);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x459, x493);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x462, x496);
+ uint64_t x520, uint8_t x521 = addcarryx_u64(x518, x465, x499);
+ uint64_t x523, uint8_t x524 = addcarryx_u64(x521, x468, x502);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x471, x505);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x473, x508);
+ uint64_t x532, uint64_t _ = mulx_u64(x511, 0xec9e48ae6f71de15L);
+ uint64_t x535, uint64_t x536 = mulx_u64(x532, 0xfffffffffffffec3L);
+ uint64_t x538, uint64_t x539 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x541, uint64_t x542 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x544, uint64_t x545 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x547, uint64_t x548 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x550, uint64_t x551 = mulx_u64(x532, 0xffffffffffffffffL);
+ uint64_t x553, uint8_t x554 = addcarryx_u64(0x0, x536, x538);
+ uint64_t x556, uint8_t x557 = addcarryx_u64(x554, x539, x541);
+ uint64_t x559, uint8_t x560 = addcarryx_u64(x557, x542, x544);
+ uint64_t x562, uint8_t x563 = addcarryx_u64(x560, x545, x547);
+ uint64_t x565, uint8_t x566 = addcarryx_u64(x563, x548, x550);
+ uint64_t x568, uint8_t _ = addcarryx_u64(0x0, x566, x551);
+ uint64_t _, uint8_t x572 = addcarryx_u64(0x0, x511, x535);
+ uint64_t x574, uint8_t x575 = addcarryx_u64(x572, x514, x553);
+ uint64_t x577, uint8_t x578 = addcarryx_u64(x575, x517, x556);
+ uint64_t x580, uint8_t x581 = addcarryx_u64(x578, x520, x559);
+ uint64_t x583, uint8_t x584 = addcarryx_u64(x581, x523, x562);
+ uint64_t x586, uint8_t x587 = addcarryx_u64(x584, x526, x565);
+ uint64_t x589, uint8_t x590 = addcarryx_u64(x587, x529, x568);
+ uint8_t x591 = (x590 + x530);
+ uint64_t x593, uint64_t x594 = mulx_u64(x12, x15);
+ uint64_t x596, uint64_t x597 = mulx_u64(x12, x17);
+ uint64_t x599, uint64_t x600 = mulx_u64(x12, x19);
+ uint64_t x602, uint64_t x603 = mulx_u64(x12, x21);
+ uint64_t x605, uint64_t x606 = mulx_u64(x12, x23);
+ uint64_t x608, uint64_t x609 = mulx_u64(x12, x22);
+ uint64_t x611, uint8_t x612 = addcarryx_u64(0x0, x594, x596);
+ uint64_t x614, uint8_t x615 = addcarryx_u64(x612, x597, x599);
+ uint64_t x617, uint8_t x618 = addcarryx_u64(x615, x600, x602);
+ uint64_t x620, uint8_t x621 = addcarryx_u64(x618, x603, x605);
+ uint64_t x623, uint8_t x624 = addcarryx_u64(x621, x606, x608);
+ uint64_t x626, uint8_t _ = addcarryx_u64(0x0, x624, x609);
+ uint64_t x629, uint8_t x630 = addcarryx_u64(0x0, x574, x593);
+ uint64_t x632, uint8_t x633 = addcarryx_u64(x630, x577, x611);
+ uint64_t x635, uint8_t x636 = addcarryx_u64(x633, x580, x614);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(x636, x583, x617);
+ uint64_t x641, uint8_t x642 = addcarryx_u64(x639, x586, x620);
+ uint64_t x644, uint8_t x645 = addcarryx_u64(x642, x589, x623);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x591, x626);
+ uint64_t x650, uint64_t _ = mulx_u64(x629, 0xec9e48ae6f71de15L);
+ uint64_t x653, uint64_t x654 = mulx_u64(x650, 0xfffffffffffffec3L);
+ uint64_t x656, uint64_t x657 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x659, uint64_t x660 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x662, uint64_t x663 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x665, uint64_t x666 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x668, uint64_t x669 = mulx_u64(x650, 0xffffffffffffffffL);
+ uint64_t x671, uint8_t x672 = addcarryx_u64(0x0, x654, x656);
+ uint64_t x674, uint8_t x675 = addcarryx_u64(x672, x657, x659);
+ uint64_t x677, uint8_t x678 = addcarryx_u64(x675, x660, x662);
+ uint64_t x680, uint8_t x681 = addcarryx_u64(x678, x663, x665);
+ uint64_t x683, uint8_t x684 = addcarryx_u64(x681, x666, x668);
+ uint64_t x686, uint8_t _ = addcarryx_u64(0x0, x684, x669);
+ uint64_t _, uint8_t x690 = addcarryx_u64(0x0, x629, x653);
+ uint64_t x692, uint8_t x693 = addcarryx_u64(x690, x632, x671);
+ uint64_t x695, uint8_t x696 = addcarryx_u64(x693, x635, x674);
+ uint64_t x698, uint8_t x699 = addcarryx_u64(x696, x638, x677);
+ uint64_t x701, uint8_t x702 = addcarryx_u64(x699, x641, x680);
+ uint64_t x704, uint8_t x705 = addcarryx_u64(x702, x644, x683);
+ uint64_t x707, uint8_t x708 = addcarryx_u64(x705, x647, x686);
+ uint8_t x709 = (x708 + x648);
+ uint64_t x711, uint8_t x712 = subborrow_u64(0x0, x692, 0xfffffffffffffec3L);
+ uint64_t x714, uint8_t x715 = subborrow_u64(x712, x695, 0xffffffffffffffffL);
+ uint64_t x717, uint8_t x718 = subborrow_u64(x715, x698, 0xffffffffffffffffL);
+ uint64_t x720, uint8_t x721 = subborrow_u64(x718, x701, 0xffffffffffffffffL);
+ uint64_t x723, uint8_t x724 = subborrow_u64(x721, x704, 0xffffffffffffffffL);
+ uint64_t x726, uint8_t x727 = subborrow_u64(x724, x707, 0xffffffffffffffffL);
+ uint64_t _, uint8_t x730 = subborrow_u64(x727, x709, 0x0);
+ uint64_t x731 = cmovznz(x730, x726, x707);
+ uint64_t x732 = cmovznz(x730, x723, x704);
+ uint64_t x733 = cmovznz(x730, x720, x701);
+ uint64_t x734 = cmovznz(x730, x717, x698);
+ uint64_t x735 = cmovznz(x730, x714, x695);
+ uint64_t x736 = cmovznz(x730, x711, x692);
+ return (x731, x732, x733, x734, x735, x736))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e389m21/feoppDisplay.log b/src/Specific/montgomery64_2e389m21/feoppDisplay.log
new file mode 100644
index 000000000..4838eabff
--- /dev/null
+++ b/src/Specific/montgomery64_2e389m21/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x14, uint8_t x15 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x4);
+ uint64_t x20, uint8_t x21 = subborrow_u64(x18, 0x0, x6);
+ uint64_t x23, uint8_t x24 = subborrow_u64(x21, 0x0, x8);
+ uint64_t x26, uint8_t x27 = subborrow_u64(x24, 0x0, x10);
+ uint64_t x29, uint8_t x30 = subborrow_u64(x27, 0x0, x12);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, 0x0, x11);
+ uint64_t x34 = (uint64_t)cmovznz(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & 0xffffffffffffffebL);
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x14, x35);
+ uint64_t x39 = (x34 & 0xffffffffffffffffL);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x38, x17, x39);
+ uint64_t x43 = (x34 & 0xffffffffffffffffL);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x42, x20, x43);
+ uint64_t x47 = (x34 & 0xffffffffffffffffL);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x46, x23, x47);
+ uint64_t x51 = (x34 & 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x50, x26, x51);
+ uint64_t x55 = (x34 & 0xffffffffffffffffL);
+ uint64_t x57, uint8_t x58 = addcarryx_u64(x54, x29, x55);
+ uint8_t x59 = ((uint8_t)x34 & 0x1f);
+ uint64_t x61, uint8_t _ = addcarryx_u64(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e389m21/fesubDisplay.log b/src/Specific/montgomery64_2e389m21/fesubDisplay.log
new file mode 100644
index 000000000..4f96203a4
--- /dev/null
+++ b/src/Specific/montgomery64_2e389m21/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = subborrow_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = subborrow_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = subborrow_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = subborrow_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = subborrow_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = subborrow_u64(x45, x14, x26);
+ uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffffffffffebL);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(0x0, x29, x50);
+ uint64_t x54 = (x49 & 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x53, x32, x54);
+ uint64_t x58 = (x49 & 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = addcarryx_u64(x57, x35, x58);
+ uint64_t x62 = (x49 & 0xffffffffffffffffL);
+ uint64_t x64, uint8_t x65 = addcarryx_u64(x61, x38, x62);
+ uint64_t x66 = (x49 & 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = addcarryx_u64(x65, x41, x66);
+ uint64_t x70 = (x49 & 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = addcarryx_u64(x69, x44, x70);
+ uint8_t x74 = ((uint8_t)x49 & 0x1f);
+ uint64_t x76, uint8_t _ = addcarryx_u64(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e401m31/feaddDisplay.log b/src/Specific/montgomery64_2e401m31/feaddDisplay.log
new file mode 100644
index 000000000..31c15d9d2
--- /dev/null
+++ b/src/Specific/montgomery64_2e401m31/feaddDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = addcarryx_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = addcarryx_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = addcarryx_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = addcarryx_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = addcarryx_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = addcarryx_u64(x45, x14, x26);
+ uint64_t x50, uint8_t x51 = subborrow_u64(0x0, x29, 0xffffffffffffffe1L);
+ uint64_t x53, uint8_t x54 = subborrow_u64(x51, x32, 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = subborrow_u64(x54, x35, 0xffffffffffffffffL);
+ uint64_t x59, uint8_t x60 = subborrow_u64(x57, x38, 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = subborrow_u64(x60, x41, 0xffffffffffffffffL);
+ uint64_t x65, uint8_t x66 = subborrow_u64(x63, x44, 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = subborrow_u64(x66, x47, 0x1ffff);
+ uint64_t _, uint8_t x72 = subborrow_u64(x69, x48, 0x0);
+ uint64_t x73 = cmovznz(x72, x68, x47);
+ uint64_t x74 = cmovznz(x72, x65, x44);
+ uint64_t x75 = cmovznz(x72, x62, x41);
+ uint64_t x76 = cmovznz(x72, x59, x38);
+ uint64_t x77 = cmovznz(x72, x56, x35);
+ uint64_t x78 = cmovznz(x72, x53, x32);
+ uint64_t x79 = cmovznz(x72, x50, x29);
+ return (x73, x74, x75, x76, x77, x78, x79))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e401m31/femulDisplay.log b/src/Specific/montgomery64_2e401m31/femulDisplay.log
new file mode 100644
index 000000000..c325ddb44
--- /dev/null
+++ b/src/Specific/montgomery64_2e401m31/femulDisplay.log
@@ -0,0 +1,335 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint64_t x30 = mulx_u64(x5, x17);
+ uint64_t x32, uint64_t x33 = mulx_u64(x5, x19);
+ uint64_t x35, uint64_t x36 = mulx_u64(x5, x21);
+ uint64_t x38, uint64_t x39 = mulx_u64(x5, x23);
+ uint64_t x41, uint64_t x42 = mulx_u64(x5, x25);
+ uint64_t x44, uint64_t x45 = mulx_u64(x5, x27);
+ uint64_t x47, uint64_t x48 = mulx_u64(x5, x26);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(0x0, x30, x32);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x51, x33, x35);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x54, x36, x38);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(x57, x39, x41);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x60, x42, x44);
+ uint64_t x65, uint8_t x66 = addcarryx_u64(x63, x45, x47);
+ uint64_t x68, uint8_t _ = addcarryx_u64(0x0, x66, x48);
+ uint64_t x71, uint64_t _ = mulx_u64(x29, 0xef7bdef7bdef7bdfL);
+ uint64_t x74, uint64_t x75 = mulx_u64(x71, 0xffffffffffffffe1L);
+ uint64_t x77, uint64_t x78 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x80, uint64_t x81 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x83, uint64_t x84 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x86, uint64_t x87 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x89, uint64_t x90 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x92, uint64_t x93 = mulx_u64(x71, 0x1ffff);
+ uint64_t x95, uint8_t x96 = addcarryx_u64(0x0, x75, x77);
+ uint64_t x98, uint8_t x99 = addcarryx_u64(x96, x78, x80);
+ uint64_t x101, uint8_t x102 = addcarryx_u64(x99, x81, x83);
+ uint64_t x104, uint8_t x105 = addcarryx_u64(x102, x84, x86);
+ uint64_t x107, uint8_t x108 = addcarryx_u64(x105, x87, x89);
+ uint64_t x110, uint8_t x111 = addcarryx_u64(x108, x90, x92);
+ uint64_t x113, uint8_t _ = addcarryx_u64(0x0, x111, x93);
+ uint64_t _, uint8_t x117 = addcarryx_u64(0x0, x29, x74);
+ uint64_t x119, uint8_t x120 = addcarryx_u64(x117, x50, x95);
+ uint64_t x122, uint8_t x123 = addcarryx_u64(x120, x53, x98);
+ uint64_t x125, uint8_t x126 = addcarryx_u64(x123, x56, x101);
+ uint64_t x128, uint8_t x129 = addcarryx_u64(x126, x59, x104);
+ uint64_t x131, uint8_t x132 = addcarryx_u64(x129, x62, x107);
+ uint64_t x134, uint8_t x135 = addcarryx_u64(x132, x65, x110);
+ uint64_t x137, uint8_t x138 = addcarryx_u64(x135, x68, x113);
+ uint64_t x140, uint64_t x141 = mulx_u64(x7, x17);
+ uint64_t x143, uint64_t x144 = mulx_u64(x7, x19);
+ uint64_t x146, uint64_t x147 = mulx_u64(x7, x21);
+ uint64_t x149, uint64_t x150 = mulx_u64(x7, x23);
+ uint64_t x152, uint64_t x153 = mulx_u64(x7, x25);
+ uint64_t x155, uint64_t x156 = mulx_u64(x7, x27);
+ uint64_t x158, uint64_t x159 = mulx_u64(x7, x26);
+ uint64_t x161, uint8_t x162 = addcarryx_u64(0x0, x141, x143);
+ uint64_t x164, uint8_t x165 = addcarryx_u64(x162, x144, x146);
+ uint64_t x167, uint8_t x168 = addcarryx_u64(x165, x147, x149);
+ uint64_t x170, uint8_t x171 = addcarryx_u64(x168, x150, x152);
+ uint64_t x173, uint8_t x174 = addcarryx_u64(x171, x153, x155);
+ uint64_t x176, uint8_t x177 = addcarryx_u64(x174, x156, x158);
+ uint64_t x179, uint8_t _ = addcarryx_u64(0x0, x177, x159);
+ uint64_t x182, uint8_t x183 = addcarryx_u64(0x0, x119, x140);
+ uint64_t x185, uint8_t x186 = addcarryx_u64(x183, x122, x161);
+ uint64_t x188, uint8_t x189 = addcarryx_u64(x186, x125, x164);
+ uint64_t x191, uint8_t x192 = addcarryx_u64(x189, x128, x167);
+ uint64_t x194, uint8_t x195 = addcarryx_u64(x192, x131, x170);
+ uint64_t x197, uint8_t x198 = addcarryx_u64(x195, x134, x173);
+ uint64_t x200, uint8_t x201 = addcarryx_u64(x198, x137, x176);
+ uint64_t x203, uint8_t x204 = addcarryx_u64(x201, x138, x179);
+ uint64_t x206, uint64_t _ = mulx_u64(x182, 0xef7bdef7bdef7bdfL);
+ uint64_t x209, uint64_t x210 = mulx_u64(x206, 0xffffffffffffffe1L);
+ uint64_t x212, uint64_t x213 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x215, uint64_t x216 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x218, uint64_t x219 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x221, uint64_t x222 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x224, uint64_t x225 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x227, uint64_t x228 = mulx_u64(x206, 0x1ffff);
+ uint64_t x230, uint8_t x231 = addcarryx_u64(0x0, x210, x212);
+ uint64_t x233, uint8_t x234 = addcarryx_u64(x231, x213, x215);
+ uint64_t x236, uint8_t x237 = addcarryx_u64(x234, x216, x218);
+ uint64_t x239, uint8_t x240 = addcarryx_u64(x237, x219, x221);
+ uint64_t x242, uint8_t x243 = addcarryx_u64(x240, x222, x224);
+ uint64_t x245, uint8_t x246 = addcarryx_u64(x243, x225, x227);
+ uint64_t x248, uint8_t _ = addcarryx_u64(0x0, x246, x228);
+ uint64_t _, uint8_t x252 = addcarryx_u64(0x0, x182, x209);
+ uint64_t x254, uint8_t x255 = addcarryx_u64(x252, x185, x230);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(x255, x188, x233);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x191, x236);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x194, x239);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x197, x242);
+ uint64_t x269, uint8_t x270 = addcarryx_u64(x267, x200, x245);
+ uint64_t x272, uint8_t x273 = addcarryx_u64(x270, x203, x248);
+ uint8_t x274 = (x273 + x204);
+ uint64_t x276, uint64_t x277 = mulx_u64(x9, x17);
+ uint64_t x279, uint64_t x280 = mulx_u64(x9, x19);
+ uint64_t x282, uint64_t x283 = mulx_u64(x9, x21);
+ uint64_t x285, uint64_t x286 = mulx_u64(x9, x23);
+ uint64_t x288, uint64_t x289 = mulx_u64(x9, x25);
+ uint64_t x291, uint64_t x292 = mulx_u64(x9, x27);
+ uint64_t x294, uint64_t x295 = mulx_u64(x9, x26);
+ uint64_t x297, uint8_t x298 = addcarryx_u64(0x0, x277, x279);
+ uint64_t x300, uint8_t x301 = addcarryx_u64(x298, x280, x282);
+ uint64_t x303, uint8_t x304 = addcarryx_u64(x301, x283, x285);
+ uint64_t x306, uint8_t x307 = addcarryx_u64(x304, x286, x288);
+ uint64_t x309, uint8_t x310 = addcarryx_u64(x307, x289, x291);
+ uint64_t x312, uint8_t x313 = addcarryx_u64(x310, x292, x294);
+ uint64_t x315, uint8_t _ = addcarryx_u64(0x0, x313, x295);
+ uint64_t x318, uint8_t x319 = addcarryx_u64(0x0, x254, x276);
+ uint64_t x321, uint8_t x322 = addcarryx_u64(x319, x257, x297);
+ uint64_t x324, uint8_t x325 = addcarryx_u64(x322, x260, x300);
+ uint64_t x327, uint8_t x328 = addcarryx_u64(x325, x263, x303);
+ uint64_t x330, uint8_t x331 = addcarryx_u64(x328, x266, x306);
+ uint64_t x333, uint8_t x334 = addcarryx_u64(x331, x269, x309);
+ uint64_t x336, uint8_t x337 = addcarryx_u64(x334, x272, x312);
+ uint64_t x339, uint8_t x340 = addcarryx_u64(x337, x274, x315);
+ uint64_t x342, uint64_t _ = mulx_u64(x318, 0xef7bdef7bdef7bdfL);
+ uint64_t x345, uint64_t x346 = mulx_u64(x342, 0xffffffffffffffe1L);
+ uint64_t x348, uint64_t x349 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x351, uint64_t x352 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x354, uint64_t x355 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x357, uint64_t x358 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x360, uint64_t x361 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x363, uint64_t x364 = mulx_u64(x342, 0x1ffff);
+ uint64_t x366, uint8_t x367 = addcarryx_u64(0x0, x346, x348);
+ uint64_t x369, uint8_t x370 = addcarryx_u64(x367, x349, x351);
+ uint64_t x372, uint8_t x373 = addcarryx_u64(x370, x352, x354);
+ uint64_t x375, uint8_t x376 = addcarryx_u64(x373, x355, x357);
+ uint64_t x378, uint8_t x379 = addcarryx_u64(x376, x358, x360);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x361, x363);
+ uint64_t x384, uint8_t _ = addcarryx_u64(0x0, x382, x364);
+ uint64_t _, uint8_t x388 = addcarryx_u64(0x0, x318, x345);
+ uint64_t x390, uint8_t x391 = addcarryx_u64(x388, x321, x366);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(x391, x324, x369);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x327, x372);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x330, x375);
+ uint64_t x402, uint8_t x403 = addcarryx_u64(x400, x333, x378);
+ uint64_t x405, uint8_t x406 = addcarryx_u64(x403, x336, x381);
+ uint64_t x408, uint8_t x409 = addcarryx_u64(x406, x339, x384);
+ uint8_t x410 = (x409 + x340);
+ uint64_t x412, uint64_t x413 = mulx_u64(x11, x17);
+ uint64_t x415, uint64_t x416 = mulx_u64(x11, x19);
+ uint64_t x418, uint64_t x419 = mulx_u64(x11, x21);
+ uint64_t x421, uint64_t x422 = mulx_u64(x11, x23);
+ uint64_t x424, uint64_t x425 = mulx_u64(x11, x25);
+ uint64_t x427, uint64_t x428 = mulx_u64(x11, x27);
+ uint64_t x430, uint64_t x431 = mulx_u64(x11, x26);
+ uint64_t x433, uint8_t x434 = addcarryx_u64(0x0, x413, x415);
+ uint64_t x436, uint8_t x437 = addcarryx_u64(x434, x416, x418);
+ uint64_t x439, uint8_t x440 = addcarryx_u64(x437, x419, x421);
+ uint64_t x442, uint8_t x443 = addcarryx_u64(x440, x422, x424);
+ uint64_t x445, uint8_t x446 = addcarryx_u64(x443, x425, x427);
+ uint64_t x448, uint8_t x449 = addcarryx_u64(x446, x428, x430);
+ uint64_t x451, uint8_t _ = addcarryx_u64(0x0, x449, x431);
+ uint64_t x454, uint8_t x455 = addcarryx_u64(0x0, x390, x412);
+ uint64_t x457, uint8_t x458 = addcarryx_u64(x455, x393, x433);
+ uint64_t x460, uint8_t x461 = addcarryx_u64(x458, x396, x436);
+ uint64_t x463, uint8_t x464 = addcarryx_u64(x461, x399, x439);
+ uint64_t x466, uint8_t x467 = addcarryx_u64(x464, x402, x442);
+ uint64_t x469, uint8_t x470 = addcarryx_u64(x467, x405, x445);
+ uint64_t x472, uint8_t x473 = addcarryx_u64(x470, x408, x448);
+ uint64_t x475, uint8_t x476 = addcarryx_u64(x473, x410, x451);
+ uint64_t x478, uint64_t _ = mulx_u64(x454, 0xef7bdef7bdef7bdfL);
+ uint64_t x481, uint64_t x482 = mulx_u64(x478, 0xffffffffffffffe1L);
+ uint64_t x484, uint64_t x485 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x487, uint64_t x488 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x490, uint64_t x491 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x493, uint64_t x494 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x496, uint64_t x497 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x499, uint64_t x500 = mulx_u64(x478, 0x1ffff);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(0x0, x482, x484);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x485, x487);
+ uint64_t x508, uint8_t x509 = addcarryx_u64(x506, x488, x490);
+ uint64_t x511, uint8_t x512 = addcarryx_u64(x509, x491, x493);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x494, x496);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x497, x499);
+ uint64_t x520, uint8_t _ = addcarryx_u64(0x0, x518, x500);
+ uint64_t _, uint8_t x524 = addcarryx_u64(0x0, x454, x481);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x457, x502);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x460, x505);
+ uint64_t x532, uint8_t x533 = addcarryx_u64(x530, x463, x508);
+ uint64_t x535, uint8_t x536 = addcarryx_u64(x533, x466, x511);
+ uint64_t x538, uint8_t x539 = addcarryx_u64(x536, x469, x514);
+ uint64_t x541, uint8_t x542 = addcarryx_u64(x539, x472, x517);
+ uint64_t x544, uint8_t x545 = addcarryx_u64(x542, x475, x520);
+ uint8_t x546 = (x545 + x476);
+ uint64_t x548, uint64_t x549 = mulx_u64(x13, x17);
+ uint64_t x551, uint64_t x552 = mulx_u64(x13, x19);
+ uint64_t x554, uint64_t x555 = mulx_u64(x13, x21);
+ uint64_t x557, uint64_t x558 = mulx_u64(x13, x23);
+ uint64_t x560, uint64_t x561 = mulx_u64(x13, x25);
+ uint64_t x563, uint64_t x564 = mulx_u64(x13, x27);
+ uint64_t x566, uint64_t x567 = mulx_u64(x13, x26);
+ uint64_t x569, uint8_t x570 = addcarryx_u64(0x0, x549, x551);
+ uint64_t x572, uint8_t x573 = addcarryx_u64(x570, x552, x554);
+ uint64_t x575, uint8_t x576 = addcarryx_u64(x573, x555, x557);
+ uint64_t x578, uint8_t x579 = addcarryx_u64(x576, x558, x560);
+ uint64_t x581, uint8_t x582 = addcarryx_u64(x579, x561, x563);
+ uint64_t x584, uint8_t x585 = addcarryx_u64(x582, x564, x566);
+ uint64_t x587, uint8_t _ = addcarryx_u64(0x0, x585, x567);
+ uint64_t x590, uint8_t x591 = addcarryx_u64(0x0, x526, x548);
+ uint64_t x593, uint8_t x594 = addcarryx_u64(x591, x529, x569);
+ uint64_t x596, uint8_t x597 = addcarryx_u64(x594, x532, x572);
+ uint64_t x599, uint8_t x600 = addcarryx_u64(x597, x535, x575);
+ uint64_t x602, uint8_t x603 = addcarryx_u64(x600, x538, x578);
+ uint64_t x605, uint8_t x606 = addcarryx_u64(x603, x541, x581);
+ uint64_t x608, uint8_t x609 = addcarryx_u64(x606, x544, x584);
+ uint64_t x611, uint8_t x612 = addcarryx_u64(x609, x546, x587);
+ uint64_t x614, uint64_t _ = mulx_u64(x590, 0xef7bdef7bdef7bdfL);
+ uint64_t x617, uint64_t x618 = mulx_u64(x614, 0xffffffffffffffe1L);
+ uint64_t x620, uint64_t x621 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x623, uint64_t x624 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x626, uint64_t x627 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x629, uint64_t x630 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x632, uint64_t x633 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x635, uint64_t x636 = mulx_u64(x614, 0x1ffff);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(0x0, x618, x620);
+ uint64_t x641, uint8_t x642 = addcarryx_u64(x639, x621, x623);
+ uint64_t x644, uint8_t x645 = addcarryx_u64(x642, x624, x626);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x627, x629);
+ uint64_t x650, uint8_t x651 = addcarryx_u64(x648, x630, x632);
+ uint64_t x653, uint8_t x654 = addcarryx_u64(x651, x633, x635);
+ uint64_t x656, uint8_t _ = addcarryx_u64(0x0, x654, x636);
+ uint64_t _, uint8_t x660 = addcarryx_u64(0x0, x590, x617);
+ uint64_t x662, uint8_t x663 = addcarryx_u64(x660, x593, x638);
+ uint64_t x665, uint8_t x666 = addcarryx_u64(x663, x596, x641);
+ uint64_t x668, uint8_t x669 = addcarryx_u64(x666, x599, x644);
+ uint64_t x671, uint8_t x672 = addcarryx_u64(x669, x602, x647);
+ uint64_t x674, uint8_t x675 = addcarryx_u64(x672, x605, x650);
+ uint64_t x677, uint8_t x678 = addcarryx_u64(x675, x608, x653);
+ uint64_t x680, uint8_t x681 = addcarryx_u64(x678, x611, x656);
+ uint8_t x682 = (x681 + x612);
+ uint64_t x684, uint64_t x685 = mulx_u64(x15, x17);
+ uint64_t x687, uint64_t x688 = mulx_u64(x15, x19);
+ uint64_t x690, uint64_t x691 = mulx_u64(x15, x21);
+ uint64_t x693, uint64_t x694 = mulx_u64(x15, x23);
+ uint64_t x696, uint64_t x697 = mulx_u64(x15, x25);
+ uint64_t x699, uint64_t x700 = mulx_u64(x15, x27);
+ uint64_t x702, uint64_t x703 = mulx_u64(x15, x26);
+ uint64_t x705, uint8_t x706 = addcarryx_u64(0x0, x685, x687);
+ uint64_t x708, uint8_t x709 = addcarryx_u64(x706, x688, x690);
+ uint64_t x711, uint8_t x712 = addcarryx_u64(x709, x691, x693);
+ uint64_t x714, uint8_t x715 = addcarryx_u64(x712, x694, x696);
+ uint64_t x717, uint8_t x718 = addcarryx_u64(x715, x697, x699);
+ uint64_t x720, uint8_t x721 = addcarryx_u64(x718, x700, x702);
+ uint64_t x723, uint8_t _ = addcarryx_u64(0x0, x721, x703);
+ uint64_t x726, uint8_t x727 = addcarryx_u64(0x0, x662, x684);
+ uint64_t x729, uint8_t x730 = addcarryx_u64(x727, x665, x705);
+ uint64_t x732, uint8_t x733 = addcarryx_u64(x730, x668, x708);
+ uint64_t x735, uint8_t x736 = addcarryx_u64(x733, x671, x711);
+ uint64_t x738, uint8_t x739 = addcarryx_u64(x736, x674, x714);
+ uint64_t x741, uint8_t x742 = addcarryx_u64(x739, x677, x717);
+ uint64_t x744, uint8_t x745 = addcarryx_u64(x742, x680, x720);
+ uint64_t x747, uint8_t x748 = addcarryx_u64(x745, x682, x723);
+ uint64_t x750, uint64_t _ = mulx_u64(x726, 0xef7bdef7bdef7bdfL);
+ uint64_t x753, uint64_t x754 = mulx_u64(x750, 0xffffffffffffffe1L);
+ uint64_t x756, uint64_t x757 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x759, uint64_t x760 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x762, uint64_t x763 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x765, uint64_t x766 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x768, uint64_t x769 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x771, uint64_t x772 = mulx_u64(x750, 0x1ffff);
+ uint64_t x774, uint8_t x775 = addcarryx_u64(0x0, x754, x756);
+ uint64_t x777, uint8_t x778 = addcarryx_u64(x775, x757, x759);
+ uint64_t x780, uint8_t x781 = addcarryx_u64(x778, x760, x762);
+ uint64_t x783, uint8_t x784 = addcarryx_u64(x781, x763, x765);
+ uint64_t x786, uint8_t x787 = addcarryx_u64(x784, x766, x768);
+ uint64_t x789, uint8_t x790 = addcarryx_u64(x787, x769, x771);
+ uint64_t x792, uint8_t _ = addcarryx_u64(0x0, x790, x772);
+ uint64_t _, uint8_t x796 = addcarryx_u64(0x0, x726, x753);
+ uint64_t x798, uint8_t x799 = addcarryx_u64(x796, x729, x774);
+ uint64_t x801, uint8_t x802 = addcarryx_u64(x799, x732, x777);
+ uint64_t x804, uint8_t x805 = addcarryx_u64(x802, x735, x780);
+ uint64_t x807, uint8_t x808 = addcarryx_u64(x805, x738, x783);
+ uint64_t x810, uint8_t x811 = addcarryx_u64(x808, x741, x786);
+ uint64_t x813, uint8_t x814 = addcarryx_u64(x811, x744, x789);
+ uint64_t x816, uint8_t x817 = addcarryx_u64(x814, x747, x792);
+ uint8_t x818 = (x817 + x748);
+ uint64_t x820, uint64_t x821 = mulx_u64(x14, x17);
+ uint64_t x823, uint64_t x824 = mulx_u64(x14, x19);
+ uint64_t x826, uint64_t x827 = mulx_u64(x14, x21);
+ uint64_t x829, uint64_t x830 = mulx_u64(x14, x23);
+ uint64_t x832, uint64_t x833 = mulx_u64(x14, x25);
+ uint64_t x835, uint64_t x836 = mulx_u64(x14, x27);
+ uint64_t x838, uint64_t x839 = mulx_u64(x14, x26);
+ uint64_t x841, uint8_t x842 = addcarryx_u64(0x0, x821, x823);
+ uint64_t x844, uint8_t x845 = addcarryx_u64(x842, x824, x826);
+ uint64_t x847, uint8_t x848 = addcarryx_u64(x845, x827, x829);
+ uint64_t x850, uint8_t x851 = addcarryx_u64(x848, x830, x832);
+ uint64_t x853, uint8_t x854 = addcarryx_u64(x851, x833, x835);
+ uint64_t x856, uint8_t x857 = addcarryx_u64(x854, x836, x838);
+ uint64_t x859, uint8_t _ = addcarryx_u64(0x0, x857, x839);
+ uint64_t x862, uint8_t x863 = addcarryx_u64(0x0, x798, x820);
+ uint64_t x865, uint8_t x866 = addcarryx_u64(x863, x801, x841);
+ uint64_t x868, uint8_t x869 = addcarryx_u64(x866, x804, x844);
+ uint64_t x871, uint8_t x872 = addcarryx_u64(x869, x807, x847);
+ uint64_t x874, uint8_t x875 = addcarryx_u64(x872, x810, x850);
+ uint64_t x877, uint8_t x878 = addcarryx_u64(x875, x813, x853);
+ uint64_t x880, uint8_t x881 = addcarryx_u64(x878, x816, x856);
+ uint64_t x883, uint8_t x884 = addcarryx_u64(x881, x818, x859);
+ uint64_t x886, uint64_t _ = mulx_u64(x862, 0xef7bdef7bdef7bdfL);
+ uint64_t x889, uint64_t x890 = mulx_u64(x886, 0xffffffffffffffe1L);
+ uint64_t x892, uint64_t x893 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x895, uint64_t x896 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x898, uint64_t x899 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x901, uint64_t x902 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x904, uint64_t x905 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x907, uint64_t x908 = mulx_u64(x886, 0x1ffff);
+ uint64_t x910, uint8_t x911 = addcarryx_u64(0x0, x890, x892);
+ uint64_t x913, uint8_t x914 = addcarryx_u64(x911, x893, x895);
+ uint64_t x916, uint8_t x917 = addcarryx_u64(x914, x896, x898);
+ uint64_t x919, uint8_t x920 = addcarryx_u64(x917, x899, x901);
+ uint64_t x922, uint8_t x923 = addcarryx_u64(x920, x902, x904);
+ uint64_t x925, uint8_t x926 = addcarryx_u64(x923, x905, x907);
+ uint64_t x928, uint8_t _ = addcarryx_u64(0x0, x926, x908);
+ uint64_t _, uint8_t x932 = addcarryx_u64(0x0, x862, x889);
+ uint64_t x934, uint8_t x935 = addcarryx_u64(x932, x865, x910);
+ uint64_t x937, uint8_t x938 = addcarryx_u64(x935, x868, x913);
+ uint64_t x940, uint8_t x941 = addcarryx_u64(x938, x871, x916);
+ uint64_t x943, uint8_t x944 = addcarryx_u64(x941, x874, x919);
+ uint64_t x946, uint8_t x947 = addcarryx_u64(x944, x877, x922);
+ uint64_t x949, uint8_t x950 = addcarryx_u64(x947, x880, x925);
+ uint64_t x952, uint8_t x953 = addcarryx_u64(x950, x883, x928);
+ uint8_t x954 = (x953 + x884);
+ uint64_t x956, uint8_t x957 = subborrow_u64(0x0, x934, 0xffffffffffffffe1L);
+ uint64_t x959, uint8_t x960 = subborrow_u64(x957, x937, 0xffffffffffffffffL);
+ uint64_t x962, uint8_t x963 = subborrow_u64(x960, x940, 0xffffffffffffffffL);
+ uint64_t x965, uint8_t x966 = subborrow_u64(x963, x943, 0xffffffffffffffffL);
+ uint64_t x968, uint8_t x969 = subborrow_u64(x966, x946, 0xffffffffffffffffL);
+ uint64_t x971, uint8_t x972 = subborrow_u64(x969, x949, 0xffffffffffffffffL);
+ uint64_t x974, uint8_t x975 = subborrow_u64(x972, x952, 0x1ffff);
+ uint64_t _, uint8_t x978 = subborrow_u64(x975, x954, 0x0);
+ uint64_t x979 = cmovznz(x978, x974, x952);
+ uint64_t x980 = cmovznz(x978, x971, x949);
+ uint64_t x981 = cmovznz(x978, x968, x946);
+ uint64_t x982 = cmovznz(x978, x965, x943);
+ uint64_t x983 = cmovznz(x978, x962, x940);
+ uint64_t x984 = cmovznz(x978, x959, x937);
+ uint64_t x985 = cmovznz(x978, x956, x934);
+ return (x979, x980, x981, x982, x983, x984, x985))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e401m31/feoppDisplay.log b/src/Specific/montgomery64_2e401m31/feoppDisplay.log
new file mode 100644
index 000000000..4f2dceeb6
--- /dev/null
+++ b/src/Specific/montgomery64_2e401m31/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x14, uint8_t x15 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x4);
+ uint64_t x20, uint8_t x21 = subborrow_u64(x18, 0x0, x6);
+ uint64_t x23, uint8_t x24 = subborrow_u64(x21, 0x0, x8);
+ uint64_t x26, uint8_t x27 = subborrow_u64(x24, 0x0, x10);
+ uint64_t x29, uint8_t x30 = subborrow_u64(x27, 0x0, x12);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, 0x0, x11);
+ uint64_t x34 = (uint64_t)cmovznz(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & 0xffffffffffffffe1L);
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x14, x35);
+ uint64_t x39 = (x34 & 0xffffffffffffffffL);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x38, x17, x39);
+ uint64_t x43 = (x34 & 0xffffffffffffffffL);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x42, x20, x43);
+ uint64_t x47 = (x34 & 0xffffffffffffffffL);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x46, x23, x47);
+ uint64_t x51 = (x34 & 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x50, x26, x51);
+ uint64_t x55 = (x34 & 0xffffffffffffffffL);
+ uint64_t x57, uint8_t x58 = addcarryx_u64(x54, x29, x55);
+ uint64_t x59 = (x34 & 0x1ffff);
+ uint64_t x61, uint8_t _ = addcarryx_u64(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e401m31/fesubDisplay.log b/src/Specific/montgomery64_2e401m31/fesubDisplay.log
new file mode 100644
index 000000000..570647ac0
--- /dev/null
+++ b/src/Specific/montgomery64_2e401m31/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = subborrow_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = subborrow_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = subborrow_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = subborrow_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = subborrow_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = subborrow_u64(x45, x14, x26);
+ uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffffffffffe1L);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(0x0, x29, x50);
+ uint64_t x54 = (x49 & 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x53, x32, x54);
+ uint64_t x58 = (x49 & 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = addcarryx_u64(x57, x35, x58);
+ uint64_t x62 = (x49 & 0xffffffffffffffffL);
+ uint64_t x64, uint8_t x65 = addcarryx_u64(x61, x38, x62);
+ uint64_t x66 = (x49 & 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = addcarryx_u64(x65, x41, x66);
+ uint64_t x70 = (x49 & 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = addcarryx_u64(x69, x44, x70);
+ uint64_t x74 = (x49 & 0x1ffff);
+ uint64_t x76, uint8_t _ = addcarryx_u64(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e413m21/feaddDisplay.log b/src/Specific/montgomery64_2e413m21/feaddDisplay.log
new file mode 100644
index 000000000..85be5f860
--- /dev/null
+++ b/src/Specific/montgomery64_2e413m21/feaddDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = addcarryx_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = addcarryx_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = addcarryx_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = addcarryx_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = addcarryx_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = addcarryx_u64(x45, x14, x26);
+ uint64_t x50, uint8_t x51 = subborrow_u64(0x0, x29, 0xffffffffffffffebL);
+ uint64_t x53, uint8_t x54 = subborrow_u64(x51, x32, 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = subborrow_u64(x54, x35, 0xffffffffffffffffL);
+ uint64_t x59, uint8_t x60 = subborrow_u64(x57, x38, 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = subborrow_u64(x60, x41, 0xffffffffffffffffL);
+ uint64_t x65, uint8_t x66 = subborrow_u64(x63, x44, 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = subborrow_u64(x66, x47, 0x1fffffff);
+ uint64_t _, uint8_t x72 = subborrow_u64(x69, x48, 0x0);
+ uint64_t x73 = cmovznz(x72, x68, x47);
+ uint64_t x74 = cmovznz(x72, x65, x44);
+ uint64_t x75 = cmovznz(x72, x62, x41);
+ uint64_t x76 = cmovznz(x72, x59, x38);
+ uint64_t x77 = cmovznz(x72, x56, x35);
+ uint64_t x78 = cmovznz(x72, x53, x32);
+ uint64_t x79 = cmovznz(x72, x50, x29);
+ return (x73, x74, x75, x76, x77, x78, x79))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e413m21/feoppDisplay.log b/src/Specific/montgomery64_2e413m21/feoppDisplay.log
new file mode 100644
index 000000000..09dc52a59
--- /dev/null
+++ b/src/Specific/montgomery64_2e413m21/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x14, uint8_t x15 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x4);
+ uint64_t x20, uint8_t x21 = subborrow_u64(x18, 0x0, x6);
+ uint64_t x23, uint8_t x24 = subborrow_u64(x21, 0x0, x8);
+ uint64_t x26, uint8_t x27 = subborrow_u64(x24, 0x0, x10);
+ uint64_t x29, uint8_t x30 = subborrow_u64(x27, 0x0, x12);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, 0x0, x11);
+ uint64_t x34 = (uint64_t)cmovznz(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & 0xffffffffffffffebL);
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x14, x35);
+ uint64_t x39 = (x34 & 0xffffffffffffffffL);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x38, x17, x39);
+ uint64_t x43 = (x34 & 0xffffffffffffffffL);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x42, x20, x43);
+ uint64_t x47 = (x34 & 0xffffffffffffffffL);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x46, x23, x47);
+ uint64_t x51 = (x34 & 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x50, x26, x51);
+ uint64_t x55 = (x34 & 0xffffffffffffffffL);
+ uint64_t x57, uint8_t x58 = addcarryx_u64(x54, x29, x55);
+ uint64_t x59 = (x34 & 0x1fffffff);
+ uint64_t x61, uint8_t _ = addcarryx_u64(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e413m21/fesubDisplay.log b/src/Specific/montgomery64_2e413m21/fesubDisplay.log
new file mode 100644
index 000000000..c4f0083b3
--- /dev/null
+++ b/src/Specific/montgomery64_2e413m21/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = subborrow_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = subborrow_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = subborrow_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = subborrow_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = subborrow_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = subborrow_u64(x45, x14, x26);
+ uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffffffffffebL);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(0x0, x29, x50);
+ uint64_t x54 = (x49 & 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x53, x32, x54);
+ uint64_t x58 = (x49 & 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = addcarryx_u64(x57, x35, x58);
+ uint64_t x62 = (x49 & 0xffffffffffffffffL);
+ uint64_t x64, uint8_t x65 = addcarryx_u64(x61, x38, x62);
+ uint64_t x66 = (x49 & 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = addcarryx_u64(x65, x41, x66);
+ uint64_t x70 = (x49 & 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = addcarryx_u64(x69, x44, x70);
+ uint64_t x74 = (x49 & 0x1fffffff);
+ uint64_t x76, uint8_t _ = addcarryx_u64(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e414m17/feaddDisplay.log b/src/Specific/montgomery64_2e414m17/feaddDisplay.log
new file mode 100644
index 000000000..693e4644b
--- /dev/null
+++ b/src/Specific/montgomery64_2e414m17/feaddDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = addcarryx_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = addcarryx_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = addcarryx_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = addcarryx_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = addcarryx_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = addcarryx_u64(x45, x14, x26);
+ uint64_t x50, uint8_t x51 = subborrow_u64(0x0, x29, 0xffffffffffffffefL);
+ uint64_t x53, uint8_t x54 = subborrow_u64(x51, x32, 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = subborrow_u64(x54, x35, 0xffffffffffffffffL);
+ uint64_t x59, uint8_t x60 = subborrow_u64(x57, x38, 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = subborrow_u64(x60, x41, 0xffffffffffffffffL);
+ uint64_t x65, uint8_t x66 = subborrow_u64(x63, x44, 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = subborrow_u64(x66, x47, 0x3fffffff);
+ uint64_t _, uint8_t x72 = subborrow_u64(x69, x48, 0x0);
+ uint64_t x73 = cmovznz(x72, x68, x47);
+ uint64_t x74 = cmovznz(x72, x65, x44);
+ uint64_t x75 = cmovznz(x72, x62, x41);
+ uint64_t x76 = cmovznz(x72, x59, x38);
+ uint64_t x77 = cmovznz(x72, x56, x35);
+ uint64_t x78 = cmovznz(x72, x53, x32);
+ uint64_t x79 = cmovznz(x72, x50, x29);
+ return (x73, x74, x75, x76, x77, x78, x79))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e414m17/femulDisplay.log b/src/Specific/montgomery64_2e414m17/femulDisplay.log
new file mode 100644
index 000000000..a2258ff07
--- /dev/null
+++ b/src/Specific/montgomery64_2e414m17/femulDisplay.log
@@ -0,0 +1,335 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint64_t x30 = mulx_u64(x5, x17);
+ uint64_t x32, uint64_t x33 = mulx_u64(x5, x19);
+ uint64_t x35, uint64_t x36 = mulx_u64(x5, x21);
+ uint64_t x38, uint64_t x39 = mulx_u64(x5, x23);
+ uint64_t x41, uint64_t x42 = mulx_u64(x5, x25);
+ uint64_t x44, uint64_t x45 = mulx_u64(x5, x27);
+ uint64_t x47, uint64_t x48 = mulx_u64(x5, x26);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(0x0, x30, x32);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x51, x33, x35);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x54, x36, x38);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(x57, x39, x41);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x60, x42, x44);
+ uint64_t x65, uint8_t x66 = addcarryx_u64(x63, x45, x47);
+ uint64_t x68, uint8_t _ = addcarryx_u64(0x0, x66, x48);
+ uint64_t x71, uint64_t _ = mulx_u64(x29, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x74, uint64_t x75 = mulx_u64(x71, 0xffffffffffffffefL);
+ uint64_t x77, uint64_t x78 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x80, uint64_t x81 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x83, uint64_t x84 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x86, uint64_t x87 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x89, uint64_t x90 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x92, uint64_t x93 = mulx_u64(x71, 0x3fffffff);
+ uint64_t x95, uint8_t x96 = addcarryx_u64(0x0, x75, x77);
+ uint64_t x98, uint8_t x99 = addcarryx_u64(x96, x78, x80);
+ uint64_t x101, uint8_t x102 = addcarryx_u64(x99, x81, x83);
+ uint64_t x104, uint8_t x105 = addcarryx_u64(x102, x84, x86);
+ uint64_t x107, uint8_t x108 = addcarryx_u64(x105, x87, x89);
+ uint64_t x110, uint8_t x111 = addcarryx_u64(x108, x90, x92);
+ uint64_t x113, uint8_t _ = addcarryx_u64(0x0, x111, x93);
+ uint64_t _, uint8_t x117 = addcarryx_u64(0x0, x29, x74);
+ uint64_t x119, uint8_t x120 = addcarryx_u64(x117, x50, x95);
+ uint64_t x122, uint8_t x123 = addcarryx_u64(x120, x53, x98);
+ uint64_t x125, uint8_t x126 = addcarryx_u64(x123, x56, x101);
+ uint64_t x128, uint8_t x129 = addcarryx_u64(x126, x59, x104);
+ uint64_t x131, uint8_t x132 = addcarryx_u64(x129, x62, x107);
+ uint64_t x134, uint8_t x135 = addcarryx_u64(x132, x65, x110);
+ uint64_t x137, uint8_t x138 = addcarryx_u64(x135, x68, x113);
+ uint64_t x140, uint64_t x141 = mulx_u64(x7, x17);
+ uint64_t x143, uint64_t x144 = mulx_u64(x7, x19);
+ uint64_t x146, uint64_t x147 = mulx_u64(x7, x21);
+ uint64_t x149, uint64_t x150 = mulx_u64(x7, x23);
+ uint64_t x152, uint64_t x153 = mulx_u64(x7, x25);
+ uint64_t x155, uint64_t x156 = mulx_u64(x7, x27);
+ uint64_t x158, uint64_t x159 = mulx_u64(x7, x26);
+ uint64_t x161, uint8_t x162 = addcarryx_u64(0x0, x141, x143);
+ uint64_t x164, uint8_t x165 = addcarryx_u64(x162, x144, x146);
+ uint64_t x167, uint8_t x168 = addcarryx_u64(x165, x147, x149);
+ uint64_t x170, uint8_t x171 = addcarryx_u64(x168, x150, x152);
+ uint64_t x173, uint8_t x174 = addcarryx_u64(x171, x153, x155);
+ uint64_t x176, uint8_t x177 = addcarryx_u64(x174, x156, x158);
+ uint64_t x179, uint8_t _ = addcarryx_u64(0x0, x177, x159);
+ uint64_t x182, uint8_t x183 = addcarryx_u64(0x0, x119, x140);
+ uint64_t x185, uint8_t x186 = addcarryx_u64(x183, x122, x161);
+ uint64_t x188, uint8_t x189 = addcarryx_u64(x186, x125, x164);
+ uint64_t x191, uint8_t x192 = addcarryx_u64(x189, x128, x167);
+ uint64_t x194, uint8_t x195 = addcarryx_u64(x192, x131, x170);
+ uint64_t x197, uint8_t x198 = addcarryx_u64(x195, x134, x173);
+ uint64_t x200, uint8_t x201 = addcarryx_u64(x198, x137, x176);
+ uint64_t x203, uint8_t x204 = addcarryx_u64(x201, x138, x179);
+ uint64_t x206, uint64_t _ = mulx_u64(x182, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x209, uint64_t x210 = mulx_u64(x206, 0xffffffffffffffefL);
+ uint64_t x212, uint64_t x213 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x215, uint64_t x216 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x218, uint64_t x219 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x221, uint64_t x222 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x224, uint64_t x225 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x227, uint64_t x228 = mulx_u64(x206, 0x3fffffff);
+ uint64_t x230, uint8_t x231 = addcarryx_u64(0x0, x210, x212);
+ uint64_t x233, uint8_t x234 = addcarryx_u64(x231, x213, x215);
+ uint64_t x236, uint8_t x237 = addcarryx_u64(x234, x216, x218);
+ uint64_t x239, uint8_t x240 = addcarryx_u64(x237, x219, x221);
+ uint64_t x242, uint8_t x243 = addcarryx_u64(x240, x222, x224);
+ uint64_t x245, uint8_t x246 = addcarryx_u64(x243, x225, x227);
+ uint64_t x248, uint8_t _ = addcarryx_u64(0x0, x246, x228);
+ uint64_t _, uint8_t x252 = addcarryx_u64(0x0, x182, x209);
+ uint64_t x254, uint8_t x255 = addcarryx_u64(x252, x185, x230);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(x255, x188, x233);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x191, x236);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x194, x239);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x197, x242);
+ uint64_t x269, uint8_t x270 = addcarryx_u64(x267, x200, x245);
+ uint64_t x272, uint8_t x273 = addcarryx_u64(x270, x203, x248);
+ uint8_t x274 = (x273 + x204);
+ uint64_t x276, uint64_t x277 = mulx_u64(x9, x17);
+ uint64_t x279, uint64_t x280 = mulx_u64(x9, x19);
+ uint64_t x282, uint64_t x283 = mulx_u64(x9, x21);
+ uint64_t x285, uint64_t x286 = mulx_u64(x9, x23);
+ uint64_t x288, uint64_t x289 = mulx_u64(x9, x25);
+ uint64_t x291, uint64_t x292 = mulx_u64(x9, x27);
+ uint64_t x294, uint64_t x295 = mulx_u64(x9, x26);
+ uint64_t x297, uint8_t x298 = addcarryx_u64(0x0, x277, x279);
+ uint64_t x300, uint8_t x301 = addcarryx_u64(x298, x280, x282);
+ uint64_t x303, uint8_t x304 = addcarryx_u64(x301, x283, x285);
+ uint64_t x306, uint8_t x307 = addcarryx_u64(x304, x286, x288);
+ uint64_t x309, uint8_t x310 = addcarryx_u64(x307, x289, x291);
+ uint64_t x312, uint8_t x313 = addcarryx_u64(x310, x292, x294);
+ uint64_t x315, uint8_t _ = addcarryx_u64(0x0, x313, x295);
+ uint64_t x318, uint8_t x319 = addcarryx_u64(0x0, x254, x276);
+ uint64_t x321, uint8_t x322 = addcarryx_u64(x319, x257, x297);
+ uint64_t x324, uint8_t x325 = addcarryx_u64(x322, x260, x300);
+ uint64_t x327, uint8_t x328 = addcarryx_u64(x325, x263, x303);
+ uint64_t x330, uint8_t x331 = addcarryx_u64(x328, x266, x306);
+ uint64_t x333, uint8_t x334 = addcarryx_u64(x331, x269, x309);
+ uint64_t x336, uint8_t x337 = addcarryx_u64(x334, x272, x312);
+ uint64_t x339, uint8_t x340 = addcarryx_u64(x337, x274, x315);
+ uint64_t x342, uint64_t _ = mulx_u64(x318, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x345, uint64_t x346 = mulx_u64(x342, 0xffffffffffffffefL);
+ uint64_t x348, uint64_t x349 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x351, uint64_t x352 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x354, uint64_t x355 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x357, uint64_t x358 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x360, uint64_t x361 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x363, uint64_t x364 = mulx_u64(x342, 0x3fffffff);
+ uint64_t x366, uint8_t x367 = addcarryx_u64(0x0, x346, x348);
+ uint64_t x369, uint8_t x370 = addcarryx_u64(x367, x349, x351);
+ uint64_t x372, uint8_t x373 = addcarryx_u64(x370, x352, x354);
+ uint64_t x375, uint8_t x376 = addcarryx_u64(x373, x355, x357);
+ uint64_t x378, uint8_t x379 = addcarryx_u64(x376, x358, x360);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x361, x363);
+ uint64_t x384, uint8_t _ = addcarryx_u64(0x0, x382, x364);
+ uint64_t _, uint8_t x388 = addcarryx_u64(0x0, x318, x345);
+ uint64_t x390, uint8_t x391 = addcarryx_u64(x388, x321, x366);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(x391, x324, x369);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x327, x372);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x330, x375);
+ uint64_t x402, uint8_t x403 = addcarryx_u64(x400, x333, x378);
+ uint64_t x405, uint8_t x406 = addcarryx_u64(x403, x336, x381);
+ uint64_t x408, uint8_t x409 = addcarryx_u64(x406, x339, x384);
+ uint8_t x410 = (x409 + x340);
+ uint64_t x412, uint64_t x413 = mulx_u64(x11, x17);
+ uint64_t x415, uint64_t x416 = mulx_u64(x11, x19);
+ uint64_t x418, uint64_t x419 = mulx_u64(x11, x21);
+ uint64_t x421, uint64_t x422 = mulx_u64(x11, x23);
+ uint64_t x424, uint64_t x425 = mulx_u64(x11, x25);
+ uint64_t x427, uint64_t x428 = mulx_u64(x11, x27);
+ uint64_t x430, uint64_t x431 = mulx_u64(x11, x26);
+ uint64_t x433, uint8_t x434 = addcarryx_u64(0x0, x413, x415);
+ uint64_t x436, uint8_t x437 = addcarryx_u64(x434, x416, x418);
+ uint64_t x439, uint8_t x440 = addcarryx_u64(x437, x419, x421);
+ uint64_t x442, uint8_t x443 = addcarryx_u64(x440, x422, x424);
+ uint64_t x445, uint8_t x446 = addcarryx_u64(x443, x425, x427);
+ uint64_t x448, uint8_t x449 = addcarryx_u64(x446, x428, x430);
+ uint64_t x451, uint8_t _ = addcarryx_u64(0x0, x449, x431);
+ uint64_t x454, uint8_t x455 = addcarryx_u64(0x0, x390, x412);
+ uint64_t x457, uint8_t x458 = addcarryx_u64(x455, x393, x433);
+ uint64_t x460, uint8_t x461 = addcarryx_u64(x458, x396, x436);
+ uint64_t x463, uint8_t x464 = addcarryx_u64(x461, x399, x439);
+ uint64_t x466, uint8_t x467 = addcarryx_u64(x464, x402, x442);
+ uint64_t x469, uint8_t x470 = addcarryx_u64(x467, x405, x445);
+ uint64_t x472, uint8_t x473 = addcarryx_u64(x470, x408, x448);
+ uint64_t x475, uint8_t x476 = addcarryx_u64(x473, x410, x451);
+ uint64_t x478, uint64_t _ = mulx_u64(x454, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x481, uint64_t x482 = mulx_u64(x478, 0xffffffffffffffefL);
+ uint64_t x484, uint64_t x485 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x487, uint64_t x488 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x490, uint64_t x491 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x493, uint64_t x494 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x496, uint64_t x497 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x499, uint64_t x500 = mulx_u64(x478, 0x3fffffff);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(0x0, x482, x484);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x485, x487);
+ uint64_t x508, uint8_t x509 = addcarryx_u64(x506, x488, x490);
+ uint64_t x511, uint8_t x512 = addcarryx_u64(x509, x491, x493);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x494, x496);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x497, x499);
+ uint64_t x520, uint8_t _ = addcarryx_u64(0x0, x518, x500);
+ uint64_t _, uint8_t x524 = addcarryx_u64(0x0, x454, x481);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x457, x502);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x460, x505);
+ uint64_t x532, uint8_t x533 = addcarryx_u64(x530, x463, x508);
+ uint64_t x535, uint8_t x536 = addcarryx_u64(x533, x466, x511);
+ uint64_t x538, uint8_t x539 = addcarryx_u64(x536, x469, x514);
+ uint64_t x541, uint8_t x542 = addcarryx_u64(x539, x472, x517);
+ uint64_t x544, uint8_t x545 = addcarryx_u64(x542, x475, x520);
+ uint8_t x546 = (x545 + x476);
+ uint64_t x548, uint64_t x549 = mulx_u64(x13, x17);
+ uint64_t x551, uint64_t x552 = mulx_u64(x13, x19);
+ uint64_t x554, uint64_t x555 = mulx_u64(x13, x21);
+ uint64_t x557, uint64_t x558 = mulx_u64(x13, x23);
+ uint64_t x560, uint64_t x561 = mulx_u64(x13, x25);
+ uint64_t x563, uint64_t x564 = mulx_u64(x13, x27);
+ uint64_t x566, uint64_t x567 = mulx_u64(x13, x26);
+ uint64_t x569, uint8_t x570 = addcarryx_u64(0x0, x549, x551);
+ uint64_t x572, uint8_t x573 = addcarryx_u64(x570, x552, x554);
+ uint64_t x575, uint8_t x576 = addcarryx_u64(x573, x555, x557);
+ uint64_t x578, uint8_t x579 = addcarryx_u64(x576, x558, x560);
+ uint64_t x581, uint8_t x582 = addcarryx_u64(x579, x561, x563);
+ uint64_t x584, uint8_t x585 = addcarryx_u64(x582, x564, x566);
+ uint64_t x587, uint8_t _ = addcarryx_u64(0x0, x585, x567);
+ uint64_t x590, uint8_t x591 = addcarryx_u64(0x0, x526, x548);
+ uint64_t x593, uint8_t x594 = addcarryx_u64(x591, x529, x569);
+ uint64_t x596, uint8_t x597 = addcarryx_u64(x594, x532, x572);
+ uint64_t x599, uint8_t x600 = addcarryx_u64(x597, x535, x575);
+ uint64_t x602, uint8_t x603 = addcarryx_u64(x600, x538, x578);
+ uint64_t x605, uint8_t x606 = addcarryx_u64(x603, x541, x581);
+ uint64_t x608, uint8_t x609 = addcarryx_u64(x606, x544, x584);
+ uint64_t x611, uint8_t x612 = addcarryx_u64(x609, x546, x587);
+ uint64_t x614, uint64_t _ = mulx_u64(x590, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x617, uint64_t x618 = mulx_u64(x614, 0xffffffffffffffefL);
+ uint64_t x620, uint64_t x621 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x623, uint64_t x624 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x626, uint64_t x627 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x629, uint64_t x630 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x632, uint64_t x633 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x635, uint64_t x636 = mulx_u64(x614, 0x3fffffff);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(0x0, x618, x620);
+ uint64_t x641, uint8_t x642 = addcarryx_u64(x639, x621, x623);
+ uint64_t x644, uint8_t x645 = addcarryx_u64(x642, x624, x626);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x627, x629);
+ uint64_t x650, uint8_t x651 = addcarryx_u64(x648, x630, x632);
+ uint64_t x653, uint8_t x654 = addcarryx_u64(x651, x633, x635);
+ uint64_t x656, uint8_t _ = addcarryx_u64(0x0, x654, x636);
+ uint64_t _, uint8_t x660 = addcarryx_u64(0x0, x590, x617);
+ uint64_t x662, uint8_t x663 = addcarryx_u64(x660, x593, x638);
+ uint64_t x665, uint8_t x666 = addcarryx_u64(x663, x596, x641);
+ uint64_t x668, uint8_t x669 = addcarryx_u64(x666, x599, x644);
+ uint64_t x671, uint8_t x672 = addcarryx_u64(x669, x602, x647);
+ uint64_t x674, uint8_t x675 = addcarryx_u64(x672, x605, x650);
+ uint64_t x677, uint8_t x678 = addcarryx_u64(x675, x608, x653);
+ uint64_t x680, uint8_t x681 = addcarryx_u64(x678, x611, x656);
+ uint8_t x682 = (x681 + x612);
+ uint64_t x684, uint64_t x685 = mulx_u64(x15, x17);
+ uint64_t x687, uint64_t x688 = mulx_u64(x15, x19);
+ uint64_t x690, uint64_t x691 = mulx_u64(x15, x21);
+ uint64_t x693, uint64_t x694 = mulx_u64(x15, x23);
+ uint64_t x696, uint64_t x697 = mulx_u64(x15, x25);
+ uint64_t x699, uint64_t x700 = mulx_u64(x15, x27);
+ uint64_t x702, uint64_t x703 = mulx_u64(x15, x26);
+ uint64_t x705, uint8_t x706 = addcarryx_u64(0x0, x685, x687);
+ uint64_t x708, uint8_t x709 = addcarryx_u64(x706, x688, x690);
+ uint64_t x711, uint8_t x712 = addcarryx_u64(x709, x691, x693);
+ uint64_t x714, uint8_t x715 = addcarryx_u64(x712, x694, x696);
+ uint64_t x717, uint8_t x718 = addcarryx_u64(x715, x697, x699);
+ uint64_t x720, uint8_t x721 = addcarryx_u64(x718, x700, x702);
+ uint64_t x723, uint8_t _ = addcarryx_u64(0x0, x721, x703);
+ uint64_t x726, uint8_t x727 = addcarryx_u64(0x0, x662, x684);
+ uint64_t x729, uint8_t x730 = addcarryx_u64(x727, x665, x705);
+ uint64_t x732, uint8_t x733 = addcarryx_u64(x730, x668, x708);
+ uint64_t x735, uint8_t x736 = addcarryx_u64(x733, x671, x711);
+ uint64_t x738, uint8_t x739 = addcarryx_u64(x736, x674, x714);
+ uint64_t x741, uint8_t x742 = addcarryx_u64(x739, x677, x717);
+ uint64_t x744, uint8_t x745 = addcarryx_u64(x742, x680, x720);
+ uint64_t x747, uint8_t x748 = addcarryx_u64(x745, x682, x723);
+ uint64_t x750, uint64_t _ = mulx_u64(x726, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x753, uint64_t x754 = mulx_u64(x750, 0xffffffffffffffefL);
+ uint64_t x756, uint64_t x757 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x759, uint64_t x760 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x762, uint64_t x763 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x765, uint64_t x766 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x768, uint64_t x769 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x771, uint64_t x772 = mulx_u64(x750, 0x3fffffff);
+ uint64_t x774, uint8_t x775 = addcarryx_u64(0x0, x754, x756);
+ uint64_t x777, uint8_t x778 = addcarryx_u64(x775, x757, x759);
+ uint64_t x780, uint8_t x781 = addcarryx_u64(x778, x760, x762);
+ uint64_t x783, uint8_t x784 = addcarryx_u64(x781, x763, x765);
+ uint64_t x786, uint8_t x787 = addcarryx_u64(x784, x766, x768);
+ uint64_t x789, uint8_t x790 = addcarryx_u64(x787, x769, x771);
+ uint64_t x792, uint8_t _ = addcarryx_u64(0x0, x790, x772);
+ uint64_t _, uint8_t x796 = addcarryx_u64(0x0, x726, x753);
+ uint64_t x798, uint8_t x799 = addcarryx_u64(x796, x729, x774);
+ uint64_t x801, uint8_t x802 = addcarryx_u64(x799, x732, x777);
+ uint64_t x804, uint8_t x805 = addcarryx_u64(x802, x735, x780);
+ uint64_t x807, uint8_t x808 = addcarryx_u64(x805, x738, x783);
+ uint64_t x810, uint8_t x811 = addcarryx_u64(x808, x741, x786);
+ uint64_t x813, uint8_t x814 = addcarryx_u64(x811, x744, x789);
+ uint64_t x816, uint8_t x817 = addcarryx_u64(x814, x747, x792);
+ uint8_t x818 = (x817 + x748);
+ uint64_t x820, uint64_t x821 = mulx_u64(x14, x17);
+ uint64_t x823, uint64_t x824 = mulx_u64(x14, x19);
+ uint64_t x826, uint64_t x827 = mulx_u64(x14, x21);
+ uint64_t x829, uint64_t x830 = mulx_u64(x14, x23);
+ uint64_t x832, uint64_t x833 = mulx_u64(x14, x25);
+ uint64_t x835, uint64_t x836 = mulx_u64(x14, x27);
+ uint64_t x838, uint64_t x839 = mulx_u64(x14, x26);
+ uint64_t x841, uint8_t x842 = addcarryx_u64(0x0, x821, x823);
+ uint64_t x844, uint8_t x845 = addcarryx_u64(x842, x824, x826);
+ uint64_t x847, uint8_t x848 = addcarryx_u64(x845, x827, x829);
+ uint64_t x850, uint8_t x851 = addcarryx_u64(x848, x830, x832);
+ uint64_t x853, uint8_t x854 = addcarryx_u64(x851, x833, x835);
+ uint64_t x856, uint8_t x857 = addcarryx_u64(x854, x836, x838);
+ uint64_t x859, uint8_t _ = addcarryx_u64(0x0, x857, x839);
+ uint64_t x862, uint8_t x863 = addcarryx_u64(0x0, x798, x820);
+ uint64_t x865, uint8_t x866 = addcarryx_u64(x863, x801, x841);
+ uint64_t x868, uint8_t x869 = addcarryx_u64(x866, x804, x844);
+ uint64_t x871, uint8_t x872 = addcarryx_u64(x869, x807, x847);
+ uint64_t x874, uint8_t x875 = addcarryx_u64(x872, x810, x850);
+ uint64_t x877, uint8_t x878 = addcarryx_u64(x875, x813, x853);
+ uint64_t x880, uint8_t x881 = addcarryx_u64(x878, x816, x856);
+ uint64_t x883, uint8_t x884 = addcarryx_u64(x881, x818, x859);
+ uint64_t x886, uint64_t _ = mulx_u64(x862, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x889, uint64_t x890 = mulx_u64(x886, 0xffffffffffffffefL);
+ uint64_t x892, uint64_t x893 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x895, uint64_t x896 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x898, uint64_t x899 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x901, uint64_t x902 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x904, uint64_t x905 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x907, uint64_t x908 = mulx_u64(x886, 0x3fffffff);
+ uint64_t x910, uint8_t x911 = addcarryx_u64(0x0, x890, x892);
+ uint64_t x913, uint8_t x914 = addcarryx_u64(x911, x893, x895);
+ uint64_t x916, uint8_t x917 = addcarryx_u64(x914, x896, x898);
+ uint64_t x919, uint8_t x920 = addcarryx_u64(x917, x899, x901);
+ uint64_t x922, uint8_t x923 = addcarryx_u64(x920, x902, x904);
+ uint64_t x925, uint8_t x926 = addcarryx_u64(x923, x905, x907);
+ uint64_t x928, uint8_t _ = addcarryx_u64(0x0, x926, x908);
+ uint64_t _, uint8_t x932 = addcarryx_u64(0x0, x862, x889);
+ uint64_t x934, uint8_t x935 = addcarryx_u64(x932, x865, x910);
+ uint64_t x937, uint8_t x938 = addcarryx_u64(x935, x868, x913);
+ uint64_t x940, uint8_t x941 = addcarryx_u64(x938, x871, x916);
+ uint64_t x943, uint8_t x944 = addcarryx_u64(x941, x874, x919);
+ uint64_t x946, uint8_t x947 = addcarryx_u64(x944, x877, x922);
+ uint64_t x949, uint8_t x950 = addcarryx_u64(x947, x880, x925);
+ uint64_t x952, uint8_t x953 = addcarryx_u64(x950, x883, x928);
+ uint8_t x954 = (x953 + x884);
+ uint64_t x956, uint8_t x957 = subborrow_u64(0x0, x934, 0xffffffffffffffefL);
+ uint64_t x959, uint8_t x960 = subborrow_u64(x957, x937, 0xffffffffffffffffL);
+ uint64_t x962, uint8_t x963 = subborrow_u64(x960, x940, 0xffffffffffffffffL);
+ uint64_t x965, uint8_t x966 = subborrow_u64(x963, x943, 0xffffffffffffffffL);
+ uint64_t x968, uint8_t x969 = subborrow_u64(x966, x946, 0xffffffffffffffffL);
+ uint64_t x971, uint8_t x972 = subborrow_u64(x969, x949, 0xffffffffffffffffL);
+ uint64_t x974, uint8_t x975 = subborrow_u64(x972, x952, 0x3fffffff);
+ uint64_t _, uint8_t x978 = subborrow_u64(x975, x954, 0x0);
+ uint64_t x979 = cmovznz(x978, x974, x952);
+ uint64_t x980 = cmovznz(x978, x971, x949);
+ uint64_t x981 = cmovznz(x978, x968, x946);
+ uint64_t x982 = cmovznz(x978, x965, x943);
+ uint64_t x983 = cmovznz(x978, x962, x940);
+ uint64_t x984 = cmovznz(x978, x959, x937);
+ uint64_t x985 = cmovznz(x978, x956, x934);
+ return (x979, x980, x981, x982, x983, x984, x985))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e414m17/feoppDisplay.log b/src/Specific/montgomery64_2e414m17/feoppDisplay.log
new file mode 100644
index 000000000..6295b4ba4
--- /dev/null
+++ b/src/Specific/montgomery64_2e414m17/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x14, uint8_t x15 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x4);
+ uint64_t x20, uint8_t x21 = subborrow_u64(x18, 0x0, x6);
+ uint64_t x23, uint8_t x24 = subborrow_u64(x21, 0x0, x8);
+ uint64_t x26, uint8_t x27 = subborrow_u64(x24, 0x0, x10);
+ uint64_t x29, uint8_t x30 = subborrow_u64(x27, 0x0, x12);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, 0x0, x11);
+ uint64_t x34 = (uint64_t)cmovznz(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & 0xffffffffffffffefL);
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x14, x35);
+ uint64_t x39 = (x34 & 0xffffffffffffffffL);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x38, x17, x39);
+ uint64_t x43 = (x34 & 0xffffffffffffffffL);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x42, x20, x43);
+ uint64_t x47 = (x34 & 0xffffffffffffffffL);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x46, x23, x47);
+ uint64_t x51 = (x34 & 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x50, x26, x51);
+ uint64_t x55 = (x34 & 0xffffffffffffffffL);
+ uint64_t x57, uint8_t x58 = addcarryx_u64(x54, x29, x55);
+ uint64_t x59 = (x34 & 0x3fffffff);
+ uint64_t x61, uint8_t _ = addcarryx_u64(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e414m17/fesubDisplay.log b/src/Specific/montgomery64_2e414m17/fesubDisplay.log
new file mode 100644
index 000000000..4fffd0d76
--- /dev/null
+++ b/src/Specific/montgomery64_2e414m17/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = subborrow_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = subborrow_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = subborrow_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = subborrow_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = subborrow_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = subborrow_u64(x45, x14, x26);
+ uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffffffffffefL);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(0x0, x29, x50);
+ uint64_t x54 = (x49 & 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x53, x32, x54);
+ uint64_t x58 = (x49 & 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = addcarryx_u64(x57, x35, x58);
+ uint64_t x62 = (x49 & 0xffffffffffffffffL);
+ uint64_t x64, uint8_t x65 = addcarryx_u64(x61, x38, x62);
+ uint64_t x66 = (x49 & 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = addcarryx_u64(x65, x41, x66);
+ uint64_t x70 = (x49 & 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = addcarryx_u64(x69, x44, x70);
+ uint64_t x74 = (x49 & 0x3fffffff);
+ uint64_t x76, uint8_t _ = addcarryx_u64(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e416m2e208m1/feaddDisplay.log b/src/Specific/montgomery64_2e416m2e208m1/feaddDisplay.log
new file mode 100644
index 000000000..d8202eb2d
--- /dev/null
+++ b/src/Specific/montgomery64_2e416m2e208m1/feaddDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = addcarryx_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = addcarryx_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = addcarryx_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = addcarryx_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = addcarryx_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = addcarryx_u64(x45, x14, x26);
+ uint64_t x50, uint8_t x51 = subborrow_u64(0x0, x29, 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = subborrow_u64(x51, x32, 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = subborrow_u64(x54, x35, 0xffffffffffffffffL);
+ uint64_t x59, uint8_t x60 = subborrow_u64(x57, x38, 0xfffffffffffeffffL);
+ uint64_t x62, uint8_t x63 = subborrow_u64(x60, x41, 0xffffffffffffffffL);
+ uint64_t x65, uint8_t x66 = subborrow_u64(x63, x44, 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = subborrow_u64(x66, x47, 0xffffffff);
+ uint64_t _, uint8_t x72 = subborrow_u64(x69, x48, 0x0);
+ uint64_t x73 = cmovznz(x72, x68, x47);
+ uint64_t x74 = cmovznz(x72, x65, x44);
+ uint64_t x75 = cmovznz(x72, x62, x41);
+ uint64_t x76 = cmovznz(x72, x59, x38);
+ uint64_t x77 = cmovznz(x72, x56, x35);
+ uint64_t x78 = cmovznz(x72, x53, x32);
+ uint64_t x79 = cmovznz(x72, x50, x29);
+ return (x73, x74, x75, x76, x77, x78, x79))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e416m2e208m1/femulDisplay.log b/src/Specific/montgomery64_2e416m2e208m1/femulDisplay.log
new file mode 100644
index 000000000..63d260a8e
--- /dev/null
+++ b/src/Specific/montgomery64_2e416m2e208m1/femulDisplay.log
@@ -0,0 +1,328 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint64_t x30 = mulx_u64(x5, x17);
+ uint64_t x32, uint64_t x33 = mulx_u64(x5, x19);
+ uint64_t x35, uint64_t x36 = mulx_u64(x5, x21);
+ uint64_t x38, uint64_t x39 = mulx_u64(x5, x23);
+ uint64_t x41, uint64_t x42 = mulx_u64(x5, x25);
+ uint64_t x44, uint64_t x45 = mulx_u64(x5, x27);
+ uint64_t x47, uint64_t x48 = mulx_u64(x5, x26);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(0x0, x30, x32);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x51, x33, x35);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x54, x36, x38);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(x57, x39, x41);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x60, x42, x44);
+ uint64_t x65, uint8_t x66 = addcarryx_u64(x63, x45, x47);
+ uint64_t x68, uint8_t _ = addcarryx_u64(0x0, x66, x48);
+ uint64_t x71, uint64_t x72 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x74, uint64_t x75 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x77, uint64_t x78 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x80, uint64_t x81 = mulx_u64(x29, 0xfffffffffffeffffL);
+ uint64_t x83, uint64_t x84 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x86, uint64_t x87 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x89, uint64_t x90 = mulx_u64(x29, 0xffffffff);
+ uint64_t x92, uint8_t x93 = addcarryx_u64(0x0, x72, x74);
+ uint64_t x95, uint8_t x96 = addcarryx_u64(x93, x75, x77);
+ uint64_t x98, uint8_t x99 = addcarryx_u64(x96, x78, x80);
+ uint64_t x101, uint8_t x102 = addcarryx_u64(x99, x81, x83);
+ uint64_t x104, uint8_t x105 = addcarryx_u64(x102, x84, x86);
+ uint64_t x107, uint8_t x108 = addcarryx_u64(x105, x87, x89);
+ uint64_t x110, uint8_t _ = addcarryx_u64(0x0, x108, x90);
+ uint64_t _, uint8_t x114 = addcarryx_u64(0x0, x29, x71);
+ uint64_t x116, uint8_t x117 = addcarryx_u64(x114, x50, x92);
+ uint64_t x119, uint8_t x120 = addcarryx_u64(x117, x53, x95);
+ uint64_t x122, uint8_t x123 = addcarryx_u64(x120, x56, x98);
+ uint64_t x125, uint8_t x126 = addcarryx_u64(x123, x59, x101);
+ uint64_t x128, uint8_t x129 = addcarryx_u64(x126, x62, x104);
+ uint64_t x131, uint8_t x132 = addcarryx_u64(x129, x65, x107);
+ uint64_t x134, uint8_t x135 = addcarryx_u64(x132, x68, x110);
+ uint64_t x137, uint64_t x138 = mulx_u64(x7, x17);
+ uint64_t x140, uint64_t x141 = mulx_u64(x7, x19);
+ uint64_t x143, uint64_t x144 = mulx_u64(x7, x21);
+ uint64_t x146, uint64_t x147 = mulx_u64(x7, x23);
+ uint64_t x149, uint64_t x150 = mulx_u64(x7, x25);
+ uint64_t x152, uint64_t x153 = mulx_u64(x7, x27);
+ uint64_t x155, uint64_t x156 = mulx_u64(x7, x26);
+ uint64_t x158, uint8_t x159 = addcarryx_u64(0x0, x138, x140);
+ uint64_t x161, uint8_t x162 = addcarryx_u64(x159, x141, x143);
+ uint64_t x164, uint8_t x165 = addcarryx_u64(x162, x144, x146);
+ uint64_t x167, uint8_t x168 = addcarryx_u64(x165, x147, x149);
+ uint64_t x170, uint8_t x171 = addcarryx_u64(x168, x150, x152);
+ uint64_t x173, uint8_t x174 = addcarryx_u64(x171, x153, x155);
+ uint64_t x176, uint8_t _ = addcarryx_u64(0x0, x174, x156);
+ uint64_t x179, uint8_t x180 = addcarryx_u64(0x0, x116, x137);
+ uint64_t x182, uint8_t x183 = addcarryx_u64(x180, x119, x158);
+ uint64_t x185, uint8_t x186 = addcarryx_u64(x183, x122, x161);
+ uint64_t x188, uint8_t x189 = addcarryx_u64(x186, x125, x164);
+ uint64_t x191, uint8_t x192 = addcarryx_u64(x189, x128, x167);
+ uint64_t x194, uint8_t x195 = addcarryx_u64(x192, x131, x170);
+ uint64_t x197, uint8_t x198 = addcarryx_u64(x195, x134, x173);
+ uint64_t x200, uint8_t x201 = addcarryx_u64(x198, x135, x176);
+ uint64_t x203, uint64_t x204 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x206, uint64_t x207 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x209, uint64_t x210 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x212, uint64_t x213 = mulx_u64(x179, 0xfffffffffffeffffL);
+ uint64_t x215, uint64_t x216 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x218, uint64_t x219 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x221, uint64_t x222 = mulx_u64(x179, 0xffffffff);
+ uint64_t x224, uint8_t x225 = addcarryx_u64(0x0, x204, x206);
+ uint64_t x227, uint8_t x228 = addcarryx_u64(x225, x207, x209);
+ uint64_t x230, uint8_t x231 = addcarryx_u64(x228, x210, x212);
+ uint64_t x233, uint8_t x234 = addcarryx_u64(x231, x213, x215);
+ uint64_t x236, uint8_t x237 = addcarryx_u64(x234, x216, x218);
+ uint64_t x239, uint8_t x240 = addcarryx_u64(x237, x219, x221);
+ uint64_t x242, uint8_t _ = addcarryx_u64(0x0, x240, x222);
+ uint64_t _, uint8_t x246 = addcarryx_u64(0x0, x179, x203);
+ uint64_t x248, uint8_t x249 = addcarryx_u64(x246, x182, x224);
+ uint64_t x251, uint8_t x252 = addcarryx_u64(x249, x185, x227);
+ uint64_t x254, uint8_t x255 = addcarryx_u64(x252, x188, x230);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(x255, x191, x233);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x194, x236);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x197, x239);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x200, x242);
+ uint8_t x268 = (x267 + x201);
+ uint64_t x270, uint64_t x271 = mulx_u64(x9, x17);
+ uint64_t x273, uint64_t x274 = mulx_u64(x9, x19);
+ uint64_t x276, uint64_t x277 = mulx_u64(x9, x21);
+ uint64_t x279, uint64_t x280 = mulx_u64(x9, x23);
+ uint64_t x282, uint64_t x283 = mulx_u64(x9, x25);
+ uint64_t x285, uint64_t x286 = mulx_u64(x9, x27);
+ uint64_t x288, uint64_t x289 = mulx_u64(x9, x26);
+ uint64_t x291, uint8_t x292 = addcarryx_u64(0x0, x271, x273);
+ uint64_t x294, uint8_t x295 = addcarryx_u64(x292, x274, x276);
+ uint64_t x297, uint8_t x298 = addcarryx_u64(x295, x277, x279);
+ uint64_t x300, uint8_t x301 = addcarryx_u64(x298, x280, x282);
+ uint64_t x303, uint8_t x304 = addcarryx_u64(x301, x283, x285);
+ uint64_t x306, uint8_t x307 = addcarryx_u64(x304, x286, x288);
+ uint64_t x309, uint8_t _ = addcarryx_u64(0x0, x307, x289);
+ uint64_t x312, uint8_t x313 = addcarryx_u64(0x0, x248, x270);
+ uint64_t x315, uint8_t x316 = addcarryx_u64(x313, x251, x291);
+ uint64_t x318, uint8_t x319 = addcarryx_u64(x316, x254, x294);
+ uint64_t x321, uint8_t x322 = addcarryx_u64(x319, x257, x297);
+ uint64_t x324, uint8_t x325 = addcarryx_u64(x322, x260, x300);
+ uint64_t x327, uint8_t x328 = addcarryx_u64(x325, x263, x303);
+ uint64_t x330, uint8_t x331 = addcarryx_u64(x328, x266, x306);
+ uint64_t x333, uint8_t x334 = addcarryx_u64(x331, x268, x309);
+ uint64_t x336, uint64_t x337 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x339, uint64_t x340 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x342, uint64_t x343 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x345, uint64_t x346 = mulx_u64(x312, 0xfffffffffffeffffL);
+ uint64_t x348, uint64_t x349 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x351, uint64_t x352 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x354, uint64_t x355 = mulx_u64(x312, 0xffffffff);
+ uint64_t x357, uint8_t x358 = addcarryx_u64(0x0, x337, x339);
+ uint64_t x360, uint8_t x361 = addcarryx_u64(x358, x340, x342);
+ uint64_t x363, uint8_t x364 = addcarryx_u64(x361, x343, x345);
+ uint64_t x366, uint8_t x367 = addcarryx_u64(x364, x346, x348);
+ uint64_t x369, uint8_t x370 = addcarryx_u64(x367, x349, x351);
+ uint64_t x372, uint8_t x373 = addcarryx_u64(x370, x352, x354);
+ uint64_t x375, uint8_t _ = addcarryx_u64(0x0, x373, x355);
+ uint64_t _, uint8_t x379 = addcarryx_u64(0x0, x312, x336);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x315, x357);
+ uint64_t x384, uint8_t x385 = addcarryx_u64(x382, x318, x360);
+ uint64_t x387, uint8_t x388 = addcarryx_u64(x385, x321, x363);
+ uint64_t x390, uint8_t x391 = addcarryx_u64(x388, x324, x366);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(x391, x327, x369);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x330, x372);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x333, x375);
+ uint8_t x401 = (x400 + x334);
+ uint64_t x403, uint64_t x404 = mulx_u64(x11, x17);
+ uint64_t x406, uint64_t x407 = mulx_u64(x11, x19);
+ uint64_t x409, uint64_t x410 = mulx_u64(x11, x21);
+ uint64_t x412, uint64_t x413 = mulx_u64(x11, x23);
+ uint64_t x415, uint64_t x416 = mulx_u64(x11, x25);
+ uint64_t x418, uint64_t x419 = mulx_u64(x11, x27);
+ uint64_t x421, uint64_t x422 = mulx_u64(x11, x26);
+ uint64_t x424, uint8_t x425 = addcarryx_u64(0x0, x404, x406);
+ uint64_t x427, uint8_t x428 = addcarryx_u64(x425, x407, x409);
+ uint64_t x430, uint8_t x431 = addcarryx_u64(x428, x410, x412);
+ uint64_t x433, uint8_t x434 = addcarryx_u64(x431, x413, x415);
+ uint64_t x436, uint8_t x437 = addcarryx_u64(x434, x416, x418);
+ uint64_t x439, uint8_t x440 = addcarryx_u64(x437, x419, x421);
+ uint64_t x442, uint8_t _ = addcarryx_u64(0x0, x440, x422);
+ uint64_t x445, uint8_t x446 = addcarryx_u64(0x0, x381, x403);
+ uint64_t x448, uint8_t x449 = addcarryx_u64(x446, x384, x424);
+ uint64_t x451, uint8_t x452 = addcarryx_u64(x449, x387, x427);
+ uint64_t x454, uint8_t x455 = addcarryx_u64(x452, x390, x430);
+ uint64_t x457, uint8_t x458 = addcarryx_u64(x455, x393, x433);
+ uint64_t x460, uint8_t x461 = addcarryx_u64(x458, x396, x436);
+ uint64_t x463, uint8_t x464 = addcarryx_u64(x461, x399, x439);
+ uint64_t x466, uint8_t x467 = addcarryx_u64(x464, x401, x442);
+ uint64_t x469, uint64_t x470 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x472, uint64_t x473 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x475, uint64_t x476 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x478, uint64_t x479 = mulx_u64(x445, 0xfffffffffffeffffL);
+ uint64_t x481, uint64_t x482 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x484, uint64_t x485 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x487, uint64_t x488 = mulx_u64(x445, 0xffffffff);
+ uint64_t x490, uint8_t x491 = addcarryx_u64(0x0, x470, x472);
+ uint64_t x493, uint8_t x494 = addcarryx_u64(x491, x473, x475);
+ uint64_t x496, uint8_t x497 = addcarryx_u64(x494, x476, x478);
+ uint64_t x499, uint8_t x500 = addcarryx_u64(x497, x479, x481);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(x500, x482, x484);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x485, x487);
+ uint64_t x508, uint8_t _ = addcarryx_u64(0x0, x506, x488);
+ uint64_t _, uint8_t x512 = addcarryx_u64(0x0, x445, x469);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x448, x490);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x451, x493);
+ uint64_t x520, uint8_t x521 = addcarryx_u64(x518, x454, x496);
+ uint64_t x523, uint8_t x524 = addcarryx_u64(x521, x457, x499);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x460, x502);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x463, x505);
+ uint64_t x532, uint8_t x533 = addcarryx_u64(x530, x466, x508);
+ uint8_t x534 = (x533 + x467);
+ uint64_t x536, uint64_t x537 = mulx_u64(x13, x17);
+ uint64_t x539, uint64_t x540 = mulx_u64(x13, x19);
+ uint64_t x542, uint64_t x543 = mulx_u64(x13, x21);
+ uint64_t x545, uint64_t x546 = mulx_u64(x13, x23);
+ uint64_t x548, uint64_t x549 = mulx_u64(x13, x25);
+ uint64_t x551, uint64_t x552 = mulx_u64(x13, x27);
+ uint64_t x554, uint64_t x555 = mulx_u64(x13, x26);
+ uint64_t x557, uint8_t x558 = addcarryx_u64(0x0, x537, x539);
+ uint64_t x560, uint8_t x561 = addcarryx_u64(x558, x540, x542);
+ uint64_t x563, uint8_t x564 = addcarryx_u64(x561, x543, x545);
+ uint64_t x566, uint8_t x567 = addcarryx_u64(x564, x546, x548);
+ uint64_t x569, uint8_t x570 = addcarryx_u64(x567, x549, x551);
+ uint64_t x572, uint8_t x573 = addcarryx_u64(x570, x552, x554);
+ uint64_t x575, uint8_t _ = addcarryx_u64(0x0, x573, x555);
+ uint64_t x578, uint8_t x579 = addcarryx_u64(0x0, x514, x536);
+ uint64_t x581, uint8_t x582 = addcarryx_u64(x579, x517, x557);
+ uint64_t x584, uint8_t x585 = addcarryx_u64(x582, x520, x560);
+ uint64_t x587, uint8_t x588 = addcarryx_u64(x585, x523, x563);
+ uint64_t x590, uint8_t x591 = addcarryx_u64(x588, x526, x566);
+ uint64_t x593, uint8_t x594 = addcarryx_u64(x591, x529, x569);
+ uint64_t x596, uint8_t x597 = addcarryx_u64(x594, x532, x572);
+ uint64_t x599, uint8_t x600 = addcarryx_u64(x597, x534, x575);
+ uint64_t x602, uint64_t x603 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x605, uint64_t x606 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x608, uint64_t x609 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x611, uint64_t x612 = mulx_u64(x578, 0xfffffffffffeffffL);
+ uint64_t x614, uint64_t x615 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x617, uint64_t x618 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x620, uint64_t x621 = mulx_u64(x578, 0xffffffff);
+ uint64_t x623, uint8_t x624 = addcarryx_u64(0x0, x603, x605);
+ uint64_t x626, uint8_t x627 = addcarryx_u64(x624, x606, x608);
+ uint64_t x629, uint8_t x630 = addcarryx_u64(x627, x609, x611);
+ uint64_t x632, uint8_t x633 = addcarryx_u64(x630, x612, x614);
+ uint64_t x635, uint8_t x636 = addcarryx_u64(x633, x615, x617);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(x636, x618, x620);
+ uint64_t x641, uint8_t _ = addcarryx_u64(0x0, x639, x621);
+ uint64_t _, uint8_t x645 = addcarryx_u64(0x0, x578, x602);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x581, x623);
+ uint64_t x650, uint8_t x651 = addcarryx_u64(x648, x584, x626);
+ uint64_t x653, uint8_t x654 = addcarryx_u64(x651, x587, x629);
+ uint64_t x656, uint8_t x657 = addcarryx_u64(x654, x590, x632);
+ uint64_t x659, uint8_t x660 = addcarryx_u64(x657, x593, x635);
+ uint64_t x662, uint8_t x663 = addcarryx_u64(x660, x596, x638);
+ uint64_t x665, uint8_t x666 = addcarryx_u64(x663, x599, x641);
+ uint8_t x667 = (x666 + x600);
+ uint64_t x669, uint64_t x670 = mulx_u64(x15, x17);
+ uint64_t x672, uint64_t x673 = mulx_u64(x15, x19);
+ uint64_t x675, uint64_t x676 = mulx_u64(x15, x21);
+ uint64_t x678, uint64_t x679 = mulx_u64(x15, x23);
+ uint64_t x681, uint64_t x682 = mulx_u64(x15, x25);
+ uint64_t x684, uint64_t x685 = mulx_u64(x15, x27);
+ uint64_t x687, uint64_t x688 = mulx_u64(x15, x26);
+ uint64_t x690, uint8_t x691 = addcarryx_u64(0x0, x670, x672);
+ uint64_t x693, uint8_t x694 = addcarryx_u64(x691, x673, x675);
+ uint64_t x696, uint8_t x697 = addcarryx_u64(x694, x676, x678);
+ uint64_t x699, uint8_t x700 = addcarryx_u64(x697, x679, x681);
+ uint64_t x702, uint8_t x703 = addcarryx_u64(x700, x682, x684);
+ uint64_t x705, uint8_t x706 = addcarryx_u64(x703, x685, x687);
+ uint64_t x708, uint8_t _ = addcarryx_u64(0x0, x706, x688);
+ uint64_t x711, uint8_t x712 = addcarryx_u64(0x0, x647, x669);
+ uint64_t x714, uint8_t x715 = addcarryx_u64(x712, x650, x690);
+ uint64_t x717, uint8_t x718 = addcarryx_u64(x715, x653, x693);
+ uint64_t x720, uint8_t x721 = addcarryx_u64(x718, x656, x696);
+ uint64_t x723, uint8_t x724 = addcarryx_u64(x721, x659, x699);
+ uint64_t x726, uint8_t x727 = addcarryx_u64(x724, x662, x702);
+ uint64_t x729, uint8_t x730 = addcarryx_u64(x727, x665, x705);
+ uint64_t x732, uint8_t x733 = addcarryx_u64(x730, x667, x708);
+ uint64_t x735, uint64_t x736 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x738, uint64_t x739 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x741, uint64_t x742 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x744, uint64_t x745 = mulx_u64(x711, 0xfffffffffffeffffL);
+ uint64_t x747, uint64_t x748 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x750, uint64_t x751 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x753, uint64_t x754 = mulx_u64(x711, 0xffffffff);
+ uint64_t x756, uint8_t x757 = addcarryx_u64(0x0, x736, x738);
+ uint64_t x759, uint8_t x760 = addcarryx_u64(x757, x739, x741);
+ uint64_t x762, uint8_t x763 = addcarryx_u64(x760, x742, x744);
+ uint64_t x765, uint8_t x766 = addcarryx_u64(x763, x745, x747);
+ uint64_t x768, uint8_t x769 = addcarryx_u64(x766, x748, x750);
+ uint64_t x771, uint8_t x772 = addcarryx_u64(x769, x751, x753);
+ uint64_t x774, uint8_t _ = addcarryx_u64(0x0, x772, x754);
+ uint64_t _, uint8_t x778 = addcarryx_u64(0x0, x711, x735);
+ uint64_t x780, uint8_t x781 = addcarryx_u64(x778, x714, x756);
+ uint64_t x783, uint8_t x784 = addcarryx_u64(x781, x717, x759);
+ uint64_t x786, uint8_t x787 = addcarryx_u64(x784, x720, x762);
+ uint64_t x789, uint8_t x790 = addcarryx_u64(x787, x723, x765);
+ uint64_t x792, uint8_t x793 = addcarryx_u64(x790, x726, x768);
+ uint64_t x795, uint8_t x796 = addcarryx_u64(x793, x729, x771);
+ uint64_t x798, uint8_t x799 = addcarryx_u64(x796, x732, x774);
+ uint8_t x800 = (x799 + x733);
+ uint64_t x802, uint64_t x803 = mulx_u64(x14, x17);
+ uint64_t x805, uint64_t x806 = mulx_u64(x14, x19);
+ uint64_t x808, uint64_t x809 = mulx_u64(x14, x21);
+ uint64_t x811, uint64_t x812 = mulx_u64(x14, x23);
+ uint64_t x814, uint64_t x815 = mulx_u64(x14, x25);
+ uint64_t x817, uint64_t x818 = mulx_u64(x14, x27);
+ uint64_t x820, uint64_t x821 = mulx_u64(x14, x26);
+ uint64_t x823, uint8_t x824 = addcarryx_u64(0x0, x803, x805);
+ uint64_t x826, uint8_t x827 = addcarryx_u64(x824, x806, x808);
+ uint64_t x829, uint8_t x830 = addcarryx_u64(x827, x809, x811);
+ uint64_t x832, uint8_t x833 = addcarryx_u64(x830, x812, x814);
+ uint64_t x835, uint8_t x836 = addcarryx_u64(x833, x815, x817);
+ uint64_t x838, uint8_t x839 = addcarryx_u64(x836, x818, x820);
+ uint64_t x841, uint8_t _ = addcarryx_u64(0x0, x839, x821);
+ uint64_t x844, uint8_t x845 = addcarryx_u64(0x0, x780, x802);
+ uint64_t x847, uint8_t x848 = addcarryx_u64(x845, x783, x823);
+ uint64_t x850, uint8_t x851 = addcarryx_u64(x848, x786, x826);
+ uint64_t x853, uint8_t x854 = addcarryx_u64(x851, x789, x829);
+ uint64_t x856, uint8_t x857 = addcarryx_u64(x854, x792, x832);
+ uint64_t x859, uint8_t x860 = addcarryx_u64(x857, x795, x835);
+ uint64_t x862, uint8_t x863 = addcarryx_u64(x860, x798, x838);
+ uint64_t x865, uint8_t x866 = addcarryx_u64(x863, x800, x841);
+ uint64_t x868, uint64_t x869 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x871, uint64_t x872 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x874, uint64_t x875 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x877, uint64_t x878 = mulx_u64(x844, 0xfffffffffffeffffL);
+ uint64_t x880, uint64_t x881 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x883, uint64_t x884 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x886, uint64_t x887 = mulx_u64(x844, 0xffffffff);
+ uint64_t x889, uint8_t x890 = addcarryx_u64(0x0, x869, x871);
+ uint64_t x892, uint8_t x893 = addcarryx_u64(x890, x872, x874);
+ uint64_t x895, uint8_t x896 = addcarryx_u64(x893, x875, x877);
+ uint64_t x898, uint8_t x899 = addcarryx_u64(x896, x878, x880);
+ uint64_t x901, uint8_t x902 = addcarryx_u64(x899, x881, x883);
+ uint64_t x904, uint8_t x905 = addcarryx_u64(x902, x884, x886);
+ uint64_t x907, uint8_t _ = addcarryx_u64(0x0, x905, x887);
+ uint64_t _, uint8_t x911 = addcarryx_u64(0x0, x844, x868);
+ uint64_t x913, uint8_t x914 = addcarryx_u64(x911, x847, x889);
+ uint64_t x916, uint8_t x917 = addcarryx_u64(x914, x850, x892);
+ uint64_t x919, uint8_t x920 = addcarryx_u64(x917, x853, x895);
+ uint64_t x922, uint8_t x923 = addcarryx_u64(x920, x856, x898);
+ uint64_t x925, uint8_t x926 = addcarryx_u64(x923, x859, x901);
+ uint64_t x928, uint8_t x929 = addcarryx_u64(x926, x862, x904);
+ uint64_t x931, uint8_t x932 = addcarryx_u64(x929, x865, x907);
+ uint8_t x933 = (x932 + x866);
+ uint64_t x935, uint8_t x936 = subborrow_u64(0x0, x913, 0xffffffffffffffffL);
+ uint64_t x938, uint8_t x939 = subborrow_u64(x936, x916, 0xffffffffffffffffL);
+ uint64_t x941, uint8_t x942 = subborrow_u64(x939, x919, 0xffffffffffffffffL);
+ uint64_t x944, uint8_t x945 = subborrow_u64(x942, x922, 0xfffffffffffeffffL);
+ uint64_t x947, uint8_t x948 = subborrow_u64(x945, x925, 0xffffffffffffffffL);
+ uint64_t x950, uint8_t x951 = subborrow_u64(x948, x928, 0xffffffffffffffffL);
+ uint64_t x953, uint8_t x954 = subborrow_u64(x951, x931, 0xffffffff);
+ uint64_t _, uint8_t x957 = subborrow_u64(x954, x933, 0x0);
+ uint64_t x958 = cmovznz(x957, x953, x931);
+ uint64_t x959 = cmovznz(x957, x950, x928);
+ uint64_t x960 = cmovznz(x957, x947, x925);
+ uint64_t x961 = cmovznz(x957, x944, x922);
+ uint64_t x962 = cmovznz(x957, x941, x919);
+ uint64_t x963 = cmovznz(x957, x938, x916);
+ uint64_t x964 = cmovznz(x957, x935, x913);
+ return (x958, x959, x960, x961, x962, x963, x964))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e416m2e208m1/feoppDisplay.log b/src/Specific/montgomery64_2e416m2e208m1/feoppDisplay.log
new file mode 100644
index 000000000..42c860bbd
--- /dev/null
+++ b/src/Specific/montgomery64_2e416m2e208m1/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x14, uint8_t x15 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x4);
+ uint64_t x20, uint8_t x21 = subborrow_u64(x18, 0x0, x6);
+ uint64_t x23, uint8_t x24 = subborrow_u64(x21, 0x0, x8);
+ uint64_t x26, uint8_t x27 = subborrow_u64(x24, 0x0, x10);
+ uint64_t x29, uint8_t x30 = subborrow_u64(x27, 0x0, x12);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, 0x0, x11);
+ uint64_t x34 = (uint64_t)cmovznz(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & 0xffffffffffffffffL);
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x14, x35);
+ uint64_t x39 = (x34 & 0xffffffffffffffffL);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x38, x17, x39);
+ uint64_t x43 = (x34 & 0xffffffffffffffffL);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x42, x20, x43);
+ uint64_t x47 = (x34 & 0xfffffffffffeffffL);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x46, x23, x47);
+ uint64_t x51 = (x34 & 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x50, x26, x51);
+ uint64_t x55 = (x34 & 0xffffffffffffffffL);
+ uint64_t x57, uint8_t x58 = addcarryx_u64(x54, x29, x55);
+ uint64_t x59 = (x34 & 0xffffffff);
+ uint64_t x61, uint8_t _ = addcarryx_u64(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e416m2e208m1/fesubDisplay.log b/src/Specific/montgomery64_2e416m2e208m1/fesubDisplay.log
new file mode 100644
index 000000000..78774d931
--- /dev/null
+++ b/src/Specific/montgomery64_2e416m2e208m1/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = subborrow_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = subborrow_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = subborrow_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = subborrow_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = subborrow_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = subborrow_u64(x45, x14, x26);
+ uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffffffffffffL);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(0x0, x29, x50);
+ uint64_t x54 = (x49 & 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x53, x32, x54);
+ uint64_t x58 = (x49 & 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = addcarryx_u64(x57, x35, x58);
+ uint64_t x62 = (x49 & 0xfffffffffffeffffL);
+ uint64_t x64, uint8_t x65 = addcarryx_u64(x61, x38, x62);
+ uint64_t x66 = (x49 & 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = addcarryx_u64(x65, x41, x66);
+ uint64_t x70 = (x49 & 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = addcarryx_u64(x69, x44, x70);
+ uint64_t x74 = (x49 & 0xffffffff);
+ uint64_t x76, uint8_t _ = addcarryx_u64(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e444m17/feaddDisplay.log b/src/Specific/montgomery64_2e444m17/feaddDisplay.log
new file mode 100644
index 000000000..07c77fb40
--- /dev/null
+++ b/src/Specific/montgomery64_2e444m17/feaddDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = addcarryx_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = addcarryx_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = addcarryx_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = addcarryx_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = addcarryx_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = addcarryx_u64(x45, x14, x26);
+ uint64_t x50, uint8_t x51 = subborrow_u64(0x0, x29, 0xffffffffffffffefL);
+ uint64_t x53, uint8_t x54 = subborrow_u64(x51, x32, 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = subborrow_u64(x54, x35, 0xffffffffffffffffL);
+ uint64_t x59, uint8_t x60 = subborrow_u64(x57, x38, 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = subborrow_u64(x60, x41, 0xffffffffffffffffL);
+ uint64_t x65, uint8_t x66 = subborrow_u64(x63, x44, 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = subborrow_u64(x66, x47, 0xfffffffffffffff);
+ uint64_t _, uint8_t x72 = subborrow_u64(x69, x48, 0x0);
+ uint64_t x73 = cmovznz(x72, x68, x47);
+ uint64_t x74 = cmovznz(x72, x65, x44);
+ uint64_t x75 = cmovznz(x72, x62, x41);
+ uint64_t x76 = cmovznz(x72, x59, x38);
+ uint64_t x77 = cmovznz(x72, x56, x35);
+ uint64_t x78 = cmovznz(x72, x53, x32);
+ uint64_t x79 = cmovznz(x72, x50, x29);
+ return (x73, x74, x75, x76, x77, x78, x79))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e444m17/femulDisplay.log b/src/Specific/montgomery64_2e444m17/femulDisplay.log
new file mode 100644
index 000000000..9b567e249
--- /dev/null
+++ b/src/Specific/montgomery64_2e444m17/femulDisplay.log
@@ -0,0 +1,335 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint64_t x30 = mulx_u64(x5, x17);
+ uint64_t x32, uint64_t x33 = mulx_u64(x5, x19);
+ uint64_t x35, uint64_t x36 = mulx_u64(x5, x21);
+ uint64_t x38, uint64_t x39 = mulx_u64(x5, x23);
+ uint64_t x41, uint64_t x42 = mulx_u64(x5, x25);
+ uint64_t x44, uint64_t x45 = mulx_u64(x5, x27);
+ uint64_t x47, uint64_t x48 = mulx_u64(x5, x26);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(0x0, x30, x32);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x51, x33, x35);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x54, x36, x38);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(x57, x39, x41);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x60, x42, x44);
+ uint64_t x65, uint8_t x66 = addcarryx_u64(x63, x45, x47);
+ uint64_t x68, uint8_t _ = addcarryx_u64(0x0, x66, x48);
+ uint64_t x71, uint64_t _ = mulx_u64(x29, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x74, uint64_t x75 = mulx_u64(x71, 0xffffffffffffffefL);
+ uint64_t x77, uint64_t x78 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x80, uint64_t x81 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x83, uint64_t x84 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x86, uint64_t x87 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x89, uint64_t x90 = mulx_u64(x71, 0xffffffffffffffffL);
+ uint64_t x92, uint64_t x93 = mulx_u64(x71, 0xfffffffffffffff);
+ uint64_t x95, uint8_t x96 = addcarryx_u64(0x0, x75, x77);
+ uint64_t x98, uint8_t x99 = addcarryx_u64(x96, x78, x80);
+ uint64_t x101, uint8_t x102 = addcarryx_u64(x99, x81, x83);
+ uint64_t x104, uint8_t x105 = addcarryx_u64(x102, x84, x86);
+ uint64_t x107, uint8_t x108 = addcarryx_u64(x105, x87, x89);
+ uint64_t x110, uint8_t x111 = addcarryx_u64(x108, x90, x92);
+ uint64_t x113, uint8_t _ = addcarryx_u64(0x0, x111, x93);
+ uint64_t _, uint8_t x117 = addcarryx_u64(0x0, x29, x74);
+ uint64_t x119, uint8_t x120 = addcarryx_u64(x117, x50, x95);
+ uint64_t x122, uint8_t x123 = addcarryx_u64(x120, x53, x98);
+ uint64_t x125, uint8_t x126 = addcarryx_u64(x123, x56, x101);
+ uint64_t x128, uint8_t x129 = addcarryx_u64(x126, x59, x104);
+ uint64_t x131, uint8_t x132 = addcarryx_u64(x129, x62, x107);
+ uint64_t x134, uint8_t x135 = addcarryx_u64(x132, x65, x110);
+ uint64_t x137, uint8_t x138 = addcarryx_u64(x135, x68, x113);
+ uint64_t x140, uint64_t x141 = mulx_u64(x7, x17);
+ uint64_t x143, uint64_t x144 = mulx_u64(x7, x19);
+ uint64_t x146, uint64_t x147 = mulx_u64(x7, x21);
+ uint64_t x149, uint64_t x150 = mulx_u64(x7, x23);
+ uint64_t x152, uint64_t x153 = mulx_u64(x7, x25);
+ uint64_t x155, uint64_t x156 = mulx_u64(x7, x27);
+ uint64_t x158, uint64_t x159 = mulx_u64(x7, x26);
+ uint64_t x161, uint8_t x162 = addcarryx_u64(0x0, x141, x143);
+ uint64_t x164, uint8_t x165 = addcarryx_u64(x162, x144, x146);
+ uint64_t x167, uint8_t x168 = addcarryx_u64(x165, x147, x149);
+ uint64_t x170, uint8_t x171 = addcarryx_u64(x168, x150, x152);
+ uint64_t x173, uint8_t x174 = addcarryx_u64(x171, x153, x155);
+ uint64_t x176, uint8_t x177 = addcarryx_u64(x174, x156, x158);
+ uint64_t x179, uint8_t _ = addcarryx_u64(0x0, x177, x159);
+ uint64_t x182, uint8_t x183 = addcarryx_u64(0x0, x119, x140);
+ uint64_t x185, uint8_t x186 = addcarryx_u64(x183, x122, x161);
+ uint64_t x188, uint8_t x189 = addcarryx_u64(x186, x125, x164);
+ uint64_t x191, uint8_t x192 = addcarryx_u64(x189, x128, x167);
+ uint64_t x194, uint8_t x195 = addcarryx_u64(x192, x131, x170);
+ uint64_t x197, uint8_t x198 = addcarryx_u64(x195, x134, x173);
+ uint64_t x200, uint8_t x201 = addcarryx_u64(x198, x137, x176);
+ uint64_t x203, uint8_t x204 = addcarryx_u64(x201, x138, x179);
+ uint64_t x206, uint64_t _ = mulx_u64(x182, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x209, uint64_t x210 = mulx_u64(x206, 0xffffffffffffffefL);
+ uint64_t x212, uint64_t x213 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x215, uint64_t x216 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x218, uint64_t x219 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x221, uint64_t x222 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x224, uint64_t x225 = mulx_u64(x206, 0xffffffffffffffffL);
+ uint64_t x227, uint64_t x228 = mulx_u64(x206, 0xfffffffffffffff);
+ uint64_t x230, uint8_t x231 = addcarryx_u64(0x0, x210, x212);
+ uint64_t x233, uint8_t x234 = addcarryx_u64(x231, x213, x215);
+ uint64_t x236, uint8_t x237 = addcarryx_u64(x234, x216, x218);
+ uint64_t x239, uint8_t x240 = addcarryx_u64(x237, x219, x221);
+ uint64_t x242, uint8_t x243 = addcarryx_u64(x240, x222, x224);
+ uint64_t x245, uint8_t x246 = addcarryx_u64(x243, x225, x227);
+ uint64_t x248, uint8_t _ = addcarryx_u64(0x0, x246, x228);
+ uint64_t _, uint8_t x252 = addcarryx_u64(0x0, x182, x209);
+ uint64_t x254, uint8_t x255 = addcarryx_u64(x252, x185, x230);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(x255, x188, x233);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x191, x236);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x194, x239);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x197, x242);
+ uint64_t x269, uint8_t x270 = addcarryx_u64(x267, x200, x245);
+ uint64_t x272, uint8_t x273 = addcarryx_u64(x270, x203, x248);
+ uint8_t x274 = (x273 + x204);
+ uint64_t x276, uint64_t x277 = mulx_u64(x9, x17);
+ uint64_t x279, uint64_t x280 = mulx_u64(x9, x19);
+ uint64_t x282, uint64_t x283 = mulx_u64(x9, x21);
+ uint64_t x285, uint64_t x286 = mulx_u64(x9, x23);
+ uint64_t x288, uint64_t x289 = mulx_u64(x9, x25);
+ uint64_t x291, uint64_t x292 = mulx_u64(x9, x27);
+ uint64_t x294, uint64_t x295 = mulx_u64(x9, x26);
+ uint64_t x297, uint8_t x298 = addcarryx_u64(0x0, x277, x279);
+ uint64_t x300, uint8_t x301 = addcarryx_u64(x298, x280, x282);
+ uint64_t x303, uint8_t x304 = addcarryx_u64(x301, x283, x285);
+ uint64_t x306, uint8_t x307 = addcarryx_u64(x304, x286, x288);
+ uint64_t x309, uint8_t x310 = addcarryx_u64(x307, x289, x291);
+ uint64_t x312, uint8_t x313 = addcarryx_u64(x310, x292, x294);
+ uint64_t x315, uint8_t _ = addcarryx_u64(0x0, x313, x295);
+ uint64_t x318, uint8_t x319 = addcarryx_u64(0x0, x254, x276);
+ uint64_t x321, uint8_t x322 = addcarryx_u64(x319, x257, x297);
+ uint64_t x324, uint8_t x325 = addcarryx_u64(x322, x260, x300);
+ uint64_t x327, uint8_t x328 = addcarryx_u64(x325, x263, x303);
+ uint64_t x330, uint8_t x331 = addcarryx_u64(x328, x266, x306);
+ uint64_t x333, uint8_t x334 = addcarryx_u64(x331, x269, x309);
+ uint64_t x336, uint8_t x337 = addcarryx_u64(x334, x272, x312);
+ uint64_t x339, uint8_t x340 = addcarryx_u64(x337, x274, x315);
+ uint64_t x342, uint64_t _ = mulx_u64(x318, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x345, uint64_t x346 = mulx_u64(x342, 0xffffffffffffffefL);
+ uint64_t x348, uint64_t x349 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x351, uint64_t x352 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x354, uint64_t x355 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x357, uint64_t x358 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x360, uint64_t x361 = mulx_u64(x342, 0xffffffffffffffffL);
+ uint64_t x363, uint64_t x364 = mulx_u64(x342, 0xfffffffffffffff);
+ uint64_t x366, uint8_t x367 = addcarryx_u64(0x0, x346, x348);
+ uint64_t x369, uint8_t x370 = addcarryx_u64(x367, x349, x351);
+ uint64_t x372, uint8_t x373 = addcarryx_u64(x370, x352, x354);
+ uint64_t x375, uint8_t x376 = addcarryx_u64(x373, x355, x357);
+ uint64_t x378, uint8_t x379 = addcarryx_u64(x376, x358, x360);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x361, x363);
+ uint64_t x384, uint8_t _ = addcarryx_u64(0x0, x382, x364);
+ uint64_t _, uint8_t x388 = addcarryx_u64(0x0, x318, x345);
+ uint64_t x390, uint8_t x391 = addcarryx_u64(x388, x321, x366);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(x391, x324, x369);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x327, x372);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x330, x375);
+ uint64_t x402, uint8_t x403 = addcarryx_u64(x400, x333, x378);
+ uint64_t x405, uint8_t x406 = addcarryx_u64(x403, x336, x381);
+ uint64_t x408, uint8_t x409 = addcarryx_u64(x406, x339, x384);
+ uint8_t x410 = (x409 + x340);
+ uint64_t x412, uint64_t x413 = mulx_u64(x11, x17);
+ uint64_t x415, uint64_t x416 = mulx_u64(x11, x19);
+ uint64_t x418, uint64_t x419 = mulx_u64(x11, x21);
+ uint64_t x421, uint64_t x422 = mulx_u64(x11, x23);
+ uint64_t x424, uint64_t x425 = mulx_u64(x11, x25);
+ uint64_t x427, uint64_t x428 = mulx_u64(x11, x27);
+ uint64_t x430, uint64_t x431 = mulx_u64(x11, x26);
+ uint64_t x433, uint8_t x434 = addcarryx_u64(0x0, x413, x415);
+ uint64_t x436, uint8_t x437 = addcarryx_u64(x434, x416, x418);
+ uint64_t x439, uint8_t x440 = addcarryx_u64(x437, x419, x421);
+ uint64_t x442, uint8_t x443 = addcarryx_u64(x440, x422, x424);
+ uint64_t x445, uint8_t x446 = addcarryx_u64(x443, x425, x427);
+ uint64_t x448, uint8_t x449 = addcarryx_u64(x446, x428, x430);
+ uint64_t x451, uint8_t _ = addcarryx_u64(0x0, x449, x431);
+ uint64_t x454, uint8_t x455 = addcarryx_u64(0x0, x390, x412);
+ uint64_t x457, uint8_t x458 = addcarryx_u64(x455, x393, x433);
+ uint64_t x460, uint8_t x461 = addcarryx_u64(x458, x396, x436);
+ uint64_t x463, uint8_t x464 = addcarryx_u64(x461, x399, x439);
+ uint64_t x466, uint8_t x467 = addcarryx_u64(x464, x402, x442);
+ uint64_t x469, uint8_t x470 = addcarryx_u64(x467, x405, x445);
+ uint64_t x472, uint8_t x473 = addcarryx_u64(x470, x408, x448);
+ uint64_t x475, uint8_t x476 = addcarryx_u64(x473, x410, x451);
+ uint64_t x478, uint64_t _ = mulx_u64(x454, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x481, uint64_t x482 = mulx_u64(x478, 0xffffffffffffffefL);
+ uint64_t x484, uint64_t x485 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x487, uint64_t x488 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x490, uint64_t x491 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x493, uint64_t x494 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x496, uint64_t x497 = mulx_u64(x478, 0xffffffffffffffffL);
+ uint64_t x499, uint64_t x500 = mulx_u64(x478, 0xfffffffffffffff);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(0x0, x482, x484);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x485, x487);
+ uint64_t x508, uint8_t x509 = addcarryx_u64(x506, x488, x490);
+ uint64_t x511, uint8_t x512 = addcarryx_u64(x509, x491, x493);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x494, x496);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x497, x499);
+ uint64_t x520, uint8_t _ = addcarryx_u64(0x0, x518, x500);
+ uint64_t _, uint8_t x524 = addcarryx_u64(0x0, x454, x481);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x457, x502);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x460, x505);
+ uint64_t x532, uint8_t x533 = addcarryx_u64(x530, x463, x508);
+ uint64_t x535, uint8_t x536 = addcarryx_u64(x533, x466, x511);
+ uint64_t x538, uint8_t x539 = addcarryx_u64(x536, x469, x514);
+ uint64_t x541, uint8_t x542 = addcarryx_u64(x539, x472, x517);
+ uint64_t x544, uint8_t x545 = addcarryx_u64(x542, x475, x520);
+ uint8_t x546 = (x545 + x476);
+ uint64_t x548, uint64_t x549 = mulx_u64(x13, x17);
+ uint64_t x551, uint64_t x552 = mulx_u64(x13, x19);
+ uint64_t x554, uint64_t x555 = mulx_u64(x13, x21);
+ uint64_t x557, uint64_t x558 = mulx_u64(x13, x23);
+ uint64_t x560, uint64_t x561 = mulx_u64(x13, x25);
+ uint64_t x563, uint64_t x564 = mulx_u64(x13, x27);
+ uint64_t x566, uint64_t x567 = mulx_u64(x13, x26);
+ uint64_t x569, uint8_t x570 = addcarryx_u64(0x0, x549, x551);
+ uint64_t x572, uint8_t x573 = addcarryx_u64(x570, x552, x554);
+ uint64_t x575, uint8_t x576 = addcarryx_u64(x573, x555, x557);
+ uint64_t x578, uint8_t x579 = addcarryx_u64(x576, x558, x560);
+ uint64_t x581, uint8_t x582 = addcarryx_u64(x579, x561, x563);
+ uint64_t x584, uint8_t x585 = addcarryx_u64(x582, x564, x566);
+ uint64_t x587, uint8_t _ = addcarryx_u64(0x0, x585, x567);
+ uint64_t x590, uint8_t x591 = addcarryx_u64(0x0, x526, x548);
+ uint64_t x593, uint8_t x594 = addcarryx_u64(x591, x529, x569);
+ uint64_t x596, uint8_t x597 = addcarryx_u64(x594, x532, x572);
+ uint64_t x599, uint8_t x600 = addcarryx_u64(x597, x535, x575);
+ uint64_t x602, uint8_t x603 = addcarryx_u64(x600, x538, x578);
+ uint64_t x605, uint8_t x606 = addcarryx_u64(x603, x541, x581);
+ uint64_t x608, uint8_t x609 = addcarryx_u64(x606, x544, x584);
+ uint64_t x611, uint8_t x612 = addcarryx_u64(x609, x546, x587);
+ uint64_t x614, uint64_t _ = mulx_u64(x590, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x617, uint64_t x618 = mulx_u64(x614, 0xffffffffffffffefL);
+ uint64_t x620, uint64_t x621 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x623, uint64_t x624 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x626, uint64_t x627 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x629, uint64_t x630 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x632, uint64_t x633 = mulx_u64(x614, 0xffffffffffffffffL);
+ uint64_t x635, uint64_t x636 = mulx_u64(x614, 0xfffffffffffffff);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(0x0, x618, x620);
+ uint64_t x641, uint8_t x642 = addcarryx_u64(x639, x621, x623);
+ uint64_t x644, uint8_t x645 = addcarryx_u64(x642, x624, x626);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x627, x629);
+ uint64_t x650, uint8_t x651 = addcarryx_u64(x648, x630, x632);
+ uint64_t x653, uint8_t x654 = addcarryx_u64(x651, x633, x635);
+ uint64_t x656, uint8_t _ = addcarryx_u64(0x0, x654, x636);
+ uint64_t _, uint8_t x660 = addcarryx_u64(0x0, x590, x617);
+ uint64_t x662, uint8_t x663 = addcarryx_u64(x660, x593, x638);
+ uint64_t x665, uint8_t x666 = addcarryx_u64(x663, x596, x641);
+ uint64_t x668, uint8_t x669 = addcarryx_u64(x666, x599, x644);
+ uint64_t x671, uint8_t x672 = addcarryx_u64(x669, x602, x647);
+ uint64_t x674, uint8_t x675 = addcarryx_u64(x672, x605, x650);
+ uint64_t x677, uint8_t x678 = addcarryx_u64(x675, x608, x653);
+ uint64_t x680, uint8_t x681 = addcarryx_u64(x678, x611, x656);
+ uint8_t x682 = (x681 + x612);
+ uint64_t x684, uint64_t x685 = mulx_u64(x15, x17);
+ uint64_t x687, uint64_t x688 = mulx_u64(x15, x19);
+ uint64_t x690, uint64_t x691 = mulx_u64(x15, x21);
+ uint64_t x693, uint64_t x694 = mulx_u64(x15, x23);
+ uint64_t x696, uint64_t x697 = mulx_u64(x15, x25);
+ uint64_t x699, uint64_t x700 = mulx_u64(x15, x27);
+ uint64_t x702, uint64_t x703 = mulx_u64(x15, x26);
+ uint64_t x705, uint8_t x706 = addcarryx_u64(0x0, x685, x687);
+ uint64_t x708, uint8_t x709 = addcarryx_u64(x706, x688, x690);
+ uint64_t x711, uint8_t x712 = addcarryx_u64(x709, x691, x693);
+ uint64_t x714, uint8_t x715 = addcarryx_u64(x712, x694, x696);
+ uint64_t x717, uint8_t x718 = addcarryx_u64(x715, x697, x699);
+ uint64_t x720, uint8_t x721 = addcarryx_u64(x718, x700, x702);
+ uint64_t x723, uint8_t _ = addcarryx_u64(0x0, x721, x703);
+ uint64_t x726, uint8_t x727 = addcarryx_u64(0x0, x662, x684);
+ uint64_t x729, uint8_t x730 = addcarryx_u64(x727, x665, x705);
+ uint64_t x732, uint8_t x733 = addcarryx_u64(x730, x668, x708);
+ uint64_t x735, uint8_t x736 = addcarryx_u64(x733, x671, x711);
+ uint64_t x738, uint8_t x739 = addcarryx_u64(x736, x674, x714);
+ uint64_t x741, uint8_t x742 = addcarryx_u64(x739, x677, x717);
+ uint64_t x744, uint8_t x745 = addcarryx_u64(x742, x680, x720);
+ uint64_t x747, uint8_t x748 = addcarryx_u64(x745, x682, x723);
+ uint64_t x750, uint64_t _ = mulx_u64(x726, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x753, uint64_t x754 = mulx_u64(x750, 0xffffffffffffffefL);
+ uint64_t x756, uint64_t x757 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x759, uint64_t x760 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x762, uint64_t x763 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x765, uint64_t x766 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x768, uint64_t x769 = mulx_u64(x750, 0xffffffffffffffffL);
+ uint64_t x771, uint64_t x772 = mulx_u64(x750, 0xfffffffffffffff);
+ uint64_t x774, uint8_t x775 = addcarryx_u64(0x0, x754, x756);
+ uint64_t x777, uint8_t x778 = addcarryx_u64(x775, x757, x759);
+ uint64_t x780, uint8_t x781 = addcarryx_u64(x778, x760, x762);
+ uint64_t x783, uint8_t x784 = addcarryx_u64(x781, x763, x765);
+ uint64_t x786, uint8_t x787 = addcarryx_u64(x784, x766, x768);
+ uint64_t x789, uint8_t x790 = addcarryx_u64(x787, x769, x771);
+ uint64_t x792, uint8_t _ = addcarryx_u64(0x0, x790, x772);
+ uint64_t _, uint8_t x796 = addcarryx_u64(0x0, x726, x753);
+ uint64_t x798, uint8_t x799 = addcarryx_u64(x796, x729, x774);
+ uint64_t x801, uint8_t x802 = addcarryx_u64(x799, x732, x777);
+ uint64_t x804, uint8_t x805 = addcarryx_u64(x802, x735, x780);
+ uint64_t x807, uint8_t x808 = addcarryx_u64(x805, x738, x783);
+ uint64_t x810, uint8_t x811 = addcarryx_u64(x808, x741, x786);
+ uint64_t x813, uint8_t x814 = addcarryx_u64(x811, x744, x789);
+ uint64_t x816, uint8_t x817 = addcarryx_u64(x814, x747, x792);
+ uint8_t x818 = (x817 + x748);
+ uint64_t x820, uint64_t x821 = mulx_u64(x14, x17);
+ uint64_t x823, uint64_t x824 = mulx_u64(x14, x19);
+ uint64_t x826, uint64_t x827 = mulx_u64(x14, x21);
+ uint64_t x829, uint64_t x830 = mulx_u64(x14, x23);
+ uint64_t x832, uint64_t x833 = mulx_u64(x14, x25);
+ uint64_t x835, uint64_t x836 = mulx_u64(x14, x27);
+ uint64_t x838, uint64_t x839 = mulx_u64(x14, x26);
+ uint64_t x841, uint8_t x842 = addcarryx_u64(0x0, x821, x823);
+ uint64_t x844, uint8_t x845 = addcarryx_u64(x842, x824, x826);
+ uint64_t x847, uint8_t x848 = addcarryx_u64(x845, x827, x829);
+ uint64_t x850, uint8_t x851 = addcarryx_u64(x848, x830, x832);
+ uint64_t x853, uint8_t x854 = addcarryx_u64(x851, x833, x835);
+ uint64_t x856, uint8_t x857 = addcarryx_u64(x854, x836, x838);
+ uint64_t x859, uint8_t _ = addcarryx_u64(0x0, x857, x839);
+ uint64_t x862, uint8_t x863 = addcarryx_u64(0x0, x798, x820);
+ uint64_t x865, uint8_t x866 = addcarryx_u64(x863, x801, x841);
+ uint64_t x868, uint8_t x869 = addcarryx_u64(x866, x804, x844);
+ uint64_t x871, uint8_t x872 = addcarryx_u64(x869, x807, x847);
+ uint64_t x874, uint8_t x875 = addcarryx_u64(x872, x810, x850);
+ uint64_t x877, uint8_t x878 = addcarryx_u64(x875, x813, x853);
+ uint64_t x880, uint8_t x881 = addcarryx_u64(x878, x816, x856);
+ uint64_t x883, uint8_t x884 = addcarryx_u64(x881, x818, x859);
+ uint64_t x886, uint64_t _ = mulx_u64(x862, 0xf0f0f0f0f0f0f0f1L);
+ uint64_t x889, uint64_t x890 = mulx_u64(x886, 0xffffffffffffffefL);
+ uint64_t x892, uint64_t x893 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x895, uint64_t x896 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x898, uint64_t x899 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x901, uint64_t x902 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x904, uint64_t x905 = mulx_u64(x886, 0xffffffffffffffffL);
+ uint64_t x907, uint64_t x908 = mulx_u64(x886, 0xfffffffffffffff);
+ uint64_t x910, uint8_t x911 = addcarryx_u64(0x0, x890, x892);
+ uint64_t x913, uint8_t x914 = addcarryx_u64(x911, x893, x895);
+ uint64_t x916, uint8_t x917 = addcarryx_u64(x914, x896, x898);
+ uint64_t x919, uint8_t x920 = addcarryx_u64(x917, x899, x901);
+ uint64_t x922, uint8_t x923 = addcarryx_u64(x920, x902, x904);
+ uint64_t x925, uint8_t x926 = addcarryx_u64(x923, x905, x907);
+ uint64_t x928, uint8_t _ = addcarryx_u64(0x0, x926, x908);
+ uint64_t _, uint8_t x932 = addcarryx_u64(0x0, x862, x889);
+ uint64_t x934, uint8_t x935 = addcarryx_u64(x932, x865, x910);
+ uint64_t x937, uint8_t x938 = addcarryx_u64(x935, x868, x913);
+ uint64_t x940, uint8_t x941 = addcarryx_u64(x938, x871, x916);
+ uint64_t x943, uint8_t x944 = addcarryx_u64(x941, x874, x919);
+ uint64_t x946, uint8_t x947 = addcarryx_u64(x944, x877, x922);
+ uint64_t x949, uint8_t x950 = addcarryx_u64(x947, x880, x925);
+ uint64_t x952, uint8_t x953 = addcarryx_u64(x950, x883, x928);
+ uint8_t x954 = (x953 + x884);
+ uint64_t x956, uint8_t x957 = subborrow_u64(0x0, x934, 0xffffffffffffffefL);
+ uint64_t x959, uint8_t x960 = subborrow_u64(x957, x937, 0xffffffffffffffffL);
+ uint64_t x962, uint8_t x963 = subborrow_u64(x960, x940, 0xffffffffffffffffL);
+ uint64_t x965, uint8_t x966 = subborrow_u64(x963, x943, 0xffffffffffffffffL);
+ uint64_t x968, uint8_t x969 = subborrow_u64(x966, x946, 0xffffffffffffffffL);
+ uint64_t x971, uint8_t x972 = subborrow_u64(x969, x949, 0xffffffffffffffffL);
+ uint64_t x974, uint8_t x975 = subborrow_u64(x972, x952, 0xfffffffffffffff);
+ uint64_t _, uint8_t x978 = subborrow_u64(x975, x954, 0x0);
+ uint64_t x979 = cmovznz(x978, x974, x952);
+ uint64_t x980 = cmovznz(x978, x971, x949);
+ uint64_t x981 = cmovznz(x978, x968, x946);
+ uint64_t x982 = cmovznz(x978, x965, x943);
+ uint64_t x983 = cmovznz(x978, x962, x940);
+ uint64_t x984 = cmovznz(x978, x959, x937);
+ uint64_t x985 = cmovznz(x978, x956, x934);
+ return (x979, x980, x981, x982, x983, x984, x985))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e444m17/feoppDisplay.log b/src/Specific/montgomery64_2e444m17/feoppDisplay.log
new file mode 100644
index 000000000..de7df3687
--- /dev/null
+++ b/src/Specific/montgomery64_2e444m17/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x14, uint8_t x15 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x4);
+ uint64_t x20, uint8_t x21 = subborrow_u64(x18, 0x0, x6);
+ uint64_t x23, uint8_t x24 = subborrow_u64(x21, 0x0, x8);
+ uint64_t x26, uint8_t x27 = subborrow_u64(x24, 0x0, x10);
+ uint64_t x29, uint8_t x30 = subborrow_u64(x27, 0x0, x12);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, 0x0, x11);
+ uint64_t x34 = (uint64_t)cmovznz(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & 0xffffffffffffffefL);
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x14, x35);
+ uint64_t x39 = (x34 & 0xffffffffffffffffL);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x38, x17, x39);
+ uint64_t x43 = (x34 & 0xffffffffffffffffL);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x42, x20, x43);
+ uint64_t x47 = (x34 & 0xffffffffffffffffL);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x46, x23, x47);
+ uint64_t x51 = (x34 & 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x50, x26, x51);
+ uint64_t x55 = (x34 & 0xffffffffffffffffL);
+ uint64_t x57, uint8_t x58 = addcarryx_u64(x54, x29, x55);
+ uint64_t x59 = (x34 & 0xfffffffffffffff);
+ uint64_t x61, uint8_t _ = addcarryx_u64(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e444m17/fesubDisplay.log b/src/Specific/montgomery64_2e444m17/fesubDisplay.log
new file mode 100644
index 000000000..3466e5141
--- /dev/null
+++ b/src/Specific/montgomery64_2e444m17/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = subborrow_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = subborrow_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = subborrow_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = subborrow_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = subborrow_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = subborrow_u64(x45, x14, x26);
+ uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffffffffffefL);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(0x0, x29, x50);
+ uint64_t x54 = (x49 & 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x53, x32, x54);
+ uint64_t x58 = (x49 & 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = addcarryx_u64(x57, x35, x58);
+ uint64_t x62 = (x49 & 0xffffffffffffffffL);
+ uint64_t x64, uint8_t x65 = addcarryx_u64(x61, x38, x62);
+ uint64_t x66 = (x49 & 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = addcarryx_u64(x65, x41, x66);
+ uint64_t x70 = (x49 & 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = addcarryx_u64(x69, x44, x70);
+ uint64_t x74 = (x49 & 0xfffffffffffffff);
+ uint64_t x76, uint8_t _ = addcarryx_u64(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e448m2e224m1/feaddDisplay.log b/src/Specific/montgomery64_2e448m2e224m1/feaddDisplay.log
index 90dd2f368..566d9f75c 100644
--- a/src/Specific/montgomery64_2e448m2e224m1/feaddDisplay.log
+++ b/src/Specific/montgomery64_2e448m2e224m1/feaddDisplay.log
@@ -12,7 +12,7 @@ Interp-η
uint64_t x50, uint8_t x51 = subborrow_u64(0x0, x29, 0xffffffffffffffffL);
uint64_t x53, uint8_t x54 = subborrow_u64(x51, x32, 0xffffffffffffffffL);
uint64_t x56, uint8_t x57 = subborrow_u64(x54, x35, 0xffffffffffffffffL);
- uint64_t x59, uint8_t x60 = subborrow_u64(x57, x38, Const 18446744069414584319);
+ uint64_t x59, uint8_t x60 = subborrow_u64(x57, x38, 0xfffffffeffffffffL);
uint64_t x62, uint8_t x63 = subborrow_u64(x60, x41, 0xffffffffffffffffL);
uint64_t x65, uint8_t x66 = subborrow_u64(x63, x44, 0xffffffffffffffffL);
uint64_t x68, uint8_t x69 = subborrow_u64(x66, x47, 0xffffffffffffffffL);
diff --git a/src/Specific/montgomery64_2e448m2e224m1/femulDisplay.log b/src/Specific/montgomery64_2e448m2e224m1/femulDisplay.log
new file mode 100644
index 000000000..9540c04d8
--- /dev/null
+++ b/src/Specific/montgomery64_2e448m2e224m1/femulDisplay.log
@@ -0,0 +1,328 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint64_t x30 = mulx_u64(x5, x17);
+ uint64_t x32, uint64_t x33 = mulx_u64(x5, x19);
+ uint64_t x35, uint64_t x36 = mulx_u64(x5, x21);
+ uint64_t x38, uint64_t x39 = mulx_u64(x5, x23);
+ uint64_t x41, uint64_t x42 = mulx_u64(x5, x25);
+ uint64_t x44, uint64_t x45 = mulx_u64(x5, x27);
+ uint64_t x47, uint64_t x48 = mulx_u64(x5, x26);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(0x0, x30, x32);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x51, x33, x35);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x54, x36, x38);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(x57, x39, x41);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x60, x42, x44);
+ uint64_t x65, uint8_t x66 = addcarryx_u64(x63, x45, x47);
+ uint64_t x68, uint8_t _ = addcarryx_u64(0x0, x66, x48);
+ uint64_t x71, uint64_t x72 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x74, uint64_t x75 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x77, uint64_t x78 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x80, uint64_t x81 = mulx_u64(x29, 0xfffffffeffffffffL);
+ uint64_t x83, uint64_t x84 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x86, uint64_t x87 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x89, uint64_t x90 = mulx_u64(x29, 0xffffffffffffffffL);
+ uint64_t x92, uint8_t x93 = addcarryx_u64(0x0, x72, x74);
+ uint64_t x95, uint8_t x96 = addcarryx_u64(x93, x75, x77);
+ uint64_t x98, uint8_t x99 = addcarryx_u64(x96, x78, x80);
+ uint64_t x101, uint8_t x102 = addcarryx_u64(x99, x81, x83);
+ uint64_t x104, uint8_t x105 = addcarryx_u64(x102, x84, x86);
+ uint64_t x107, uint8_t x108 = addcarryx_u64(x105, x87, x89);
+ uint64_t x110, uint8_t _ = addcarryx_u64(0x0, x108, x90);
+ uint64_t _, uint8_t x114 = addcarryx_u64(0x0, x29, x71);
+ uint64_t x116, uint8_t x117 = addcarryx_u64(x114, x50, x92);
+ uint64_t x119, uint8_t x120 = addcarryx_u64(x117, x53, x95);
+ uint64_t x122, uint8_t x123 = addcarryx_u64(x120, x56, x98);
+ uint64_t x125, uint8_t x126 = addcarryx_u64(x123, x59, x101);
+ uint64_t x128, uint8_t x129 = addcarryx_u64(x126, x62, x104);
+ uint64_t x131, uint8_t x132 = addcarryx_u64(x129, x65, x107);
+ uint64_t x134, uint8_t x135 = addcarryx_u64(x132, x68, x110);
+ uint64_t x137, uint64_t x138 = mulx_u64(x7, x17);
+ uint64_t x140, uint64_t x141 = mulx_u64(x7, x19);
+ uint64_t x143, uint64_t x144 = mulx_u64(x7, x21);
+ uint64_t x146, uint64_t x147 = mulx_u64(x7, x23);
+ uint64_t x149, uint64_t x150 = mulx_u64(x7, x25);
+ uint64_t x152, uint64_t x153 = mulx_u64(x7, x27);
+ uint64_t x155, uint64_t x156 = mulx_u64(x7, x26);
+ uint64_t x158, uint8_t x159 = addcarryx_u64(0x0, x138, x140);
+ uint64_t x161, uint8_t x162 = addcarryx_u64(x159, x141, x143);
+ uint64_t x164, uint8_t x165 = addcarryx_u64(x162, x144, x146);
+ uint64_t x167, uint8_t x168 = addcarryx_u64(x165, x147, x149);
+ uint64_t x170, uint8_t x171 = addcarryx_u64(x168, x150, x152);
+ uint64_t x173, uint8_t x174 = addcarryx_u64(x171, x153, x155);
+ uint64_t x176, uint8_t _ = addcarryx_u64(0x0, x174, x156);
+ uint64_t x179, uint8_t x180 = addcarryx_u64(0x0, x116, x137);
+ uint64_t x182, uint8_t x183 = addcarryx_u64(x180, x119, x158);
+ uint64_t x185, uint8_t x186 = addcarryx_u64(x183, x122, x161);
+ uint64_t x188, uint8_t x189 = addcarryx_u64(x186, x125, x164);
+ uint64_t x191, uint8_t x192 = addcarryx_u64(x189, x128, x167);
+ uint64_t x194, uint8_t x195 = addcarryx_u64(x192, x131, x170);
+ uint64_t x197, uint8_t x198 = addcarryx_u64(x195, x134, x173);
+ uint64_t x200, uint8_t x201 = addcarryx_u64(x198, x135, x176);
+ uint64_t x203, uint64_t x204 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x206, uint64_t x207 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x209, uint64_t x210 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x212, uint64_t x213 = mulx_u64(x179, 0xfffffffeffffffffL);
+ uint64_t x215, uint64_t x216 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x218, uint64_t x219 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x221, uint64_t x222 = mulx_u64(x179, 0xffffffffffffffffL);
+ uint64_t x224, uint8_t x225 = addcarryx_u64(0x0, x204, x206);
+ uint64_t x227, uint8_t x228 = addcarryx_u64(x225, x207, x209);
+ uint64_t x230, uint8_t x231 = addcarryx_u64(x228, x210, x212);
+ uint64_t x233, uint8_t x234 = addcarryx_u64(x231, x213, x215);
+ uint64_t x236, uint8_t x237 = addcarryx_u64(x234, x216, x218);
+ uint64_t x239, uint8_t x240 = addcarryx_u64(x237, x219, x221);
+ uint64_t x242, uint8_t _ = addcarryx_u64(0x0, x240, x222);
+ uint64_t _, uint8_t x246 = addcarryx_u64(0x0, x179, x203);
+ uint64_t x248, uint8_t x249 = addcarryx_u64(x246, x182, x224);
+ uint64_t x251, uint8_t x252 = addcarryx_u64(x249, x185, x227);
+ uint64_t x254, uint8_t x255 = addcarryx_u64(x252, x188, x230);
+ uint64_t x257, uint8_t x258 = addcarryx_u64(x255, x191, x233);
+ uint64_t x260, uint8_t x261 = addcarryx_u64(x258, x194, x236);
+ uint64_t x263, uint8_t x264 = addcarryx_u64(x261, x197, x239);
+ uint64_t x266, uint8_t x267 = addcarryx_u64(x264, x200, x242);
+ uint8_t x268 = (x267 + x201);
+ uint64_t x270, uint64_t x271 = mulx_u64(x9, x17);
+ uint64_t x273, uint64_t x274 = mulx_u64(x9, x19);
+ uint64_t x276, uint64_t x277 = mulx_u64(x9, x21);
+ uint64_t x279, uint64_t x280 = mulx_u64(x9, x23);
+ uint64_t x282, uint64_t x283 = mulx_u64(x9, x25);
+ uint64_t x285, uint64_t x286 = mulx_u64(x9, x27);
+ uint64_t x288, uint64_t x289 = mulx_u64(x9, x26);
+ uint64_t x291, uint8_t x292 = addcarryx_u64(0x0, x271, x273);
+ uint64_t x294, uint8_t x295 = addcarryx_u64(x292, x274, x276);
+ uint64_t x297, uint8_t x298 = addcarryx_u64(x295, x277, x279);
+ uint64_t x300, uint8_t x301 = addcarryx_u64(x298, x280, x282);
+ uint64_t x303, uint8_t x304 = addcarryx_u64(x301, x283, x285);
+ uint64_t x306, uint8_t x307 = addcarryx_u64(x304, x286, x288);
+ uint64_t x309, uint8_t _ = addcarryx_u64(0x0, x307, x289);
+ uint64_t x312, uint8_t x313 = addcarryx_u64(0x0, x248, x270);
+ uint64_t x315, uint8_t x316 = addcarryx_u64(x313, x251, x291);
+ uint64_t x318, uint8_t x319 = addcarryx_u64(x316, x254, x294);
+ uint64_t x321, uint8_t x322 = addcarryx_u64(x319, x257, x297);
+ uint64_t x324, uint8_t x325 = addcarryx_u64(x322, x260, x300);
+ uint64_t x327, uint8_t x328 = addcarryx_u64(x325, x263, x303);
+ uint64_t x330, uint8_t x331 = addcarryx_u64(x328, x266, x306);
+ uint64_t x333, uint8_t x334 = addcarryx_u64(x331, x268, x309);
+ uint64_t x336, uint64_t x337 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x339, uint64_t x340 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x342, uint64_t x343 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x345, uint64_t x346 = mulx_u64(x312, 0xfffffffeffffffffL);
+ uint64_t x348, uint64_t x349 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x351, uint64_t x352 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x354, uint64_t x355 = mulx_u64(x312, 0xffffffffffffffffL);
+ uint64_t x357, uint8_t x358 = addcarryx_u64(0x0, x337, x339);
+ uint64_t x360, uint8_t x361 = addcarryx_u64(x358, x340, x342);
+ uint64_t x363, uint8_t x364 = addcarryx_u64(x361, x343, x345);
+ uint64_t x366, uint8_t x367 = addcarryx_u64(x364, x346, x348);
+ uint64_t x369, uint8_t x370 = addcarryx_u64(x367, x349, x351);
+ uint64_t x372, uint8_t x373 = addcarryx_u64(x370, x352, x354);
+ uint64_t x375, uint8_t _ = addcarryx_u64(0x0, x373, x355);
+ uint64_t _, uint8_t x379 = addcarryx_u64(0x0, x312, x336);
+ uint64_t x381, uint8_t x382 = addcarryx_u64(x379, x315, x357);
+ uint64_t x384, uint8_t x385 = addcarryx_u64(x382, x318, x360);
+ uint64_t x387, uint8_t x388 = addcarryx_u64(x385, x321, x363);
+ uint64_t x390, uint8_t x391 = addcarryx_u64(x388, x324, x366);
+ uint64_t x393, uint8_t x394 = addcarryx_u64(x391, x327, x369);
+ uint64_t x396, uint8_t x397 = addcarryx_u64(x394, x330, x372);
+ uint64_t x399, uint8_t x400 = addcarryx_u64(x397, x333, x375);
+ uint8_t x401 = (x400 + x334);
+ uint64_t x403, uint64_t x404 = mulx_u64(x11, x17);
+ uint64_t x406, uint64_t x407 = mulx_u64(x11, x19);
+ uint64_t x409, uint64_t x410 = mulx_u64(x11, x21);
+ uint64_t x412, uint64_t x413 = mulx_u64(x11, x23);
+ uint64_t x415, uint64_t x416 = mulx_u64(x11, x25);
+ uint64_t x418, uint64_t x419 = mulx_u64(x11, x27);
+ uint64_t x421, uint64_t x422 = mulx_u64(x11, x26);
+ uint64_t x424, uint8_t x425 = addcarryx_u64(0x0, x404, x406);
+ uint64_t x427, uint8_t x428 = addcarryx_u64(x425, x407, x409);
+ uint64_t x430, uint8_t x431 = addcarryx_u64(x428, x410, x412);
+ uint64_t x433, uint8_t x434 = addcarryx_u64(x431, x413, x415);
+ uint64_t x436, uint8_t x437 = addcarryx_u64(x434, x416, x418);
+ uint64_t x439, uint8_t x440 = addcarryx_u64(x437, x419, x421);
+ uint64_t x442, uint8_t _ = addcarryx_u64(0x0, x440, x422);
+ uint64_t x445, uint8_t x446 = addcarryx_u64(0x0, x381, x403);
+ uint64_t x448, uint8_t x449 = addcarryx_u64(x446, x384, x424);
+ uint64_t x451, uint8_t x452 = addcarryx_u64(x449, x387, x427);
+ uint64_t x454, uint8_t x455 = addcarryx_u64(x452, x390, x430);
+ uint64_t x457, uint8_t x458 = addcarryx_u64(x455, x393, x433);
+ uint64_t x460, uint8_t x461 = addcarryx_u64(x458, x396, x436);
+ uint64_t x463, uint8_t x464 = addcarryx_u64(x461, x399, x439);
+ uint64_t x466, uint8_t x467 = addcarryx_u64(x464, x401, x442);
+ uint64_t x469, uint64_t x470 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x472, uint64_t x473 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x475, uint64_t x476 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x478, uint64_t x479 = mulx_u64(x445, 0xfffffffeffffffffL);
+ uint64_t x481, uint64_t x482 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x484, uint64_t x485 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x487, uint64_t x488 = mulx_u64(x445, 0xffffffffffffffffL);
+ uint64_t x490, uint8_t x491 = addcarryx_u64(0x0, x470, x472);
+ uint64_t x493, uint8_t x494 = addcarryx_u64(x491, x473, x475);
+ uint64_t x496, uint8_t x497 = addcarryx_u64(x494, x476, x478);
+ uint64_t x499, uint8_t x500 = addcarryx_u64(x497, x479, x481);
+ uint64_t x502, uint8_t x503 = addcarryx_u64(x500, x482, x484);
+ uint64_t x505, uint8_t x506 = addcarryx_u64(x503, x485, x487);
+ uint64_t x508, uint8_t _ = addcarryx_u64(0x0, x506, x488);
+ uint64_t _, uint8_t x512 = addcarryx_u64(0x0, x445, x469);
+ uint64_t x514, uint8_t x515 = addcarryx_u64(x512, x448, x490);
+ uint64_t x517, uint8_t x518 = addcarryx_u64(x515, x451, x493);
+ uint64_t x520, uint8_t x521 = addcarryx_u64(x518, x454, x496);
+ uint64_t x523, uint8_t x524 = addcarryx_u64(x521, x457, x499);
+ uint64_t x526, uint8_t x527 = addcarryx_u64(x524, x460, x502);
+ uint64_t x529, uint8_t x530 = addcarryx_u64(x527, x463, x505);
+ uint64_t x532, uint8_t x533 = addcarryx_u64(x530, x466, x508);
+ uint8_t x534 = (x533 + x467);
+ uint64_t x536, uint64_t x537 = mulx_u64(x13, x17);
+ uint64_t x539, uint64_t x540 = mulx_u64(x13, x19);
+ uint64_t x542, uint64_t x543 = mulx_u64(x13, x21);
+ uint64_t x545, uint64_t x546 = mulx_u64(x13, x23);
+ uint64_t x548, uint64_t x549 = mulx_u64(x13, x25);
+ uint64_t x551, uint64_t x552 = mulx_u64(x13, x27);
+ uint64_t x554, uint64_t x555 = mulx_u64(x13, x26);
+ uint64_t x557, uint8_t x558 = addcarryx_u64(0x0, x537, x539);
+ uint64_t x560, uint8_t x561 = addcarryx_u64(x558, x540, x542);
+ uint64_t x563, uint8_t x564 = addcarryx_u64(x561, x543, x545);
+ uint64_t x566, uint8_t x567 = addcarryx_u64(x564, x546, x548);
+ uint64_t x569, uint8_t x570 = addcarryx_u64(x567, x549, x551);
+ uint64_t x572, uint8_t x573 = addcarryx_u64(x570, x552, x554);
+ uint64_t x575, uint8_t _ = addcarryx_u64(0x0, x573, x555);
+ uint64_t x578, uint8_t x579 = addcarryx_u64(0x0, x514, x536);
+ uint64_t x581, uint8_t x582 = addcarryx_u64(x579, x517, x557);
+ uint64_t x584, uint8_t x585 = addcarryx_u64(x582, x520, x560);
+ uint64_t x587, uint8_t x588 = addcarryx_u64(x585, x523, x563);
+ uint64_t x590, uint8_t x591 = addcarryx_u64(x588, x526, x566);
+ uint64_t x593, uint8_t x594 = addcarryx_u64(x591, x529, x569);
+ uint64_t x596, uint8_t x597 = addcarryx_u64(x594, x532, x572);
+ uint64_t x599, uint8_t x600 = addcarryx_u64(x597, x534, x575);
+ uint64_t x602, uint64_t x603 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x605, uint64_t x606 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x608, uint64_t x609 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x611, uint64_t x612 = mulx_u64(x578, 0xfffffffeffffffffL);
+ uint64_t x614, uint64_t x615 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x617, uint64_t x618 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x620, uint64_t x621 = mulx_u64(x578, 0xffffffffffffffffL);
+ uint64_t x623, uint8_t x624 = addcarryx_u64(0x0, x603, x605);
+ uint64_t x626, uint8_t x627 = addcarryx_u64(x624, x606, x608);
+ uint64_t x629, uint8_t x630 = addcarryx_u64(x627, x609, x611);
+ uint64_t x632, uint8_t x633 = addcarryx_u64(x630, x612, x614);
+ uint64_t x635, uint8_t x636 = addcarryx_u64(x633, x615, x617);
+ uint64_t x638, uint8_t x639 = addcarryx_u64(x636, x618, x620);
+ uint64_t x641, uint8_t _ = addcarryx_u64(0x0, x639, x621);
+ uint64_t _, uint8_t x645 = addcarryx_u64(0x0, x578, x602);
+ uint64_t x647, uint8_t x648 = addcarryx_u64(x645, x581, x623);
+ uint64_t x650, uint8_t x651 = addcarryx_u64(x648, x584, x626);
+ uint64_t x653, uint8_t x654 = addcarryx_u64(x651, x587, x629);
+ uint64_t x656, uint8_t x657 = addcarryx_u64(x654, x590, x632);
+ uint64_t x659, uint8_t x660 = addcarryx_u64(x657, x593, x635);
+ uint64_t x662, uint8_t x663 = addcarryx_u64(x660, x596, x638);
+ uint64_t x665, uint8_t x666 = addcarryx_u64(x663, x599, x641);
+ uint8_t x667 = (x666 + x600);
+ uint64_t x669, uint64_t x670 = mulx_u64(x15, x17);
+ uint64_t x672, uint64_t x673 = mulx_u64(x15, x19);
+ uint64_t x675, uint64_t x676 = mulx_u64(x15, x21);
+ uint64_t x678, uint64_t x679 = mulx_u64(x15, x23);
+ uint64_t x681, uint64_t x682 = mulx_u64(x15, x25);
+ uint64_t x684, uint64_t x685 = mulx_u64(x15, x27);
+ uint64_t x687, uint64_t x688 = mulx_u64(x15, x26);
+ uint64_t x690, uint8_t x691 = addcarryx_u64(0x0, x670, x672);
+ uint64_t x693, uint8_t x694 = addcarryx_u64(x691, x673, x675);
+ uint64_t x696, uint8_t x697 = addcarryx_u64(x694, x676, x678);
+ uint64_t x699, uint8_t x700 = addcarryx_u64(x697, x679, x681);
+ uint64_t x702, uint8_t x703 = addcarryx_u64(x700, x682, x684);
+ uint64_t x705, uint8_t x706 = addcarryx_u64(x703, x685, x687);
+ uint64_t x708, uint8_t _ = addcarryx_u64(0x0, x706, x688);
+ uint64_t x711, uint8_t x712 = addcarryx_u64(0x0, x647, x669);
+ uint64_t x714, uint8_t x715 = addcarryx_u64(x712, x650, x690);
+ uint64_t x717, uint8_t x718 = addcarryx_u64(x715, x653, x693);
+ uint64_t x720, uint8_t x721 = addcarryx_u64(x718, x656, x696);
+ uint64_t x723, uint8_t x724 = addcarryx_u64(x721, x659, x699);
+ uint64_t x726, uint8_t x727 = addcarryx_u64(x724, x662, x702);
+ uint64_t x729, uint8_t x730 = addcarryx_u64(x727, x665, x705);
+ uint64_t x732, uint8_t x733 = addcarryx_u64(x730, x667, x708);
+ uint64_t x735, uint64_t x736 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x738, uint64_t x739 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x741, uint64_t x742 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x744, uint64_t x745 = mulx_u64(x711, 0xfffffffeffffffffL);
+ uint64_t x747, uint64_t x748 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x750, uint64_t x751 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x753, uint64_t x754 = mulx_u64(x711, 0xffffffffffffffffL);
+ uint64_t x756, uint8_t x757 = addcarryx_u64(0x0, x736, x738);
+ uint64_t x759, uint8_t x760 = addcarryx_u64(x757, x739, x741);
+ uint64_t x762, uint8_t x763 = addcarryx_u64(x760, x742, x744);
+ uint64_t x765, uint8_t x766 = addcarryx_u64(x763, x745, x747);
+ uint64_t x768, uint8_t x769 = addcarryx_u64(x766, x748, x750);
+ uint64_t x771, uint8_t x772 = addcarryx_u64(x769, x751, x753);
+ uint64_t x774, uint8_t _ = addcarryx_u64(0x0, x772, x754);
+ uint64_t _, uint8_t x778 = addcarryx_u64(0x0, x711, x735);
+ uint64_t x780, uint8_t x781 = addcarryx_u64(x778, x714, x756);
+ uint64_t x783, uint8_t x784 = addcarryx_u64(x781, x717, x759);
+ uint64_t x786, uint8_t x787 = addcarryx_u64(x784, x720, x762);
+ uint64_t x789, uint8_t x790 = addcarryx_u64(x787, x723, x765);
+ uint64_t x792, uint8_t x793 = addcarryx_u64(x790, x726, x768);
+ uint64_t x795, uint8_t x796 = addcarryx_u64(x793, x729, x771);
+ uint64_t x798, uint8_t x799 = addcarryx_u64(x796, x732, x774);
+ uint8_t x800 = (x799 + x733);
+ uint64_t x802, uint64_t x803 = mulx_u64(x14, x17);
+ uint64_t x805, uint64_t x806 = mulx_u64(x14, x19);
+ uint64_t x808, uint64_t x809 = mulx_u64(x14, x21);
+ uint64_t x811, uint64_t x812 = mulx_u64(x14, x23);
+ uint64_t x814, uint64_t x815 = mulx_u64(x14, x25);
+ uint64_t x817, uint64_t x818 = mulx_u64(x14, x27);
+ uint64_t x820, uint64_t x821 = mulx_u64(x14, x26);
+ uint64_t x823, uint8_t x824 = addcarryx_u64(0x0, x803, x805);
+ uint64_t x826, uint8_t x827 = addcarryx_u64(x824, x806, x808);
+ uint64_t x829, uint8_t x830 = addcarryx_u64(x827, x809, x811);
+ uint64_t x832, uint8_t x833 = addcarryx_u64(x830, x812, x814);
+ uint64_t x835, uint8_t x836 = addcarryx_u64(x833, x815, x817);
+ uint64_t x838, uint8_t x839 = addcarryx_u64(x836, x818, x820);
+ uint64_t x841, uint8_t _ = addcarryx_u64(0x0, x839, x821);
+ uint64_t x844, uint8_t x845 = addcarryx_u64(0x0, x780, x802);
+ uint64_t x847, uint8_t x848 = addcarryx_u64(x845, x783, x823);
+ uint64_t x850, uint8_t x851 = addcarryx_u64(x848, x786, x826);
+ uint64_t x853, uint8_t x854 = addcarryx_u64(x851, x789, x829);
+ uint64_t x856, uint8_t x857 = addcarryx_u64(x854, x792, x832);
+ uint64_t x859, uint8_t x860 = addcarryx_u64(x857, x795, x835);
+ uint64_t x862, uint8_t x863 = addcarryx_u64(x860, x798, x838);
+ uint64_t x865, uint8_t x866 = addcarryx_u64(x863, x800, x841);
+ uint64_t x868, uint64_t x869 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x871, uint64_t x872 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x874, uint64_t x875 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x877, uint64_t x878 = mulx_u64(x844, 0xfffffffeffffffffL);
+ uint64_t x880, uint64_t x881 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x883, uint64_t x884 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x886, uint64_t x887 = mulx_u64(x844, 0xffffffffffffffffL);
+ uint64_t x889, uint8_t x890 = addcarryx_u64(0x0, x869, x871);
+ uint64_t x892, uint8_t x893 = addcarryx_u64(x890, x872, x874);
+ uint64_t x895, uint8_t x896 = addcarryx_u64(x893, x875, x877);
+ uint64_t x898, uint8_t x899 = addcarryx_u64(x896, x878, x880);
+ uint64_t x901, uint8_t x902 = addcarryx_u64(x899, x881, x883);
+ uint64_t x904, uint8_t x905 = addcarryx_u64(x902, x884, x886);
+ uint64_t x907, uint8_t _ = addcarryx_u64(0x0, x905, x887);
+ uint64_t _, uint8_t x911 = addcarryx_u64(0x0, x844, x868);
+ uint64_t x913, uint8_t x914 = addcarryx_u64(x911, x847, x889);
+ uint64_t x916, uint8_t x917 = addcarryx_u64(x914, x850, x892);
+ uint64_t x919, uint8_t x920 = addcarryx_u64(x917, x853, x895);
+ uint64_t x922, uint8_t x923 = addcarryx_u64(x920, x856, x898);
+ uint64_t x925, uint8_t x926 = addcarryx_u64(x923, x859, x901);
+ uint64_t x928, uint8_t x929 = addcarryx_u64(x926, x862, x904);
+ uint64_t x931, uint8_t x932 = addcarryx_u64(x929, x865, x907);
+ uint8_t x933 = (x932 + x866);
+ uint64_t x935, uint8_t x936 = subborrow_u64(0x0, x913, 0xffffffffffffffffL);
+ uint64_t x938, uint8_t x939 = subborrow_u64(x936, x916, 0xffffffffffffffffL);
+ uint64_t x941, uint8_t x942 = subborrow_u64(x939, x919, 0xffffffffffffffffL);
+ uint64_t x944, uint8_t x945 = subborrow_u64(x942, x922, 0xfffffffeffffffffL);
+ uint64_t x947, uint8_t x948 = subborrow_u64(x945, x925, 0xffffffffffffffffL);
+ uint64_t x950, uint8_t x951 = subborrow_u64(x948, x928, 0xffffffffffffffffL);
+ uint64_t x953, uint8_t x954 = subborrow_u64(x951, x931, 0xffffffffffffffffL);
+ uint64_t _, uint8_t x957 = subborrow_u64(x954, x933, 0x0);
+ uint64_t x958 = cmovznz(x957, x953, x931);
+ uint64_t x959 = cmovznz(x957, x950, x928);
+ uint64_t x960 = cmovznz(x957, x947, x925);
+ uint64_t x961 = cmovznz(x957, x944, x922);
+ uint64_t x962 = cmovznz(x957, x941, x919);
+ uint64_t x963 = cmovznz(x957, x938, x916);
+ uint64_t x964 = cmovznz(x957, x935, x913);
+ return (x958, x959, x960, x961, x962, x963, x964))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e448m2e224m1/feoppDisplay.log b/src/Specific/montgomery64_2e448m2e224m1/feoppDisplay.log
new file mode 100644
index 000000000..1f8c31dca
--- /dev/null
+++ b/src/Specific/montgomery64_2e448m2e224m1/feoppDisplay.log
@@ -0,0 +1,29 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x14, uint8_t x15 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x4);
+ uint64_t x20, uint8_t x21 = subborrow_u64(x18, 0x0, x6);
+ uint64_t x23, uint8_t x24 = subborrow_u64(x21, 0x0, x8);
+ uint64_t x26, uint8_t x27 = subborrow_u64(x24, 0x0, x10);
+ uint64_t x29, uint8_t x30 = subborrow_u64(x27, 0x0, x12);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, 0x0, x11);
+ uint64_t x34 = (uint64_t)cmovznz(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & 0xffffffffffffffffL);
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x14, x35);
+ uint64_t x39 = (x34 & 0xffffffffffffffffL);
+ uint64_t x41, uint8_t x42 = addcarryx_u64(x38, x17, x39);
+ uint64_t x43 = (x34 & 0xffffffffffffffffL);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x42, x20, x43);
+ uint64_t x47 = (x34 & 0xfffffffeffffffffL);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x46, x23, x47);
+ uint64_t x51 = (x34 & 0xffffffffffffffffL);
+ uint64_t x53, uint8_t x54 = addcarryx_u64(x50, x26, x51);
+ uint64_t x55 = (x34 & 0xffffffffffffffffL);
+ uint64_t x57, uint8_t x58 = addcarryx_u64(x54, x29, x55);
+ uint64_t x59 = (x34 & 0xffffffffffffffffL);
+ uint64_t x61, uint8_t _ = addcarryx_u64(x58, x32, x59);
+ (Return x61, Return x57, Return x53, Return x49, Return x45, Return x41, Return x37))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e448m2e224m1/fesubDisplay.log b/src/Specific/montgomery64_2e448m2e224m1/fesubDisplay.log
new file mode 100644
index 000000000..38b616606
--- /dev/null
+++ b/src/Specific/montgomery64_2e448m2e224m1/fesubDisplay.log
@@ -0,0 +1,29 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
+ uint64_t x29, uint8_t x30 = subborrow_u64(0x0, x5, x17);
+ uint64_t x32, uint8_t x33 = subborrow_u64(x30, x7, x19);
+ uint64_t x35, uint8_t x36 = subborrow_u64(x33, x9, x21);
+ uint64_t x38, uint8_t x39 = subborrow_u64(x36, x11, x23);
+ uint64_t x41, uint8_t x42 = subborrow_u64(x39, x13, x25);
+ uint64_t x44, uint8_t x45 = subborrow_u64(x42, x15, x27);
+ uint64_t x47, uint8_t x48 = subborrow_u64(x45, x14, x26);
+ uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffffffffffffL);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(0x0, x29, x50);
+ uint64_t x54 = (x49 & 0xffffffffffffffffL);
+ uint64_t x56, uint8_t x57 = addcarryx_u64(x53, x32, x54);
+ uint64_t x58 = (x49 & 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = addcarryx_u64(x57, x35, x58);
+ uint64_t x62 = (x49 & 0xfffffffeffffffffL);
+ uint64_t x64, uint8_t x65 = addcarryx_u64(x61, x38, x62);
+ uint64_t x66 = (x49 & 0xffffffffffffffffL);
+ uint64_t x68, uint8_t x69 = addcarryx_u64(x65, x41, x66);
+ uint64_t x70 = (x49 & 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = addcarryx_u64(x69, x44, x70);
+ uint64_t x74 = (x49 & 0xffffffffffffffffL);
+ uint64_t x76, uint8_t _ = addcarryx_u64(x73, x47, x74);
+ (Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+(x, x0)%core
+ : 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)
diff --git a/src/Specific/montgomery64_2e450m2e225m1/feaddDisplay.log b/src/Specific/montgomery64_2e450m2e225m1/feaddDisplay.log
new file mode 100644
index 000000000..7f8f7d912
--- /dev/null
+++ b/src/Specific/montgomery64_2e450m2e225m1/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xfffffffdffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0x3);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e450m2e225m1/feoppDisplay.log b/src/Specific/montgomery64_2e450m2e225m1/feoppDisplay.log
new file mode 100644
index 000000000..a1b5164cc
--- /dev/null
+++ b/src/Specific/montgomery64_2e450m2e225m1/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffffL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xfffffffdffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint8_t x68 = ((uint8_t)x39 & 0x3);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e450m2e225m1/fesubDisplay.log b/src/Specific/montgomery64_2e450m2e225m1/fesubDisplay.log
new file mode 100644
index 000000000..b1fb363b3
--- /dev/null
+++ b/src/Specific/montgomery64_2e450m2e225m1/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xffffffffffffffffL);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xfffffffdffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint8_t x85 = ((uint8_t)x56 & 0x3);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e452m3/feaddDisplay.log b/src/Specific/montgomery64_2e452m3/feaddDisplay.log
new file mode 100644
index 000000000..891912d50
--- /dev/null
+++ b/src/Specific/montgomery64_2e452m3/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xfffffffffffffffdL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0xf);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e468m17/feaddDisplay.log b/src/Specific/montgomery64_2e468m17/feaddDisplay.log
new file mode 100644
index 000000000..539e92b3c
--- /dev/null
+++ b/src/Specific/montgomery64_2e468m17/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffefL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0xfffff);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e468m17/feoppDisplay.log b/src/Specific/montgomery64_2e468m17/feoppDisplay.log
new file mode 100644
index 000000000..9b8bb168b
--- /dev/null
+++ b/src/Specific/montgomery64_2e468m17/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffefL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0xfffff);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e468m17/fesubDisplay.log b/src/Specific/montgomery64_2e468m17/fesubDisplay.log
new file mode 100644
index 000000000..17b24fcc1
--- /dev/null
+++ b/src/Specific/montgomery64_2e468m17/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xffffffffffffffefL);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xffffffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0xfffff);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e480m2e240m1/feaddDisplay.log b/src/Specific/montgomery64_2e480m2e240m1/feaddDisplay.log
new file mode 100644
index 000000000..2d14dff39
--- /dev/null
+++ b/src/Specific/montgomery64_2e480m2e240m1/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xfffeffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0xffffffff);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e480m2e240m1/feoppDisplay.log b/src/Specific/montgomery64_2e480m2e240m1/feoppDisplay.log
new file mode 100644
index 000000000..8d32e155c
--- /dev/null
+++ b/src/Specific/montgomery64_2e480m2e240m1/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffffL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xfffeffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0xffffffff);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e480m2e240m1/fesubDisplay.log b/src/Specific/montgomery64_2e480m2e240m1/fesubDisplay.log
new file mode 100644
index 000000000..38552ca21
--- /dev/null
+++ b/src/Specific/montgomery64_2e480m2e240m1/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xffffffffffffffffL);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xfffeffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0xffffffff);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e488m17/feaddDisplay.log b/src/Specific/montgomery64_2e488m17/feaddDisplay.log
new file mode 100644
index 000000000..e4e837f7a
--- /dev/null
+++ b/src/Specific/montgomery64_2e488m17/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffefL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0xffffffffff);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e488m17/feoppDisplay.log b/src/Specific/montgomery64_2e488m17/feoppDisplay.log
new file mode 100644
index 000000000..1bced6031
--- /dev/null
+++ b/src/Specific/montgomery64_2e488m17/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffefL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0xffffffffff);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e488m17/fesubDisplay.log b/src/Specific/montgomery64_2e488m17/fesubDisplay.log
new file mode 100644
index 000000000..7dcdf7551
--- /dev/null
+++ b/src/Specific/montgomery64_2e488m17/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xffffffffffffffefL);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xffffffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0xffffffffff);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e489m21/feaddDisplay.log b/src/Specific/montgomery64_2e489m21/feaddDisplay.log
new file mode 100644
index 000000000..474a7d1d2
--- /dev/null
+++ b/src/Specific/montgomery64_2e489m21/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffebL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0x1ffffffffff);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e489m21/feoppDisplay.log b/src/Specific/montgomery64_2e489m21/feoppDisplay.log
new file mode 100644
index 000000000..d6f5de4db
--- /dev/null
+++ b/src/Specific/montgomery64_2e489m21/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffebL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0x1ffffffffff);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e489m21/fesubDisplay.log b/src/Specific/montgomery64_2e489m21/fesubDisplay.log
new file mode 100644
index 000000000..2444fc24a
--- /dev/null
+++ b/src/Specific/montgomery64_2e489m21/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xffffffffffffffebL);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xffffffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0x1ffffffffff);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e495m31/feaddDisplay.log b/src/Specific/montgomery64_2e495m31/feaddDisplay.log
new file mode 100644
index 000000000..924aa6e75
--- /dev/null
+++ b/src/Specific/montgomery64_2e495m31/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffe1L);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0x7fffffffffff);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e495m31/feoppDisplay.log b/src/Specific/montgomery64_2e495m31/feoppDisplay.log
new file mode 100644
index 000000000..fc9b89417
--- /dev/null
+++ b/src/Specific/montgomery64_2e495m31/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffe1L);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0x7fffffffffff);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e495m31/fesubDisplay.log b/src/Specific/montgomery64_2e495m31/fesubDisplay.log
new file mode 100644
index 000000000..6997b2899
--- /dev/null
+++ b/src/Specific/montgomery64_2e495m31/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xffffffffffffffe1L);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xffffffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0x7fffffffffff);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e510m290x2e496m1/feaddDisplay.log b/src/Specific/montgomery64_2e510m290x2e496m1/feaddDisplay.log
new file mode 100644
index 000000000..78a9aa96e
--- /dev/null
+++ b/src/Specific/montgomery64_2e510m290x2e496m1/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0x3eddffffffffffff);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e510m290x2e496m1/feoppDisplay.log b/src/Specific/montgomery64_2e510m290x2e496m1/feoppDisplay.log
new file mode 100644
index 000000000..4dee978ab
--- /dev/null
+++ b/src/Specific/montgomery64_2e510m290x2e496m1/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffffL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0x3eddffffffffffff);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e511m187/feaddDisplay.log b/src/Specific/montgomery64_2e511m187/feaddDisplay.log
new file mode 100644
index 000000000..c2bfe9410
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m187/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffff45L);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0x7fffffffffffffffL);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e511m187/feoppDisplay.log b/src/Specific/montgomery64_2e511m187/feoppDisplay.log
new file mode 100644
index 000000000..dcf4bffc9
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m187/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffff45L);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0x7fffffffffffffffL);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e511m187/fesubDisplay.log b/src/Specific/montgomery64_2e511m187/fesubDisplay.log
new file mode 100644
index 000000000..3c6951c6a
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m187/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xffffffffffffff45L);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xffffffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0x7fffffffffffffffL);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e511m481/feaddDisplay.log b/src/Specific/montgomery64_2e511m481/feaddDisplay.log
new file mode 100644
index 000000000..5702bef05
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m481/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xfffffffffffffe1fL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0x7fffffffffffffffL);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e511m481/feoppDisplay.log b/src/Specific/montgomery64_2e511m481/feoppDisplay.log
new file mode 100644
index 000000000..bdf463140
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m481/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xfffffffffffffe1fL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0x7fffffffffffffffL);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e511m481/fesubDisplay.log b/src/Specific/montgomery64_2e511m481/fesubDisplay.log
new file mode 100644
index 000000000..9d13a6db7
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m481/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xfffffffffffffe1fL);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xffffffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0x7fffffffffffffffL);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e512m491x2e496m1/feaddDisplay.log b/src/Specific/montgomery64_2e512m491x2e496m1/feaddDisplay.log
new file mode 100644
index 000000000..a0d188d16
--- /dev/null
+++ b/src/Specific/montgomery64_2e512m491x2e496m1/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffffffL);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0xfe14ffffffffffffL);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e512m491x2e496m1/feoppDisplay.log b/src/Specific/montgomery64_2e512m491x2e496m1/feoppDisplay.log
new file mode 100644
index 000000000..efeb12ab9
--- /dev/null
+++ b/src/Specific/montgomery64_2e512m491x2e496m1/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffffffL);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0xfe14ffffffffffffL);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e512m569/feaddDisplay.log b/src/Specific/montgomery64_2e512m569/feaddDisplay.log
new file mode 100644
index 000000000..35aacd709
--- /dev/null
+++ b/src/Specific/montgomery64_2e512m569/feaddDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30);
+ uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xfffffffffffffdc7L);
+ uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL);
+ uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL);
+ uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL);
+ uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0xffffffffffffffffL);
+ uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0);
+ uint64_t x83 = cmovznz(x82, x78, x54);
+ uint64_t x84 = cmovznz(x82, x75, x51);
+ uint64_t x85 = cmovznz(x82, x72, x48);
+ uint64_t x86 = cmovznz(x82, x69, x45);
+ uint64_t x87 = cmovznz(x82, x66, x42);
+ uint64_t x88 = cmovznz(x82, x63, x39);
+ uint64_t x89 = cmovznz(x82, x60, x36);
+ uint64_t x90 = cmovznz(x82, x57, x33);
+ return (x83, x84, x85, x86, x87, x88, x89, x90))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e512m569/feoppDisplay.log b/src/Specific/montgomery64_2e512m569/feoppDisplay.log
new file mode 100644
index 000000000..2934a77a9
--- /dev/null
+++ b/src/Specific/montgomery64_2e512m569/feoppDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = subborrow_u64(0x0, 0x0, x2);
+ uint64_t x19, uint8_t x20 = subborrow_u64(x17, 0x0, x4);
+ uint64_t x22, uint8_t x23 = subborrow_u64(x20, 0x0, x6);
+ uint64_t x25, uint8_t x26 = subborrow_u64(x23, 0x0, x8);
+ uint64_t x28, uint8_t x29 = subborrow_u64(x26, 0x0, x10);
+ uint64_t x31, uint8_t x32 = subborrow_u64(x29, 0x0, x12);
+ uint64_t x34, uint8_t x35 = subborrow_u64(x32, 0x0, x14);
+ uint64_t x37, uint8_t x38 = subborrow_u64(x35, 0x0, x13);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xfffffffffffffdc7L);
+ uint64_t x42, uint8_t x43 = addcarryx_u64(0x0, x16, x40);
+ uint64_t x44 = (x39 & 0xffffffffffffffffL);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x43, x19, x44);
+ uint64_t x48 = (x39 & 0xffffffffffffffffL);
+ uint64_t x50, uint8_t x51 = addcarryx_u64(x47, x22, x48);
+ uint64_t x52 = (x39 & 0xffffffffffffffffL);
+ uint64_t x54, uint8_t x55 = addcarryx_u64(x51, x25, x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffffL);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x55, x28, x56);
+ uint64_t x60 = (x39 & 0xffffffffffffffffL);
+ uint64_t x62, uint8_t x63 = addcarryx_u64(x59, x31, x60);
+ uint64_t x64 = (x39 & 0xffffffffffffffffL);
+ uint64_t x66, uint8_t x67 = addcarryx_u64(x63, x34, x64);
+ uint64_t x68 = (x39 & 0xffffffffffffffffL);
+ uint64_t x70, uint8_t _ = addcarryx_u64(x67, x37, x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e512m569/fesubDisplay.log b/src/Specific/montgomery64_2e512m569/fesubDisplay.log
new file mode 100644
index 000000000..82b5805f6
--- /dev/null
+++ b/src/Specific/montgomery64_2e512m569/fesubDisplay.log
@@ -0,0 +1,32 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x33, uint8_t x34 = subborrow_u64(0x0, x5, x19);
+ uint64_t x36, uint8_t x37 = subborrow_u64(x34, x7, x21);
+ uint64_t x39, uint8_t x40 = subborrow_u64(x37, x9, x23);
+ uint64_t x42, uint8_t x43 = subborrow_u64(x40, x11, x25);
+ uint64_t x45, uint8_t x46 = subborrow_u64(x43, x13, x27);
+ uint64_t x48, uint8_t x49 = subborrow_u64(x46, x15, x29);
+ uint64_t x51, uint8_t x52 = subborrow_u64(x49, x17, x31);
+ uint64_t x54, uint8_t x55 = subborrow_u64(x52, x16, x30);
+ uint64_t x56 = (uint64_t)cmovznz(x55, 0x0, 0xffffffffffffffffL);
+ uint64_t x57 = (x56 & 0xfffffffffffffdc7L);
+ uint64_t x59, uint8_t x60 = addcarryx_u64(0x0, x33, x57);
+ uint64_t x61 = (x56 & 0xffffffffffffffffL);
+ uint64_t x63, uint8_t x64 = addcarryx_u64(x60, x36, x61);
+ uint64_t x65 = (x56 & 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = addcarryx_u64(x64, x39, x65);
+ uint64_t x69 = (x56 & 0xffffffffffffffffL);
+ uint64_t x71, uint8_t x72 = addcarryx_u64(x68, x42, x69);
+ uint64_t x73 = (x56 & 0xffffffffffffffffL);
+ uint64_t x75, uint8_t x76 = addcarryx_u64(x72, x45, x73);
+ uint64_t x77 = (x56 & 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = addcarryx_u64(x76, x48, x77);
+ uint64_t x81 = (x56 & 0xffffffffffffffffL);
+ uint64_t x83, uint8_t x84 = addcarryx_u64(x80, x51, x81);
+ uint64_t x85 = (x56 & 0xffffffffffffffffL);
+ uint64_t x87, uint8_t _ = addcarryx_u64(x84, x54, x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/montgomery64_2e521m1/feaddDisplay.log b/src/Specific/montgomery64_2e521m1/feaddDisplay.log
new file mode 100644
index 000000000..80652f836
--- /dev/null
+++ b/src/Specific/montgomery64_2e521m1/feaddDisplay.log
@@ -0,0 +1,35 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+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,
+ uint64_t x37, uint8_t x38 = addcarryx_u64(0x0, x5, x21);
+ uint64_t x40, uint8_t x41 = addcarryx_u64(x38, x7, x23);
+ uint64_t x43, uint8_t x44 = addcarryx_u64(x41, x9, x25);
+ uint64_t x46, uint8_t x47 = addcarryx_u64(x44, x11, x27);
+ uint64_t x49, uint8_t x50 = addcarryx_u64(x47, x13, x29);
+ uint64_t x52, uint8_t x53 = addcarryx_u64(x50, x15, x31);
+ uint64_t x55, uint8_t x56 = addcarryx_u64(x53, x17, x33);
+ uint64_t x58, uint8_t x59 = addcarryx_u64(x56, x19, x35);
+ uint64_t x61, uint8_t x62 = addcarryx_u64(x59, x18, x34);
+ uint64_t x64, uint8_t x65 = subborrow_u64(0x0, x37, 0xffffffffffffffffL);
+ uint64_t x67, uint8_t x68 = subborrow_u64(x65, x40, 0xffffffffffffffffL);
+ uint64_t x70, uint8_t x71 = subborrow_u64(x68, x43, 0xffffffffffffffffL);
+ uint64_t x73, uint8_t x74 = subborrow_u64(x71, x46, 0xffffffffffffffffL);
+ uint64_t x76, uint8_t x77 = subborrow_u64(x74, x49, 0xffffffffffffffffL);
+ uint64_t x79, uint8_t x80 = subborrow_u64(x77, x52, 0xffffffffffffffffL);
+ uint64_t x82, uint8_t x83 = subborrow_u64(x80, x55, 0xffffffffffffffffL);
+ uint64_t x85, uint8_t x86 = subborrow_u64(x83, x58, 0xffffffffffffffffL);
+ uint64_t x88, uint8_t x89 = subborrow_u64(x86, x61, 0x1ff);
+ uint64_t _, uint8_t x92 = subborrow_u64(x89, x62, 0x0);
+ uint64_t x93 = cmovznz(x92, x88, x61);
+ uint64_t x94 = cmovznz(x92, x85, x58);
+ uint64_t x95 = cmovznz(x92, x82, x55);
+ uint64_t x96 = cmovznz(x92, x79, x52);
+ uint64_t x97 = cmovznz(x92, x76, x49);
+ uint64_t x98 = cmovznz(x92, x73, x46);
+ uint64_t x99 = cmovznz(x92, x70, x43);
+ uint64_t x100 = cmovznz(x92, x67, x40);
+ uint64_t x101 = cmovznz(x92, x64, x37);
+ return (x93, x94, x95, x96, x97, x98, x99, x100, x101))
+(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/solinas32_2e137m13/femulDisplay.log b/src/Specific/solinas32_2e137m13/femulDisplay.log
index 25c6dbe8d..656d6af0d 100644
--- a/src/Specific/solinas32_2e137m13/femulDisplay.log
+++ b/src/Specific/solinas32_2e137m13/femulDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- uint64_t x32 = (uint64_t) x5 * x30 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + (0x2 * ((uint64_t) x11 * x27) + (0x2 * ((uint64_t) x13 * x25) + (0x2 * ((uint64_t) x15 * x23) + (0x2 * ((uint64_t) x17 * x21) + (uint64_t) x16 * x19))))));
- uint64_t x33 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + (0x2 * ((uint64_t) x9 * x27) + (0x2 * ((uint64_t) x11 * x25) + (0x2 * ((uint64_t) x13 * x23) + (0x2 * ((uint64_t) x15 * x21) + (uint64_t) x17 * x19))))) + 0xd * ((uint64_t) x16 * x30);
- uint64_t x34 = (uint64_t) x5 * x29 + (0x2 * ((uint64_t) x7 * x27) + (0x2 * ((uint64_t) x9 * x25) + (0x2 * ((uint64_t) x11 * x23) + (0x2 * ((uint64_t) x13 * x21) + (uint64_t) x15 * x19)))) + 0xd * ((uint64_t) x17 * x30 + (uint64_t) x16 * x31);
- uint64_t x35 = (uint64_t) x5 * x27 + (0x2 * ((uint64_t) x7 * x25) + (0x2 * ((uint64_t) x9 * x23) + (0x2 * ((uint64_t) x11 * x21) + (uint64_t) x13 * x19))) + 0xd * ((uint64_t) x15 * x30 + ((uint64_t) x17 * x31 + (uint64_t) x16 * x29));
- uint64_t x36 = (uint64_t) x5 * x25 + (0x2 * ((uint64_t) x7 * x23) + (0x2 * ((uint64_t) x9 * x21) + (uint64_t) x11 * x19)) + 0xd * ((uint64_t) x13 * x30 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + (uint64_t) x16 * x27)));
- uint64_t x37 = (uint64_t) x5 * x23 + (0x2 * ((uint64_t) x7 * x21) + (uint64_t) x9 * x19) + 0xd * ((uint64_t) x11 * x30 + ((uint64_t) x13 * x31 + ((uint64_t) x15 * x29 + ((uint64_t) x17 * x27 + (uint64_t) x16 * x25))));
- uint64_t x38 = (uint64_t) x5 * x21 + (uint64_t) x7 * x19 + 0xd * ((uint64_t) x9 * x30 + ((uint64_t) x11 * x31 + ((uint64_t) x13 * x29 + ((uint64_t) x15 * x27 + ((uint64_t) x17 * x25 + (uint64_t) x16 * x23)))));
- uint64_t x39 = (uint64_t) x5 * x19 + 0xd * (0x2 * ((uint64_t) x7 * x30) + (0x2 * ((uint64_t) x9 * x31) + (0x2 * ((uint64_t) x11 * x29) + (0x2 * ((uint64_t) x13 * x27) + (0x2 * ((uint64_t) x15 * x25) + (0x2 * ((uint64_t) x17 * x23) + 0x2 * ((uint64_t) x16 * x21)))))));
+ uint64_t x32 = (((uint64_t)x5 * x30) + ((0x2 * ((uint64_t)x7 * x31)) + ((0x2 * ((uint64_t)x9 * x29)) + ((0x2 * ((uint64_t)x11 * x27)) + ((0x2 * ((uint64_t)x13 * x25)) + ((0x2 * ((uint64_t)x15 * x23)) + ((0x2 * ((uint64_t)x17 * x21)) + ((uint64_t)x16 * x19))))))));
+ uint64_t x33 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + ((0x2 * ((uint64_t)x9 * x27)) + ((0x2 * ((uint64_t)x11 * x25)) + ((0x2 * ((uint64_t)x13 * x23)) + ((0x2 * ((uint64_t)x15 * x21)) + ((uint64_t)x17 * x19))))))) + (0xd * ((uint64_t)x16 * x30)));
+ uint64_t x34 = ((((uint64_t)x5 * x29) + ((0x2 * ((uint64_t)x7 * x27)) + ((0x2 * ((uint64_t)x9 * x25)) + ((0x2 * ((uint64_t)x11 * x23)) + ((0x2 * ((uint64_t)x13 * x21)) + ((uint64_t)x15 * x19)))))) + (0xd * (((uint64_t)x17 * x30) + ((uint64_t)x16 * x31))));
+ uint64_t x35 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((0x2 * ((uint64_t)x9 * x23)) + ((0x2 * ((uint64_t)x11 * x21)) + ((uint64_t)x13 * x19))))) + (0xd * (((uint64_t)x15 * x30) + (((uint64_t)x17 * x31) + ((uint64_t)x16 * x29)))));
+ uint64_t x36 = ((((uint64_t)x5 * x25) + ((0x2 * ((uint64_t)x7 * x23)) + ((0x2 * ((uint64_t)x9 * x21)) + ((uint64_t)x11 * x19)))) + (0xd * (((uint64_t)x13 * x30) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + ((uint64_t)x16 * x27))))));
+ uint64_t x37 = ((((uint64_t)x5 * x23) + ((0x2 * ((uint64_t)x7 * x21)) + ((uint64_t)x9 * x19))) + (0xd * (((uint64_t)x11 * x30) + (((uint64_t)x13 * x31) + (((uint64_t)x15 * x29) + (((uint64_t)x17 * x27) + ((uint64_t)x16 * x25)))))));
+ uint64_t x38 = ((((uint64_t)x5 * x21) + ((uint64_t)x7 * x19)) + (0xd * (((uint64_t)x9 * x30) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((uint64_t)x16 * x23))))))));
+ uint64_t x39 = (((uint64_t)x5 * x19) + (0xd * ((0x2 * ((uint64_t)x7 * x30)) + ((0x2 * ((uint64_t)x9 * x31)) + ((0x2 * ((uint64_t)x11 * x29)) + ((0x2 * ((uint64_t)x13 * x27)) + ((0x2 * ((uint64_t)x15 * x25)) + ((0x2 * ((uint64_t)x17 * x23)) + (0x2 * ((uint64_t)x16 * x21))))))))));
uint32_t x40 = (uint32_t) (x39 >> 0x12);
- uint32_t x41 = (uint32_t) x39 & 0x3ffff;
- uint64_t x42 = x40 + x38;
+ uint32_t x41 = ((uint32_t)x39 & 0x3ffff);
+ uint64_t x42 = (x40 + x38);
uint32_t x43 = (uint32_t) (x42 >> 0x11);
- uint32_t x44 = (uint32_t) x42 & 0x1ffff;
- uint64_t x45 = x43 + x37;
+ uint32_t x44 = ((uint32_t)x42 & 0x1ffff);
+ uint64_t x45 = (x43 + x37);
uint32_t x46 = (uint32_t) (x45 >> 0x11);
- uint32_t x47 = (uint32_t) x45 & 0x1ffff;
- uint64_t x48 = x46 + x36;
+ uint32_t x47 = ((uint32_t)x45 & 0x1ffff);
+ uint64_t x48 = (x46 + x36);
uint32_t x49 = (uint32_t) (x48 >> 0x11);
- uint32_t x50 = (uint32_t) x48 & 0x1ffff;
- uint64_t x51 = x49 + x35;
+ uint32_t x50 = ((uint32_t)x48 & 0x1ffff);
+ uint64_t x51 = (x49 + x35);
uint32_t x52 = (uint32_t) (x51 >> 0x11);
- uint32_t x53 = (uint32_t) x51 & 0x1ffff;
- uint64_t x54 = x52 + x34;
+ uint32_t x53 = ((uint32_t)x51 & 0x1ffff);
+ uint64_t x54 = (x52 + x34);
uint32_t x55 = (uint32_t) (x54 >> 0x11);
- uint32_t x56 = (uint32_t) x54 & 0x1ffff;
- uint64_t x57 = x55 + x33;
+ uint32_t x56 = ((uint32_t)x54 & 0x1ffff);
+ uint64_t x57 = (x55 + x33);
uint32_t x58 = (uint32_t) (x57 >> 0x11);
- uint32_t x59 = (uint32_t) x57 & 0x1ffff;
- uint64_t x60 = x58 + x32;
+ uint32_t x59 = ((uint32_t)x57 & 0x1ffff);
+ uint64_t x60 = (x58 + x32);
uint32_t x61 = (uint32_t) (x60 >> 0x11);
- uint32_t x62 = (uint32_t) x60 & 0x1ffff;
- uint32_t x63 = x41 + 0xd * x61;
- uint32_t x64 = x63 >> 0x12;
- uint32_t x65 = x63 & 0x3ffff;
- uint32_t x66 = x64 + x44;
- uint32_t x67 = x66 >> 0x11;
- uint32_t x68 = x66 & 0x1ffff;
- return (Return x62, Return x59, Return x56, Return x53, Return x50, x67 + x47, Return x68, Return x65))
+ uint32_t x62 = ((uint32_t)x60 & 0x1ffff);
+ uint32_t x63 = (x41 + (0xd * x61));
+ uint32_t x64 = (x63 >> 0x12);
+ uint32_t x65 = (x63 & 0x3ffff);
+ uint32_t x66 = (x64 + x44);
+ uint32_t x67 = (x66 >> 0x11);
+ uint32_t x68 = (x66 & 0x1ffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e137m13/fesquareDisplay.log b/src/Specific/solinas32_2e137m13/fesquareDisplay.log
index 2bbaa3dde..5a352c69d 100644
--- a/src/Specific/solinas32_2e137m13/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e137m13/fesquareDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x15 = (uint64_t) x2 * x13 + (0x2 * ((uint64_t) x4 * x14) + (0x2 * ((uint64_t) x6 * x12) + (0x2 * ((uint64_t) x8 * x10) + (0x2 * ((uint64_t) x10 * x8) + (0x2 * ((uint64_t) x12 * x6) + (0x2 * ((uint64_t) x14 * x4) + (uint64_t) x13 * x2))))));
- uint64_t x16 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + (0x2 * ((uint64_t) x6 * x10) + (0x2 * ((uint64_t) x8 * x8) + (0x2 * ((uint64_t) x10 * x6) + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + 0xd * ((uint64_t) x13 * x13);
- uint64_t x17 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + (0x2 * ((uint64_t) x6 * x8) + (0x2 * ((uint64_t) x8 * x6) + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + 0xd * ((uint64_t) x14 * x13 + (uint64_t) x13 * x14);
- uint64_t x18 = (uint64_t) x2 * x10 + (0x2 * ((uint64_t) x4 * x8) + (0x2 * ((uint64_t) x6 * x6) + (0x2 * ((uint64_t) x8 * x4) + (uint64_t) x10 * x2))) + 0xd * ((uint64_t) x12 * x13 + ((uint64_t) x14 * x14 + (uint64_t) x13 * x12));
- uint64_t x19 = (uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2)) + 0xd * ((uint64_t) x10 * x13 + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + (uint64_t) x13 * x10)));
- uint64_t x20 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0xd * ((uint64_t) x8 * x13 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + (uint64_t) x13 * x8))));
- uint64_t x21 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0xd * ((uint64_t) x6 * x13 + ((uint64_t) x8 * x14 + ((uint64_t) x10 * x12 + ((uint64_t) x12 * x10 + ((uint64_t) x14 * x8 + (uint64_t) x13 * x6)))));
- uint64_t x22 = (uint64_t) x2 * x2 + 0xd * (0x2 * ((uint64_t) x4 * x13) + (0x2 * ((uint64_t) x6 * x14) + (0x2 * ((uint64_t) x8 * x12) + (0x2 * ((uint64_t) x10 * x10) + (0x2 * ((uint64_t) x12 * x8) + (0x2 * ((uint64_t) x14 * x6) + 0x2 * ((uint64_t) x13 * x4)))))));
+ uint64_t x15 = (((uint64_t)x2 * x13) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + ((0x2 * ((uint64_t)x8 * x10)) + ((0x2 * ((uint64_t)x10 * x8)) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x13 * x2))))))));
+ uint64_t x16 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + ((0x2 * ((uint64_t)x8 * x8)) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0xd * ((uint64_t)x13 * x13)));
+ uint64_t x17 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + ((0x2 * ((uint64_t)x6 * x8)) + ((0x2 * ((uint64_t)x8 * x6)) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (0xd * (((uint64_t)x14 * x13) + ((uint64_t)x13 * x14))));
+ uint64_t x18 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0xd * (((uint64_t)x12 * x13) + (((uint64_t)x14 * x14) + ((uint64_t)x13 * x12)))));
+ uint64_t x19 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0xd * (((uint64_t)x10 * x13) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((uint64_t)x13 * x10))))));
+ uint64_t x20 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0xd * (((uint64_t)x8 * x13) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + ((uint64_t)x13 * x8)))))));
+ uint64_t x21 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0xd * (((uint64_t)x6 * x13) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + ((uint64_t)x13 * x6))))))));
+ uint64_t x22 = (((uint64_t)x2 * x2) + (0xd * ((0x2 * ((uint64_t)x4 * x13)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + ((0x2 * ((uint64_t)x10 * x10)) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + (0x2 * ((uint64_t)x13 * x4))))))))));
uint32_t x23 = (uint32_t) (x22 >> 0x12);
- uint32_t x24 = (uint32_t) x22 & 0x3ffff;
- uint64_t x25 = x23 + x21;
+ uint32_t x24 = ((uint32_t)x22 & 0x3ffff);
+ uint64_t x25 = (x23 + x21);
uint32_t x26 = (uint32_t) (x25 >> 0x11);
- uint32_t x27 = (uint32_t) x25 & 0x1ffff;
- uint64_t x28 = x26 + x20;
+ uint32_t x27 = ((uint32_t)x25 & 0x1ffff);
+ uint64_t x28 = (x26 + x20);
uint32_t x29 = (uint32_t) (x28 >> 0x11);
- uint32_t x30 = (uint32_t) x28 & 0x1ffff;
- uint64_t x31 = x29 + x19;
+ uint32_t x30 = ((uint32_t)x28 & 0x1ffff);
+ uint64_t x31 = (x29 + x19);
uint32_t x32 = (uint32_t) (x31 >> 0x11);
- uint32_t x33 = (uint32_t) x31 & 0x1ffff;
- uint64_t x34 = x32 + x18;
+ uint32_t x33 = ((uint32_t)x31 & 0x1ffff);
+ uint64_t x34 = (x32 + x18);
uint32_t x35 = (uint32_t) (x34 >> 0x11);
- uint32_t x36 = (uint32_t) x34 & 0x1ffff;
- uint64_t x37 = x35 + x17;
+ uint32_t x36 = ((uint32_t)x34 & 0x1ffff);
+ uint64_t x37 = (x35 + x17);
uint32_t x38 = (uint32_t) (x37 >> 0x11);
- uint32_t x39 = (uint32_t) x37 & 0x1ffff;
- uint64_t x40 = x38 + x16;
+ uint32_t x39 = ((uint32_t)x37 & 0x1ffff);
+ uint64_t x40 = (x38 + x16);
uint32_t x41 = (uint32_t) (x40 >> 0x11);
- uint32_t x42 = (uint32_t) x40 & 0x1ffff;
- uint64_t x43 = x41 + x15;
+ uint32_t x42 = ((uint32_t)x40 & 0x1ffff);
+ uint64_t x43 = (x41 + x15);
uint32_t x44 = (uint32_t) (x43 >> 0x11);
- uint32_t x45 = (uint32_t) x43 & 0x1ffff;
- uint32_t x46 = x24 + 0xd * x44;
- uint32_t x47 = x46 >> 0x12;
- uint32_t x48 = x46 & 0x3ffff;
- uint32_t x49 = x47 + x27;
- uint32_t x50 = x49 >> 0x11;
- uint32_t x51 = x49 & 0x1ffff;
- return (Return x45, Return x42, Return x39, Return x36, Return x33, x50 + x30, Return x51, Return x48))
+ uint32_t x45 = ((uint32_t)x43 & 0x1ffff);
+ uint32_t x46 = (x24 + (0xd * x44));
+ uint32_t x47 = (x46 >> 0x12);
+ uint32_t x48 = (x46 & 0x3ffff);
+ uint32_t x49 = (x47 + x27);
+ uint32_t x50 = (x49 >> 0x11);
+ uint32_t x51 = (x49 & 0x1ffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e137m13/freezeDisplay.log b/src/Specific/solinas32_2e137m13/freezeDisplay.log
index a5653a0ad..df593ca4b 100644
--- a/src/Specific/solinas32_2e137m13/freezeDisplay.log
+++ b/src/Specific/solinas32_2e137m13/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0x1ffff);
uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x1ffff);
uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
- uint32_t x40 = x39 & 0x3fff3;
+ uint32_t x40 = (x39 & 0x3fff3);
uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
- uint32_t x44 = x39 & 0x1ffff;
+ uint32_t x44 = (x39 & 0x1ffff);
uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint32_t x48 = x39 & 0x1ffff;
+ uint32_t x48 = (x39 & 0x1ffff);
uint32_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint32_t x52 = x39 & 0x1ffff;
+ uint32_t x52 = (x39 & 0x1ffff);
uint32_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint32_t x56 = x39 & 0x1ffff;
+ uint32_t x56 = (x39 & 0x1ffff);
uint32_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint32_t x60 = x39 & 0x1ffff;
+ uint32_t x60 = (x39 & 0x1ffff);
uint32_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint32_t x64 = x39 & 0x1ffff;
+ uint32_t x64 = (x39 & 0x1ffff);
uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint32_t x68 = x39 & 0x1ffff;
+ uint32_t x68 = (x39 & 0x1ffff);
uint32_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas32_2e165m25/femulDisplay.log b/src/Specific/solinas32_2e165m25/femulDisplay.log
index 5c8b0cac1..3606ff1fd 100644
--- a/src/Specific/solinas32_2e165m25/femulDisplay.log
+++ b/src/Specific/solinas32_2e165m25/femulDisplay.log
@@ -2,47 +2,47 @@
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,
- uint64_t x36 = (uint64_t) x5 * x34 + (0x2 * ((uint64_t) x7 * x35) + ((uint64_t) x9 * x33 + ((uint64_t) x11 * x31 + (0x2 * ((uint64_t) x13 * x29) + ((uint64_t) x15 * x27 + ((uint64_t) x17 * x25 + (0x2 * ((uint64_t) x19 * x23) + (uint64_t) x18 * x21)))))));
- uint64_t x37 = (uint64_t) x5 * x35 + ((uint64_t) x7 * x33 + ((uint64_t) x9 * x31 + ((uint64_t) x11 * x29 + ((uint64_t) x13 * x27 + ((uint64_t) x15 * x25 + ((uint64_t) x17 * x23 + (uint64_t) x19 * x21)))))) + 0x19 * ((uint64_t) x18 * x34);
- uint64_t x38 = (uint64_t) x5 * x33 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + ((uint64_t) x11 * x27 + (0x2 * ((uint64_t) x13 * x25) + (0x2 * ((uint64_t) x15 * x23) + (uint64_t) x17 * x21))))) + 0x19 * (0x2 * ((uint64_t) x19 * x34) + 0x2 * ((uint64_t) x18 * x35));
- uint64_t x39 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + ((uint64_t) x9 * x27 + ((uint64_t) x11 * x25 + (0x2 * ((uint64_t) x13 * x23) + (uint64_t) x15 * x21)))) + 0x19 * ((uint64_t) x17 * x34 + (0x2 * ((uint64_t) x19 * x35) + (uint64_t) x18 * x33));
- uint64_t x40 = (uint64_t) x5 * x29 + ((uint64_t) x7 * x27 + ((uint64_t) x9 * x25 + ((uint64_t) x11 * x23 + (uint64_t) x13 * x21))) + 0x19 * ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31)));
- uint64_t x41 = (uint64_t) x5 * x27 + (0x2 * ((uint64_t) x7 * x25) + (0x2 * ((uint64_t) x9 * x23) + (uint64_t) x11 * x21)) + 0x19 * (0x2 * ((uint64_t) x13 * x34) + (0x2 * ((uint64_t) x15 * x35) + ((uint64_t) x17 * x33 + (0x2 * ((uint64_t) x19 * x31) + 0x2 * ((uint64_t) x18 * x29)))));
- uint64_t x42 = (uint64_t) x5 * x25 + (0x2 * ((uint64_t) x7 * x23) + (uint64_t) x9 * x21) + 0x19 * ((uint64_t) x11 * x34 + (0x2 * ((uint64_t) x13 * x35) + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + (0x2 * ((uint64_t) x19 * x29) + (uint64_t) x18 * x27)))));
- uint64_t x43 = (uint64_t) x5 * x23 + (uint64_t) x7 * x21 + 0x19 * ((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25))))));
- uint64_t x44 = (uint64_t) x5 * x21 + 0x19 * (0x2 * ((uint64_t) x7 * x34) + (0x2 * ((uint64_t) x9 * x35) + ((uint64_t) x11 * x33 + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + ((uint64_t) x17 * x27 + (0x2 * ((uint64_t) x19 * x25) + 0x2 * ((uint64_t) x18 * x23))))))));
+ uint64_t x36 = (((uint64_t)x5 * x34) + ((0x2 * ((uint64_t)x7 * x35)) + (((uint64_t)x9 * x33) + (((uint64_t)x11 * x31) + ((0x2 * ((uint64_t)x13 * x29)) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((0x2 * ((uint64_t)x19 * x23)) + ((uint64_t)x18 * x21)))))))));
+ uint64_t x37 = ((((uint64_t)x5 * x35) + (((uint64_t)x7 * x33) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x19 * x21)))))))) + (0x19 * ((uint64_t)x18 * x34)));
+ uint64_t x38 = ((((uint64_t)x5 * x33) + ((0x2 * ((uint64_t)x7 * x31)) + ((0x2 * ((uint64_t)x9 * x29)) + (((uint64_t)x11 * x27) + ((0x2 * ((uint64_t)x13 * x25)) + ((0x2 * ((uint64_t)x15 * x23)) + ((uint64_t)x17 * x21))))))) + (0x19 * ((0x2 * ((uint64_t)x19 * x34)) + (0x2 * ((uint64_t)x18 * x35)))));
+ uint64_t x39 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + ((0x2 * ((uint64_t)x13 * x23)) + ((uint64_t)x15 * x21)))))) + (0x19 * (((uint64_t)x17 * x34) + ((0x2 * ((uint64_t)x19 * x35)) + ((uint64_t)x18 * x33)))));
+ uint64_t x40 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + ((uint64_t)x13 * x21))))) + (0x19 * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))));
+ uint64_t x41 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((0x2 * ((uint64_t)x9 * x23)) + ((uint64_t)x11 * x21)))) + (0x19 * ((0x2 * ((uint64_t)x13 * x34)) + ((0x2 * ((uint64_t)x15 * x35)) + (((uint64_t)x17 * x33) + ((0x2 * ((uint64_t)x19 * x31)) + (0x2 * ((uint64_t)x18 * x29))))))));
+ uint64_t x42 = ((((uint64_t)x5 * x25) + ((0x2 * ((uint64_t)x7 * x23)) + ((uint64_t)x9 * x21))) + (0x19 * (((uint64_t)x11 * x34) + ((0x2 * ((uint64_t)x13 * x35)) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + ((0x2 * ((uint64_t)x19 * x29)) + ((uint64_t)x18 * x27))))))));
+ uint64_t x43 = ((((uint64_t)x5 * x23) + ((uint64_t)x7 * x21)) + (0x19 * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))));
+ uint64_t x44 = (((uint64_t)x5 * x21) + (0x19 * ((0x2 * ((uint64_t)x7 * x34)) + ((0x2 * ((uint64_t)x9 * x35)) + (((uint64_t)x11 * x33) + ((0x2 * ((uint64_t)x13 * x31)) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + ((0x2 * ((uint64_t)x19 * x25)) + (0x2 * ((uint64_t)x18 * x23)))))))))));
uint32_t x45 = (uint32_t) (x44 >> 0x13);
- uint32_t x46 = (uint32_t) x44 & 0x7ffff;
- uint64_t x47 = x45 + x43;
+ uint32_t x46 = ((uint32_t)x44 & 0x7ffff);
+ uint64_t x47 = (x45 + x43);
uint32_t x48 = (uint32_t) (x47 >> 0x12);
- uint32_t x49 = (uint32_t) x47 & 0x3ffff;
- uint64_t x50 = x48 + x42;
+ uint32_t x49 = ((uint32_t)x47 & 0x3ffff);
+ uint64_t x50 = (x48 + x42);
uint32_t x51 = (uint32_t) (x50 >> 0x12);
- uint32_t x52 = (uint32_t) x50 & 0x3ffff;
- uint64_t x53 = x51 + x41;
+ uint32_t x52 = ((uint32_t)x50 & 0x3ffff);
+ uint64_t x53 = (x51 + x41);
uint32_t x54 = (uint32_t) (x53 >> 0x13);
- uint32_t x55 = (uint32_t) x53 & 0x7ffff;
- uint64_t x56 = x54 + x40;
+ uint32_t x55 = ((uint32_t)x53 & 0x7ffff);
+ uint64_t x56 = (x54 + x40);
uint32_t x57 = (uint32_t) (x56 >> 0x12);
- uint32_t x58 = (uint32_t) x56 & 0x3ffff;
- uint64_t x59 = x57 + x39;
+ uint32_t x58 = ((uint32_t)x56 & 0x3ffff);
+ uint64_t x59 = (x57 + x39);
uint32_t x60 = (uint32_t) (x59 >> 0x12);
- uint32_t x61 = (uint32_t) x59 & 0x3ffff;
- uint64_t x62 = x60 + x38;
+ uint32_t x61 = ((uint32_t)x59 & 0x3ffff);
+ uint64_t x62 = (x60 + x38);
uint32_t x63 = (uint32_t) (x62 >> 0x13);
- uint32_t x64 = (uint32_t) x62 & 0x7ffff;
- uint64_t x65 = x63 + x37;
+ uint32_t x64 = ((uint32_t)x62 & 0x7ffff);
+ uint64_t x65 = (x63 + x37);
uint32_t x66 = (uint32_t) (x65 >> 0x12);
- uint32_t x67 = (uint32_t) x65 & 0x3ffff;
- uint64_t x68 = x66 + x36;
+ uint32_t x67 = ((uint32_t)x65 & 0x3ffff);
+ uint64_t x68 = (x66 + x36);
uint32_t x69 = (uint32_t) (x68 >> 0x12);
- uint32_t x70 = (uint32_t) x68 & 0x3ffff;
- uint32_t x71 = x46 + 0x19 * x69;
- uint32_t x72 = x71 >> 0x13;
- uint32_t x73 = x71 & 0x7ffff;
- uint32_t x74 = x72 + x49;
- uint32_t x75 = x74 >> 0x12;
- uint32_t x76 = x74 & 0x3ffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ uint32_t x70 = ((uint32_t)x68 & 0x3ffff);
+ uint32_t x71 = (x46 + (0x19 * x69));
+ uint32_t x72 = (x71 >> 0x13);
+ uint32_t x73 = (x71 & 0x7ffff);
+ uint32_t x74 = (x72 + x49);
+ uint32_t x75 = (x74 >> 0x12);
+ uint32_t x76 = (x74 & 0x3ffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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_2e165m25/fesquareDisplay.log b/src/Specific/solinas32_2e165m25/fesquareDisplay.log
index f221f1cec..01627e8b0 100644
--- a/src/Specific/solinas32_2e165m25/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e165m25/fesquareDisplay.log
@@ -2,47 +2,47 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x17 = (uint64_t) x2 * x15 + (0x2 * ((uint64_t) x4 * x16) + ((uint64_t) x6 * x14 + ((uint64_t) x8 * x12 + (0x2 * ((uint64_t) x10 * x10) + ((uint64_t) x12 * x8 + ((uint64_t) x14 * x6 + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x15 * x2)))))));
- uint64_t x18 = (uint64_t) x2 * x16 + ((uint64_t) x4 * x14 + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + ((uint64_t) x14 * x4 + (uint64_t) x16 * x2)))))) + 0x19 * ((uint64_t) x15 * x15);
- uint64_t x19 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + (0x2 * ((uint64_t) x6 * x10) + ((uint64_t) x8 * x8 + (0x2 * ((uint64_t) x10 * x6) + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + 0x19 * (0x2 * ((uint64_t) x16 * x15) + 0x2 * ((uint64_t) x15 * x16));
- uint64_t x20 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + ((uint64_t) x6 * x8 + ((uint64_t) x8 * x6 + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + 0x19 * ((uint64_t) x14 * x15 + (0x2 * ((uint64_t) x16 * x16) + (uint64_t) x15 * x14));
- uint64_t x21 = (uint64_t) x2 * x10 + ((uint64_t) x4 * x8 + ((uint64_t) x6 * x6 + ((uint64_t) x8 * x4 + (uint64_t) x10 * x2))) + 0x19 * ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12)));
- uint64_t x22 = (uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2)) + 0x19 * (0x2 * ((uint64_t) x10 * x15) + (0x2 * ((uint64_t) x12 * x16) + ((uint64_t) x14 * x14 + (0x2 * ((uint64_t) x16 * x12) + 0x2 * ((uint64_t) x15 * x10)))));
- uint64_t x23 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0x19 * ((uint64_t) x8 * x15 + (0x2 * ((uint64_t) x10 * x16) + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + (0x2 * ((uint64_t) x16 * x10) + (uint64_t) x15 * x8)))));
- uint64_t x24 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x19 * ((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6))))));
- uint64_t x25 = (uint64_t) x2 * x2 + 0x19 * (0x2 * ((uint64_t) x4 * x15) + (0x2 * ((uint64_t) x6 * x16) + ((uint64_t) x8 * x14 + (0x2 * ((uint64_t) x10 * x12) + (0x2 * ((uint64_t) x12 * x10) + ((uint64_t) x14 * x8 + (0x2 * ((uint64_t) x16 * x6) + 0x2 * ((uint64_t) x15 * x4))))))));
+ uint64_t x17 = (((uint64_t)x2 * x15) + ((0x2 * ((uint64_t)x4 * x16)) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x15 * x2)))))))));
+ uint64_t x18 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x19 * ((uint64_t)x15 * x15)));
+ uint64_t x19 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x19 * ((0x2 * ((uint64_t)x16 * x15)) + (0x2 * ((uint64_t)x15 * x16)))));
+ uint64_t x20 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (0x19 * (((uint64_t)x14 * x15) + ((0x2 * ((uint64_t)x16 * x16)) + ((uint64_t)x15 * x14)))));
+ uint64_t x21 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x19 * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))));
+ uint64_t x22 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x19 * ((0x2 * ((uint64_t)x10 * x15)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + (0x2 * ((uint64_t)x15 * x10))))))));
+ uint64_t x23 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x19 * (((uint64_t)x8 * x15) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + ((uint64_t)x15 * x8))))))));
+ uint64_t x24 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x19 * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))));
+ uint64_t x25 = (((uint64_t)x2 * x2) + (0x19 * ((0x2 * ((uint64_t)x4 * x15)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + (0x2 * ((uint64_t)x15 * x4)))))))))));
uint32_t x26 = (uint32_t) (x25 >> 0x13);
- uint32_t x27 = (uint32_t) x25 & 0x7ffff;
- uint64_t x28 = x26 + x24;
+ uint32_t x27 = ((uint32_t)x25 & 0x7ffff);
+ uint64_t x28 = (x26 + x24);
uint32_t x29 = (uint32_t) (x28 >> 0x12);
- uint32_t x30 = (uint32_t) x28 & 0x3ffff;
- uint64_t x31 = x29 + x23;
+ uint32_t x30 = ((uint32_t)x28 & 0x3ffff);
+ uint64_t x31 = (x29 + x23);
uint32_t x32 = (uint32_t) (x31 >> 0x12);
- uint32_t x33 = (uint32_t) x31 & 0x3ffff;
- uint64_t x34 = x32 + x22;
+ uint32_t x33 = ((uint32_t)x31 & 0x3ffff);
+ uint64_t x34 = (x32 + x22);
uint32_t x35 = (uint32_t) (x34 >> 0x13);
- uint32_t x36 = (uint32_t) x34 & 0x7ffff;
- uint64_t x37 = x35 + x21;
+ uint32_t x36 = ((uint32_t)x34 & 0x7ffff);
+ uint64_t x37 = (x35 + x21);
uint32_t x38 = (uint32_t) (x37 >> 0x12);
- uint32_t x39 = (uint32_t) x37 & 0x3ffff;
- uint64_t x40 = x38 + x20;
+ uint32_t x39 = ((uint32_t)x37 & 0x3ffff);
+ uint64_t x40 = (x38 + x20);
uint32_t x41 = (uint32_t) (x40 >> 0x12);
- uint32_t x42 = (uint32_t) x40 & 0x3ffff;
- uint64_t x43 = x41 + x19;
+ uint32_t x42 = ((uint32_t)x40 & 0x3ffff);
+ uint64_t x43 = (x41 + x19);
uint32_t x44 = (uint32_t) (x43 >> 0x13);
- uint32_t x45 = (uint32_t) x43 & 0x7ffff;
- uint64_t x46 = x44 + x18;
+ uint32_t x45 = ((uint32_t)x43 & 0x7ffff);
+ uint64_t x46 = (x44 + x18);
uint32_t x47 = (uint32_t) (x46 >> 0x12);
- uint32_t x48 = (uint32_t) x46 & 0x3ffff;
- uint64_t x49 = x47 + x17;
+ uint32_t x48 = ((uint32_t)x46 & 0x3ffff);
+ uint64_t x49 = (x47 + x17);
uint32_t x50 = (uint32_t) (x49 >> 0x12);
- uint32_t x51 = (uint32_t) x49 & 0x3ffff;
- uint32_t x52 = x27 + 0x19 * x50;
- uint32_t x53 = x52 >> 0x13;
- uint32_t x54 = x52 & 0x7ffff;
- uint32_t x55 = x53 + x30;
- uint32_t x56 = x55 >> 0x12;
- uint32_t x57 = x55 & 0x3ffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ uint32_t x51 = ((uint32_t)x49 & 0x3ffff);
+ uint32_t x52 = (x27 + (0x19 * x50));
+ uint32_t x53 = (x52 >> 0x13);
+ uint32_t x54 = (x52 & 0x7ffff);
+ uint32_t x55 = (x53 + x30);
+ uint32_t x56 = (x55 >> 0x12);
+ uint32_t x57 = (x55 & 0x3ffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
: 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_2e165m25/freezeDisplay.log b/src/Specific/solinas32_2e165m25/freezeDisplay.log
index 9f8cd60dc..079c15c43 100644
--- a/src/Specific/solinas32_2e165m25/freezeDisplay.log
+++ b/src/Specific/solinas32_2e165m25/freezeDisplay.log
@@ -12,23 +12,23 @@ Interp-η
uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x3ffff);
uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x3ffff);
uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
- uint32_t x45 = x44 & 0x7ffe7;
+ uint32_t x45 = (x44 & 0x7ffe7);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint32_t x49 = x44 & 0x3ffff;
+ uint32_t x49 = (x44 & 0x3ffff);
uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint32_t x53 = x44 & 0x3ffff;
+ uint32_t x53 = (x44 & 0x3ffff);
uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint32_t x57 = x44 & 0x7ffff;
+ uint32_t x57 = (x44 & 0x7ffff);
uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint32_t x61 = x44 & 0x3ffff;
+ uint32_t x61 = (x44 & 0x3ffff);
uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint32_t x65 = x44 & 0x3ffff;
+ uint32_t x65 = (x44 & 0x3ffff);
uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint32_t x69 = x44 & 0x7ffff;
+ uint32_t x69 = (x44 & 0x7ffff);
uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint32_t x73 = x44 & 0x3ffff;
+ uint32_t x73 = (x44 & 0x3ffff);
uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint32_t x77 = x44 & 0x3ffff;
+ uint32_t x77 = (x44 & 0x3ffff);
uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 18 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
(Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
diff --git a/src/Specific/solinas32_2e171m19/femulDisplay.log b/src/Specific/solinas32_2e171m19/femulDisplay.log
index 37bf0adc0..e0d4e103d 100644
--- a/src/Specific/solinas32_2e171m19/femulDisplay.log
+++ b/src/Specific/solinas32_2e171m19/femulDisplay.log
@@ -2,47 +2,47 @@
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,
- uint64_t x36 = (uint64_t) x5 * x34 + ((uint64_t) x7 * x35 + ((uint64_t) x9 * x33 + ((uint64_t) x11 * x31 + ((uint64_t) x13 * x29 + ((uint64_t) x15 * x27 + ((uint64_t) x17 * x25 + ((uint64_t) x19 * x23 + (uint64_t) x18 * x21)))))));
- uint64_t x37 = (uint64_t) x5 * x35 + ((uint64_t) x7 * x33 + ((uint64_t) x9 * x31 + ((uint64_t) x11 * x29 + ((uint64_t) x13 * x27 + ((uint64_t) x15 * x25 + ((uint64_t) x17 * x23 + (uint64_t) x19 * x21)))))) + 0x13 * ((uint64_t) x18 * x34);
- uint64_t x38 = (uint64_t) x5 * x33 + ((uint64_t) x7 * x31 + ((uint64_t) x9 * x29 + ((uint64_t) x11 * x27 + ((uint64_t) x13 * x25 + ((uint64_t) x15 * x23 + (uint64_t) x17 * x21))))) + 0x13 * ((uint64_t) x19 * x34 + (uint64_t) x18 * x35);
- uint64_t x39 = (uint64_t) x5 * x31 + ((uint64_t) x7 * x29 + ((uint64_t) x9 * x27 + ((uint64_t) x11 * x25 + ((uint64_t) x13 * x23 + (uint64_t) x15 * x21)))) + 0x13 * ((uint64_t) x17 * x34 + ((uint64_t) x19 * x35 + (uint64_t) x18 * x33));
- uint64_t x40 = (uint64_t) x5 * x29 + ((uint64_t) x7 * x27 + ((uint64_t) x9 * x25 + ((uint64_t) x11 * x23 + (uint64_t) x13 * x21))) + 0x13 * ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31)));
- uint64_t x41 = (uint64_t) x5 * x27 + ((uint64_t) x7 * x25 + ((uint64_t) x9 * x23 + (uint64_t) x11 * x21)) + 0x13 * ((uint64_t) x13 * x34 + ((uint64_t) x15 * x35 + ((uint64_t) x17 * x33 + ((uint64_t) x19 * x31 + (uint64_t) x18 * x29))));
- uint64_t x42 = (uint64_t) x5 * x25 + ((uint64_t) x7 * x23 + (uint64_t) x9 * x21) + 0x13 * ((uint64_t) x11 * x34 + ((uint64_t) x13 * x35 + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + ((uint64_t) x19 * x29 + (uint64_t) x18 * x27)))));
- uint64_t x43 = (uint64_t) x5 * x23 + (uint64_t) x7 * x21 + 0x13 * ((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25))))));
- uint64_t x44 = (uint64_t) x5 * x21 + 0x13 * ((uint64_t) x7 * x34 + ((uint64_t) x9 * x35 + ((uint64_t) x11 * x33 + ((uint64_t) x13 * x31 + ((uint64_t) x15 * x29 + ((uint64_t) x17 * x27 + ((uint64_t) x19 * x25 + (uint64_t) x18 * x23)))))));
+ uint64_t x36 = (((uint64_t)x5 * x34) + (((uint64_t)x7 * x35) + (((uint64_t)x9 * x33) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + (((uint64_t)x19 * x23) + ((uint64_t)x18 * x21)))))))));
+ uint64_t x37 = ((((uint64_t)x5 * x35) + (((uint64_t)x7 * x33) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x19 * x21)))))))) + (0x13 * ((uint64_t)x18 * x34)));
+ uint64_t x38 = ((((uint64_t)x5 * x33) + (((uint64_t)x7 * x31) + (((uint64_t)x9 * x29) + (((uint64_t)x11 * x27) + (((uint64_t)x13 * x25) + (((uint64_t)x15 * x23) + ((uint64_t)x17 * x21))))))) + (0x13 * (((uint64_t)x19 * x34) + ((uint64_t)x18 * x35))));
+ uint64_t x39 = ((((uint64_t)x5 * x31) + (((uint64_t)x7 * x29) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + (((uint64_t)x13 * x23) + ((uint64_t)x15 * x21)))))) + (0x13 * (((uint64_t)x17 * x34) + (((uint64_t)x19 * x35) + ((uint64_t)x18 * x33)))));
+ uint64_t x40 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + ((uint64_t)x13 * x21))))) + (0x13 * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))));
+ uint64_t x41 = ((((uint64_t)x5 * x27) + (((uint64_t)x7 * x25) + (((uint64_t)x9 * x23) + ((uint64_t)x11 * x21)))) + (0x13 * (((uint64_t)x13 * x34) + (((uint64_t)x15 * x35) + (((uint64_t)x17 * x33) + (((uint64_t)x19 * x31) + ((uint64_t)x18 * x29)))))));
+ uint64_t x42 = ((((uint64_t)x5 * x25) + (((uint64_t)x7 * x23) + ((uint64_t)x9 * x21))) + (0x13 * (((uint64_t)x11 * x34) + (((uint64_t)x13 * x35) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + (((uint64_t)x19 * x29) + ((uint64_t)x18 * x27))))))));
+ uint64_t x43 = ((((uint64_t)x5 * x23) + ((uint64_t)x7 * x21)) + (0x13 * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))));
+ uint64_t x44 = (((uint64_t)x5 * x21) + (0x13 * (((uint64_t)x7 * x34) + (((uint64_t)x9 * x35) + (((uint64_t)x11 * x33) + (((uint64_t)x13 * x31) + (((uint64_t)x15 * x29) + (((uint64_t)x17 * x27) + (((uint64_t)x19 * x25) + ((uint64_t)x18 * x23))))))))));
uint32_t x45 = (uint32_t) (x44 >> 0x13);
- uint32_t x46 = (uint32_t) x44 & 0x7ffff;
- uint64_t x47 = x45 + x43;
+ uint32_t x46 = ((uint32_t)x44 & 0x7ffff);
+ uint64_t x47 = (x45 + x43);
uint32_t x48 = (uint32_t) (x47 >> 0x13);
- uint32_t x49 = (uint32_t) x47 & 0x7ffff;
- uint64_t x50 = x48 + x42;
+ uint32_t x49 = ((uint32_t)x47 & 0x7ffff);
+ uint64_t x50 = (x48 + x42);
uint32_t x51 = (uint32_t) (x50 >> 0x13);
- uint32_t x52 = (uint32_t) x50 & 0x7ffff;
- uint64_t x53 = x51 + x41;
+ uint32_t x52 = ((uint32_t)x50 & 0x7ffff);
+ uint64_t x53 = (x51 + x41);
uint32_t x54 = (uint32_t) (x53 >> 0x13);
- uint32_t x55 = (uint32_t) x53 & 0x7ffff;
- uint64_t x56 = x54 + x40;
+ uint32_t x55 = ((uint32_t)x53 & 0x7ffff);
+ uint64_t x56 = (x54 + x40);
uint32_t x57 = (uint32_t) (x56 >> 0x13);
- uint32_t x58 = (uint32_t) x56 & 0x7ffff;
- uint64_t x59 = x57 + x39;
+ uint32_t x58 = ((uint32_t)x56 & 0x7ffff);
+ uint64_t x59 = (x57 + x39);
uint32_t x60 = (uint32_t) (x59 >> 0x13);
- uint32_t x61 = (uint32_t) x59 & 0x7ffff;
- uint64_t x62 = x60 + x38;
+ uint32_t x61 = ((uint32_t)x59 & 0x7ffff);
+ uint64_t x62 = (x60 + x38);
uint32_t x63 = (uint32_t) (x62 >> 0x13);
- uint32_t x64 = (uint32_t) x62 & 0x7ffff;
- uint64_t x65 = x63 + x37;
+ uint32_t x64 = ((uint32_t)x62 & 0x7ffff);
+ uint64_t x65 = (x63 + x37);
uint32_t x66 = (uint32_t) (x65 >> 0x13);
- uint32_t x67 = (uint32_t) x65 & 0x7ffff;
- uint64_t x68 = x66 + x36;
+ uint32_t x67 = ((uint32_t)x65 & 0x7ffff);
+ uint64_t x68 = (x66 + x36);
uint32_t x69 = (uint32_t) (x68 >> 0x13);
- uint32_t x70 = (uint32_t) x68 & 0x7ffff;
- uint32_t x71 = x46 + 0x13 * x69;
- uint32_t x72 = x71 >> 0x13;
- uint32_t x73 = x71 & 0x7ffff;
- uint32_t x74 = x72 + x49;
- uint32_t x75 = x74 >> 0x13;
- uint32_t x76 = x74 & 0x7ffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ uint32_t x70 = ((uint32_t)x68 & 0x7ffff);
+ uint32_t x71 = (x46 + (0x13 * x69));
+ uint32_t x72 = (x71 >> 0x13);
+ uint32_t x73 = (x71 & 0x7ffff);
+ uint32_t x74 = (x72 + x49);
+ uint32_t x75 = (x74 >> 0x13);
+ uint32_t x76 = (x74 & 0x7ffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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_2e171m19/fesquareDisplay.log b/src/Specific/solinas32_2e171m19/fesquareDisplay.log
index f6b8cf320..d0ed9d39e 100644
--- a/src/Specific/solinas32_2e171m19/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e171m19/fesquareDisplay.log
@@ -2,47 +2,47 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x17 = (uint64_t) x2 * x15 + ((uint64_t) x4 * x16 + ((uint64_t) x6 * x14 + ((uint64_t) x8 * x12 + ((uint64_t) x10 * x10 + ((uint64_t) x12 * x8 + ((uint64_t) x14 * x6 + ((uint64_t) x16 * x4 + (uint64_t) x15 * x2)))))));
- uint64_t x18 = (uint64_t) x2 * x16 + ((uint64_t) x4 * x14 + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + ((uint64_t) x14 * x4 + (uint64_t) x16 * x2)))))) + 0x13 * ((uint64_t) x15 * x15);
- uint64_t x19 = (uint64_t) x2 * x14 + ((uint64_t) x4 * x12 + ((uint64_t) x6 * x10 + ((uint64_t) x8 * x8 + ((uint64_t) x10 * x6 + ((uint64_t) x12 * x4 + (uint64_t) x14 * x2))))) + 0x13 * ((uint64_t) x16 * x15 + (uint64_t) x15 * x16);
- uint64_t x20 = (uint64_t) x2 * x12 + ((uint64_t) x4 * x10 + ((uint64_t) x6 * x8 + ((uint64_t) x8 * x6 + ((uint64_t) x10 * x4 + (uint64_t) x12 * x2)))) + 0x13 * ((uint64_t) x14 * x15 + ((uint64_t) x16 * x16 + (uint64_t) x15 * x14));
- uint64_t x21 = (uint64_t) x2 * x10 + ((uint64_t) x4 * x8 + ((uint64_t) x6 * x6 + ((uint64_t) x8 * x4 + (uint64_t) x10 * x2))) + 0x13 * ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12)));
- uint64_t x22 = (uint64_t) x2 * x8 + ((uint64_t) x4 * x6 + ((uint64_t) x6 * x4 + (uint64_t) x8 * x2)) + 0x13 * ((uint64_t) x10 * x15 + ((uint64_t) x12 * x16 + ((uint64_t) x14 * x14 + ((uint64_t) x16 * x12 + (uint64_t) x15 * x10))));
- uint64_t x23 = (uint64_t) x2 * x6 + ((uint64_t) x4 * x4 + (uint64_t) x6 * x2) + 0x13 * ((uint64_t) x8 * x15 + ((uint64_t) x10 * x16 + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + ((uint64_t) x16 * x10 + (uint64_t) x15 * x8)))));
- uint64_t x24 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x13 * ((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6))))));
- uint64_t x25 = (uint64_t) x2 * x2 + 0x13 * ((uint64_t) x4 * x15 + ((uint64_t) x6 * x16 + ((uint64_t) x8 * x14 + ((uint64_t) x10 * x12 + ((uint64_t) x12 * x10 + ((uint64_t) x14 * x8 + ((uint64_t) x16 * x6 + (uint64_t) x15 * x4)))))));
+ uint64_t x17 = (((uint64_t)x2 * x15) + (((uint64_t)x4 * x16) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + (((uint64_t)x10 * x10) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + (((uint64_t)x16 * x4) + ((uint64_t)x15 * x2)))))))));
+ uint64_t x18 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x13 * ((uint64_t)x15 * x15)));
+ uint64_t x19 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x13 * (((uint64_t)x16 * x15) + ((uint64_t)x15 * x16))));
+ uint64_t x20 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x13 * (((uint64_t)x14 * x15) + (((uint64_t)x16 * x16) + ((uint64_t)x15 * x14)))));
+ uint64_t x21 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x13 * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))));
+ uint64_t x22 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x13 * (((uint64_t)x10 * x15) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + ((uint64_t)x15 * x10)))))));
+ uint64_t x23 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x13 * (((uint64_t)x8 * x15) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + ((uint64_t)x15 * x8))))))));
+ uint64_t x24 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x13 * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))));
+ uint64_t x25 = (((uint64_t)x2 * x2) + (0x13 * (((uint64_t)x4 * x15) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + ((uint64_t)x15 * x4))))))))));
uint32_t x26 = (uint32_t) (x25 >> 0x13);
- uint32_t x27 = (uint32_t) x25 & 0x7ffff;
- uint64_t x28 = x26 + x24;
+ uint32_t x27 = ((uint32_t)x25 & 0x7ffff);
+ uint64_t x28 = (x26 + x24);
uint32_t x29 = (uint32_t) (x28 >> 0x13);
- uint32_t x30 = (uint32_t) x28 & 0x7ffff;
- uint64_t x31 = x29 + x23;
+ uint32_t x30 = ((uint32_t)x28 & 0x7ffff);
+ uint64_t x31 = (x29 + x23);
uint32_t x32 = (uint32_t) (x31 >> 0x13);
- uint32_t x33 = (uint32_t) x31 & 0x7ffff;
- uint64_t x34 = x32 + x22;
+ uint32_t x33 = ((uint32_t)x31 & 0x7ffff);
+ uint64_t x34 = (x32 + x22);
uint32_t x35 = (uint32_t) (x34 >> 0x13);
- uint32_t x36 = (uint32_t) x34 & 0x7ffff;
- uint64_t x37 = x35 + x21;
+ uint32_t x36 = ((uint32_t)x34 & 0x7ffff);
+ uint64_t x37 = (x35 + x21);
uint32_t x38 = (uint32_t) (x37 >> 0x13);
- uint32_t x39 = (uint32_t) x37 & 0x7ffff;
- uint64_t x40 = x38 + x20;
+ uint32_t x39 = ((uint32_t)x37 & 0x7ffff);
+ uint64_t x40 = (x38 + x20);
uint32_t x41 = (uint32_t) (x40 >> 0x13);
- uint32_t x42 = (uint32_t) x40 & 0x7ffff;
- uint64_t x43 = x41 + x19;
+ uint32_t x42 = ((uint32_t)x40 & 0x7ffff);
+ uint64_t x43 = (x41 + x19);
uint32_t x44 = (uint32_t) (x43 >> 0x13);
- uint32_t x45 = (uint32_t) x43 & 0x7ffff;
- uint64_t x46 = x44 + x18;
+ uint32_t x45 = ((uint32_t)x43 & 0x7ffff);
+ uint64_t x46 = (x44 + x18);
uint32_t x47 = (uint32_t) (x46 >> 0x13);
- uint32_t x48 = (uint32_t) x46 & 0x7ffff;
- uint64_t x49 = x47 + x17;
+ uint32_t x48 = ((uint32_t)x46 & 0x7ffff);
+ uint64_t x49 = (x47 + x17);
uint32_t x50 = (uint32_t) (x49 >> 0x13);
- uint32_t x51 = (uint32_t) x49 & 0x7ffff;
- uint32_t x52 = x27 + 0x13 * x50;
- uint32_t x53 = x52 >> 0x13;
- uint32_t x54 = x52 & 0x7ffff;
- uint32_t x55 = x53 + x30;
- uint32_t x56 = x55 >> 0x13;
- uint32_t x57 = x55 & 0x7ffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ uint32_t x51 = ((uint32_t)x49 & 0x7ffff);
+ uint32_t x52 = (x27 + (0x13 * x50));
+ uint32_t x53 = (x52 >> 0x13);
+ uint32_t x54 = (x52 & 0x7ffff);
+ uint32_t x55 = (x53 + x30);
+ uint32_t x56 = (x55 >> 0x13);
+ uint32_t x57 = (x55 & 0x7ffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
: 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_2e171m19/freezeDisplay.log b/src/Specific/solinas32_2e171m19/freezeDisplay.log
index 5e5c8a850..a9af4bd45 100644
--- a/src/Specific/solinas32_2e171m19/freezeDisplay.log
+++ b/src/Specific/solinas32_2e171m19/freezeDisplay.log
@@ -12,23 +12,23 @@ Interp-η
uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x7ffff);
uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x7ffff);
uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
- uint32_t x45 = x44 & 0x7ffed;
+ uint32_t x45 = (x44 & 0x7ffed);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint32_t x49 = x44 & 0x7ffff;
+ uint32_t x49 = (x44 & 0x7ffff);
uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint32_t x53 = x44 & 0x7ffff;
+ uint32_t x53 = (x44 & 0x7ffff);
uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint32_t x57 = x44 & 0x7ffff;
+ uint32_t x57 = (x44 & 0x7ffff);
uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint32_t x61 = x44 & 0x7ffff;
+ uint32_t x61 = (x44 & 0x7ffff);
uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint32_t x65 = x44 & 0x7ffff;
+ uint32_t x65 = (x44 & 0x7ffff);
uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint32_t x69 = x44 & 0x7ffff;
+ uint32_t x69 = (x44 & 0x7ffff);
uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint32_t x73 = x44 & 0x7ffff;
+ uint32_t x73 = (x44 & 0x7ffff);
uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint32_t x77 = x44 & 0x7ffff;
+ uint32_t x77 = (x44 & 0x7ffff);
uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
(Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
diff --git a/src/Specific/solinas32_2e174m17/femulDisplay.log b/src/Specific/solinas32_2e174m17/femulDisplay.log
index 8fbdda856..a0a85409c 100644
--- a/src/Specific/solinas32_2e174m17/femulDisplay.log
+++ b/src/Specific/solinas32_2e174m17/femulDisplay.log
@@ -2,47 +2,47 @@
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,
- uint64_t x36 = (uint64_t) x5 * x34 + (0x2 * ((uint64_t) x7 * x35) + ((uint64_t) x9 * x33 + ((uint64_t) x11 * x31 + (0x2 * ((uint64_t) x13 * x29) + ((uint64_t) x15 * x27 + ((uint64_t) x17 * x25 + (0x2 * ((uint64_t) x19 * x23) + (uint64_t) x18 * x21)))))));
- uint64_t x37 = (uint64_t) x5 * x35 + ((uint64_t) x7 * x33 + ((uint64_t) x9 * x31 + ((uint64_t) x11 * x29 + ((uint64_t) x13 * x27 + ((uint64_t) x15 * x25 + ((uint64_t) x17 * x23 + (uint64_t) x19 * x21)))))) + 0x11 * ((uint64_t) x18 * x34);
- uint64_t x38 = (uint64_t) x5 * x33 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + ((uint64_t) x11 * x27 + (0x2 * ((uint64_t) x13 * x25) + (0x2 * ((uint64_t) x15 * x23) + (uint64_t) x17 * x21))))) + 0x11 * (0x2 * ((uint64_t) x19 * x34) + 0x2 * ((uint64_t) x18 * x35));
- uint64_t x39 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + ((uint64_t) x9 * x27 + ((uint64_t) x11 * x25 + (0x2 * ((uint64_t) x13 * x23) + (uint64_t) x15 * x21)))) + 0x11 * ((uint64_t) x17 * x34 + (0x2 * ((uint64_t) x19 * x35) + (uint64_t) x18 * x33));
- uint64_t x40 = (uint64_t) x5 * x29 + ((uint64_t) x7 * x27 + ((uint64_t) x9 * x25 + ((uint64_t) x11 * x23 + (uint64_t) x13 * x21))) + 0x11 * ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31)));
- uint64_t x41 = (uint64_t) x5 * x27 + (0x2 * ((uint64_t) x7 * x25) + (0x2 * ((uint64_t) x9 * x23) + (uint64_t) x11 * x21)) + 0x11 * (0x2 * ((uint64_t) x13 * x34) + (0x2 * ((uint64_t) x15 * x35) + ((uint64_t) x17 * x33 + (0x2 * ((uint64_t) x19 * x31) + 0x2 * ((uint64_t) x18 * x29)))));
- uint64_t x42 = (uint64_t) x5 * x25 + (0x2 * ((uint64_t) x7 * x23) + (uint64_t) x9 * x21) + 0x11 * ((uint64_t) x11 * x34 + (0x2 * ((uint64_t) x13 * x35) + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + (0x2 * ((uint64_t) x19 * x29) + (uint64_t) x18 * x27)))));
- uint64_t x43 = (uint64_t) x5 * x23 + (uint64_t) x7 * x21 + 0x11 * ((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25))))));
- uint64_t x44 = (uint64_t) x5 * x21 + 0x11 * (0x2 * ((uint64_t) x7 * x34) + (0x2 * ((uint64_t) x9 * x35) + ((uint64_t) x11 * x33 + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + ((uint64_t) x17 * x27 + (0x2 * ((uint64_t) x19 * x25) + 0x2 * ((uint64_t) x18 * x23))))))));
+ uint64_t x36 = (((uint64_t)x5 * x34) + ((0x2 * ((uint64_t)x7 * x35)) + (((uint64_t)x9 * x33) + (((uint64_t)x11 * x31) + ((0x2 * ((uint64_t)x13 * x29)) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((0x2 * ((uint64_t)x19 * x23)) + ((uint64_t)x18 * x21)))))))));
+ uint64_t x37 = ((((uint64_t)x5 * x35) + (((uint64_t)x7 * x33) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x19 * x21)))))))) + (0x11 * ((uint64_t)x18 * x34)));
+ uint64_t x38 = ((((uint64_t)x5 * x33) + ((0x2 * ((uint64_t)x7 * x31)) + ((0x2 * ((uint64_t)x9 * x29)) + (((uint64_t)x11 * x27) + ((0x2 * ((uint64_t)x13 * x25)) + ((0x2 * ((uint64_t)x15 * x23)) + ((uint64_t)x17 * x21))))))) + (0x11 * ((0x2 * ((uint64_t)x19 * x34)) + (0x2 * ((uint64_t)x18 * x35)))));
+ uint64_t x39 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + ((0x2 * ((uint64_t)x13 * x23)) + ((uint64_t)x15 * x21)))))) + (0x11 * (((uint64_t)x17 * x34) + ((0x2 * ((uint64_t)x19 * x35)) + ((uint64_t)x18 * x33)))));
+ uint64_t x40 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + ((uint64_t)x13 * x21))))) + (0x11 * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))));
+ uint64_t x41 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((0x2 * ((uint64_t)x9 * x23)) + ((uint64_t)x11 * x21)))) + (0x11 * ((0x2 * ((uint64_t)x13 * x34)) + ((0x2 * ((uint64_t)x15 * x35)) + (((uint64_t)x17 * x33) + ((0x2 * ((uint64_t)x19 * x31)) + (0x2 * ((uint64_t)x18 * x29))))))));
+ uint64_t x42 = ((((uint64_t)x5 * x25) + ((0x2 * ((uint64_t)x7 * x23)) + ((uint64_t)x9 * x21))) + (0x11 * (((uint64_t)x11 * x34) + ((0x2 * ((uint64_t)x13 * x35)) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + ((0x2 * ((uint64_t)x19 * x29)) + ((uint64_t)x18 * x27))))))));
+ uint64_t x43 = ((((uint64_t)x5 * x23) + ((uint64_t)x7 * x21)) + (0x11 * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))));
+ uint64_t x44 = (((uint64_t)x5 * x21) + (0x11 * ((0x2 * ((uint64_t)x7 * x34)) + ((0x2 * ((uint64_t)x9 * x35)) + (((uint64_t)x11 * x33) + ((0x2 * ((uint64_t)x13 * x31)) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + ((0x2 * ((uint64_t)x19 * x25)) + (0x2 * ((uint64_t)x18 * x23)))))))))));
uint32_t x45 = (uint32_t) (x44 >> 0x14);
- uint32_t x46 = (uint32_t) x44 & 0xfffff;
- uint64_t x47 = x45 + x43;
+ uint32_t x46 = ((uint32_t)x44 & 0xfffff);
+ uint64_t x47 = (x45 + x43);
uint32_t x48 = (uint32_t) (x47 >> 0x13);
- uint32_t x49 = (uint32_t) x47 & 0x7ffff;
- uint64_t x50 = x48 + x42;
+ uint32_t x49 = ((uint32_t)x47 & 0x7ffff);
+ uint64_t x50 = (x48 + x42);
uint32_t x51 = (uint32_t) (x50 >> 0x13);
- uint32_t x52 = (uint32_t) x50 & 0x7ffff;
- uint64_t x53 = x51 + x41;
+ uint32_t x52 = ((uint32_t)x50 & 0x7ffff);
+ uint64_t x53 = (x51 + x41);
uint32_t x54 = (uint32_t) (x53 >> 0x14);
- uint32_t x55 = (uint32_t) x53 & 0xfffff;
- uint64_t x56 = x54 + x40;
+ uint32_t x55 = ((uint32_t)x53 & 0xfffff);
+ uint64_t x56 = (x54 + x40);
uint32_t x57 = (uint32_t) (x56 >> 0x13);
- uint32_t x58 = (uint32_t) x56 & 0x7ffff;
- uint64_t x59 = x57 + x39;
+ uint32_t x58 = ((uint32_t)x56 & 0x7ffff);
+ uint64_t x59 = (x57 + x39);
uint32_t x60 = (uint32_t) (x59 >> 0x13);
- uint32_t x61 = (uint32_t) x59 & 0x7ffff;
- uint64_t x62 = x60 + x38;
+ uint32_t x61 = ((uint32_t)x59 & 0x7ffff);
+ uint64_t x62 = (x60 + x38);
uint32_t x63 = (uint32_t) (x62 >> 0x14);
- uint32_t x64 = (uint32_t) x62 & 0xfffff;
- uint64_t x65 = x63 + x37;
+ uint32_t x64 = ((uint32_t)x62 & 0xfffff);
+ uint64_t x65 = (x63 + x37);
uint32_t x66 = (uint32_t) (x65 >> 0x13);
- uint32_t x67 = (uint32_t) x65 & 0x7ffff;
- uint64_t x68 = x66 + x36;
+ uint32_t x67 = ((uint32_t)x65 & 0x7ffff);
+ uint64_t x68 = (x66 + x36);
uint32_t x69 = (uint32_t) (x68 >> 0x13);
- uint32_t x70 = (uint32_t) x68 & 0x7ffff;
- uint32_t x71 = x46 + 0x11 * x69;
- uint32_t x72 = x71 >> 0x14;
- uint32_t x73 = x71 & 0xfffff;
- uint32_t x74 = x72 + x49;
- uint32_t x75 = x74 >> 0x13;
- uint32_t x76 = x74 & 0x7ffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ uint32_t x70 = ((uint32_t)x68 & 0x7ffff);
+ uint32_t x71 = (x46 + (0x11 * x69));
+ uint32_t x72 = (x71 >> 0x14);
+ uint32_t x73 = (x71 & 0xfffff);
+ uint32_t x74 = (x72 + x49);
+ uint32_t x75 = (x74 >> 0x13);
+ uint32_t x76 = (x74 & 0x7ffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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/fesquareDisplay.log b/src/Specific/solinas32_2e174m17/fesquareDisplay.log
index e22158e2f..9f4456a5d 100644
--- a/src/Specific/solinas32_2e174m17/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e174m17/fesquareDisplay.log
@@ -2,47 +2,47 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x17 = (uint64_t) x2 * x15 + (0x2 * ((uint64_t) x4 * x16) + ((uint64_t) x6 * x14 + ((uint64_t) x8 * x12 + (0x2 * ((uint64_t) x10 * x10) + ((uint64_t) x12 * x8 + ((uint64_t) x14 * x6 + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x15 * x2)))))));
- uint64_t x18 = (uint64_t) x2 * x16 + ((uint64_t) x4 * x14 + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + ((uint64_t) x14 * x4 + (uint64_t) x16 * x2)))))) + 0x11 * ((uint64_t) x15 * x15);
- uint64_t x19 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + (0x2 * ((uint64_t) x6 * x10) + ((uint64_t) x8 * x8 + (0x2 * ((uint64_t) x10 * x6) + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + 0x11 * (0x2 * ((uint64_t) x16 * x15) + 0x2 * ((uint64_t) x15 * x16));
- uint64_t x20 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + ((uint64_t) x6 * x8 + ((uint64_t) x8 * x6 + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + 0x11 * ((uint64_t) x14 * x15 + (0x2 * ((uint64_t) x16 * x16) + (uint64_t) x15 * x14));
- uint64_t x21 = (uint64_t) x2 * x10 + ((uint64_t) x4 * x8 + ((uint64_t) x6 * x6 + ((uint64_t) x8 * x4 + (uint64_t) x10 * x2))) + 0x11 * ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12)));
- uint64_t x22 = (uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2)) + 0x11 * (0x2 * ((uint64_t) x10 * x15) + (0x2 * ((uint64_t) x12 * x16) + ((uint64_t) x14 * x14 + (0x2 * ((uint64_t) x16 * x12) + 0x2 * ((uint64_t) x15 * x10)))));
- uint64_t x23 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0x11 * ((uint64_t) x8 * x15 + (0x2 * ((uint64_t) x10 * x16) + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + (0x2 * ((uint64_t) x16 * x10) + (uint64_t) x15 * x8)))));
- uint64_t x24 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x11 * ((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6))))));
- uint64_t x25 = (uint64_t) x2 * x2 + 0x11 * (0x2 * ((uint64_t) x4 * x15) + (0x2 * ((uint64_t) x6 * x16) + ((uint64_t) x8 * x14 + (0x2 * ((uint64_t) x10 * x12) + (0x2 * ((uint64_t) x12 * x10) + ((uint64_t) x14 * x8 + (0x2 * ((uint64_t) x16 * x6) + 0x2 * ((uint64_t) x15 * x4))))))));
+ uint64_t x17 = (((uint64_t)x2 * x15) + ((0x2 * ((uint64_t)x4 * x16)) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x15 * x2)))))))));
+ uint64_t x18 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x11 * ((uint64_t)x15 * x15)));
+ uint64_t x19 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x11 * ((0x2 * ((uint64_t)x16 * x15)) + (0x2 * ((uint64_t)x15 * x16)))));
+ uint64_t x20 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (0x11 * (((uint64_t)x14 * x15) + ((0x2 * ((uint64_t)x16 * x16)) + ((uint64_t)x15 * x14)))));
+ uint64_t x21 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x11 * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))));
+ uint64_t x22 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x11 * ((0x2 * ((uint64_t)x10 * x15)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + (0x2 * ((uint64_t)x15 * x10))))))));
+ uint64_t x23 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x11 * (((uint64_t)x8 * x15) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + ((uint64_t)x15 * x8))))))));
+ uint64_t x24 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x11 * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))));
+ uint64_t x25 = (((uint64_t)x2 * x2) + (0x11 * ((0x2 * ((uint64_t)x4 * x15)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + (0x2 * ((uint64_t)x15 * x4)))))))))));
uint32_t x26 = (uint32_t) (x25 >> 0x14);
- uint32_t x27 = (uint32_t) x25 & 0xfffff;
- uint64_t x28 = x26 + x24;
+ uint32_t x27 = ((uint32_t)x25 & 0xfffff);
+ uint64_t x28 = (x26 + x24);
uint32_t x29 = (uint32_t) (x28 >> 0x13);
- uint32_t x30 = (uint32_t) x28 & 0x7ffff;
- uint64_t x31 = x29 + x23;
+ uint32_t x30 = ((uint32_t)x28 & 0x7ffff);
+ uint64_t x31 = (x29 + x23);
uint32_t x32 = (uint32_t) (x31 >> 0x13);
- uint32_t x33 = (uint32_t) x31 & 0x7ffff;
- uint64_t x34 = x32 + x22;
+ uint32_t x33 = ((uint32_t)x31 & 0x7ffff);
+ uint64_t x34 = (x32 + x22);
uint32_t x35 = (uint32_t) (x34 >> 0x14);
- uint32_t x36 = (uint32_t) x34 & 0xfffff;
- uint64_t x37 = x35 + x21;
+ uint32_t x36 = ((uint32_t)x34 & 0xfffff);
+ uint64_t x37 = (x35 + x21);
uint32_t x38 = (uint32_t) (x37 >> 0x13);
- uint32_t x39 = (uint32_t) x37 & 0x7ffff;
- uint64_t x40 = x38 + x20;
+ uint32_t x39 = ((uint32_t)x37 & 0x7ffff);
+ uint64_t x40 = (x38 + x20);
uint32_t x41 = (uint32_t) (x40 >> 0x13);
- uint32_t x42 = (uint32_t) x40 & 0x7ffff;
- uint64_t x43 = x41 + x19;
+ uint32_t x42 = ((uint32_t)x40 & 0x7ffff);
+ uint64_t x43 = (x41 + x19);
uint32_t x44 = (uint32_t) (x43 >> 0x14);
- uint32_t x45 = (uint32_t) x43 & 0xfffff;
- uint64_t x46 = x44 + x18;
+ uint32_t x45 = ((uint32_t)x43 & 0xfffff);
+ uint64_t x46 = (x44 + x18);
uint32_t x47 = (uint32_t) (x46 >> 0x13);
- uint32_t x48 = (uint32_t) x46 & 0x7ffff;
- uint64_t x49 = x47 + x17;
+ uint32_t x48 = ((uint32_t)x46 & 0x7ffff);
+ uint64_t x49 = (x47 + x17);
uint32_t x50 = (uint32_t) (x49 >> 0x13);
- uint32_t x51 = (uint32_t) x49 & 0x7ffff;
- uint32_t x52 = x27 + 0x11 * x50;
- uint32_t x53 = x52 >> 0x14;
- uint32_t x54 = x52 & 0xfffff;
- uint32_t x55 = x53 + x30;
- uint32_t x56 = x55 >> 0x13;
- uint32_t x57 = x55 & 0x7ffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ uint32_t x51 = ((uint32_t)x49 & 0x7ffff);
+ uint32_t x52 = (x27 + (0x11 * x50));
+ uint32_t x53 = (x52 >> 0x14);
+ uint32_t x54 = (x52 & 0xfffff);
+ uint32_t x55 = (x53 + x30);
+ uint32_t x56 = (x55 >> 0x13);
+ uint32_t x57 = (x55 & 0x7ffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
: 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/freezeDisplay.log b/src/Specific/solinas32_2e174m17/freezeDisplay.log
index da2196d43..86168e41a 100644
--- a/src/Specific/solinas32_2e174m17/freezeDisplay.log
+++ b/src/Specific/solinas32_2e174m17/freezeDisplay.log
@@ -12,23 +12,23 @@ Interp-η
uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x7ffff);
uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x7ffff);
uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
- uint32_t x45 = x44 & 0xfffef;
+ uint32_t x45 = (x44 & 0xfffef);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint32_t x49 = x44 & 0x7ffff;
+ uint32_t x49 = (x44 & 0x7ffff);
uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint32_t x53 = x44 & 0x7ffff;
+ uint32_t x53 = (x44 & 0x7ffff);
uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint32_t x57 = x44 & 0xfffff;
+ uint32_t x57 = (x44 & 0xfffff);
uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint32_t x61 = x44 & 0x7ffff;
+ uint32_t x61 = (x44 & 0x7ffff);
uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint32_t x65 = x44 & 0x7ffff;
+ uint32_t x65 = (x44 & 0x7ffff);
uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint32_t x69 = x44 & 0xfffff;
+ uint32_t x69 = (x44 & 0xfffff);
uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint32_t x73 = x44 & 0x7ffff;
+ uint32_t x73 = (x44 & 0x7ffff);
uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint32_t x77 = x44 & 0x7ffff;
+ uint32_t x77 = (x44 & 0x7ffff);
uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
(Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
diff --git a/src/Specific/solinas32_2e192m2e64m1/femulDisplay.log b/src/Specific/solinas32_2e192m2e64m1/femulDisplay.log
new file mode 100644
index 000000000..ddaf54e48
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1/femulDisplay.log
@@ -0,0 +1,55 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ ℤ x32 = ((((uint64_t)x5 * x30) + (((uint64_t)x7 * x31) + (((uint64_t)x9 * x29) + (((uint64_t)x11 * x27) + (((uint64_t)x13 * x25) + (((uint64_t)x15 * x23) + (((uint64_t)x17 * x21) + ((uint64_t)x16 * x19)))))))) +ℤ ((0x10000 *ℤ (((uint64_t)x17 * x30) + ((uint64_t)x16 * x31))) +ℤ (0x10000000000 *ℤ ((uint64_t)x16 * x30))));
+ ℤ x33 = ((((uint64_t)x5 * x31) + (((uint64_t)x7 * x29) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + (((uint64_t)x13 * x23) + (((uint64_t)x15 * x21) + ((uint64_t)x17 * x19))))))) +ℤ (((uint64_t)x16 * x30) +ℤ (0x10000 *ℤ (((uint64_t)x15 * x30) + (((uint64_t)x17 * x31) + ((uint64_t)x16 * x29))))));
+ ℤ x34 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + (((uint64_t)x13 * x21) + ((uint64_t)x15 * x19)))))) +ℤ ((((uint64_t)x17 * x30) + ((uint64_t)x16 * x31)) +ℤ (0x10000 *ℤ (((uint64_t)x13 * x30) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + ((uint64_t)x16 * x27)))))));
+ ℤ x35 = ((((uint64_t)x5 * x27) + (((uint64_t)x7 * x25) + (((uint64_t)x9 * x23) + (((uint64_t)x11 * x21) + ((uint64_t)x13 * x19))))) +ℤ ((((uint64_t)x15 * x30) + (((uint64_t)x17 * x31) + ((uint64_t)x16 * x29))) +ℤ (0x10000 *ℤ (((uint64_t)x11 * x30) + (((uint64_t)x13 * x31) + (((uint64_t)x15 * x29) + (((uint64_t)x17 * x27) + ((uint64_t)x16 * x25))))))));
+ ℤ x36 = ((((uint64_t)x5 * x25) + (((uint64_t)x7 * x23) + (((uint64_t)x9 * x21) + ((uint64_t)x11 * x19)))) +ℤ ((((uint64_t)x13 * x30) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + ((uint64_t)x16 * x27)))) +ℤ (0x10000 *ℤ (((uint64_t)x9 * x30) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((uint64_t)x16 * x23)))))))));
+ ℤ x37 = ((((uint64_t)x5 * x23) + (((uint64_t)x7 * x21) + ((uint64_t)x9 * x19))) +ℤ ((((uint64_t)x11 * x30) + (((uint64_t)x13 * x31) + (((uint64_t)x15 * x29) + (((uint64_t)x17 * x27) + ((uint64_t)x16 * x25))))) +ℤ (0x10000 *ℤ (((uint64_t)x7 * x30) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x16 * x21))))))))));
+ uint64_t x38 = ((((uint64_t)x5 * x21) + ((uint64_t)x7 * x19)) + (((uint64_t)x9 * x30) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((uint64_t)x16 * x23)))))));
+ uint64_t x39 = (((uint64_t)x5 * x19) + (((uint64_t)x7 * x30) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x16 * x21))))))));
+ uint32_t x40 = (uint32_t) (x38 >> 0x18);
+ uint32_t x41 = ((uint32_t)x38 & 0xffffff);
+ ℤ x42 = (x32 >>ℤ 0x18);
+ uint32_t x43 = (x32 & 0xffffff);
+ ℤ x44 = ((0x1000000 *ℤ x42) +ℤ x43);
+ ℤ x45 = (x44 >>ℤ 0x18);
+ uint32_t x46 = (x44 & 0xffffff);
+ ℤ x47 = ((x40 +ℤ x37) +ℤ (0x10000 *ℤ x45));
+ uint64_t x48 = (x47 >> 0x18);
+ uint32_t x49 = (x47 & 0xffffff);
+ ℤ x50 = (x39 +ℤ x45);
+ uint64_t x51 = (x50 >> 0x18);
+ uint32_t x52 = (x50 & 0xffffff);
+ ℤ x53 = (x48 +ℤ x36);
+ uint64_t x54 = (x53 >> 0x18);
+ uint32_t x55 = (x53 & 0xffffff);
+ uint64_t x56 = (x51 + x41);
+ uint32_t x57 = (uint32_t) (x56 >> 0x18);
+ uint32_t x58 = ((uint32_t)x56 & 0xffffff);
+ ℤ x59 = (x54 +ℤ x35);
+ uint64_t x60 = (x59 >> 0x18);
+ uint32_t x61 = (x59 & 0xffffff);
+ ℤ x62 = (x60 +ℤ x34);
+ uint64_t x63 = (x62 >> 0x18);
+ uint32_t x64 = (x62 & 0xffffff);
+ ℤ x65 = (x63 +ℤ x33);
+ uint64_t x66 = (x65 >> 0x18);
+ uint32_t x67 = (x65 & 0xffffff);
+ uint64_t x68 = (x66 + x46);
+ uint32_t x69 = (uint32_t) (x68 >> 0x18);
+ uint32_t x70 = ((uint32_t)x68 & 0xffffff);
+ uint64_t x71 = (((uint64_t)0x1000000 * x69) + x70);
+ uint32_t x72 = (uint32_t) (x71 >> 0x18);
+ uint32_t x73 = ((uint32_t)x71 & 0xffffff);
+ uint64_t x74 = ((x57 + x49) + ((uint64_t)0x10000 * x72));
+ uint32_t x75 = (uint32_t) (x74 >> 0x18);
+ uint32_t x76 = ((uint32_t)x74 & 0xffffff);
+ uint32_t x77 = (x52 + x72);
+ uint32_t x78 = (x77 >> 0x18);
+ uint32_t x79 = (x77 & 0xffffff);
+ return (Return x73, Return x67, Return x64, Return x61, (x75 + x55), Return x76, (x78 + x58), Return x79))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e192m2e64m1/fesquareDisplay.log b/src/Specific/solinas32_2e192m2e64m1/fesquareDisplay.log
new file mode 100644
index 000000000..c9adca713
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1/fesquareDisplay.log
@@ -0,0 +1,55 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ ℤ x15 = ((((uint64_t)x2 * x13) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x13 * x2)))))))) +ℤ ((0x10000 *ℤ (((uint64_t)x14 * x13) + ((uint64_t)x13 * x14))) +ℤ (0x10000000000 *ℤ ((uint64_t)x13 * x13))));
+ ℤ x16 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) +ℤ (((uint64_t)x13 * x13) +ℤ (0x10000 *ℤ (((uint64_t)x12 * x13) + (((uint64_t)x14 * x14) + ((uint64_t)x13 * x12))))));
+ ℤ x17 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) +ℤ ((((uint64_t)x14 * x13) + ((uint64_t)x13 * x14)) +ℤ (0x10000 *ℤ (((uint64_t)x10 * x13) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((uint64_t)x13 * x10)))))));
+ ℤ x18 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) +ℤ ((((uint64_t)x12 * x13) + (((uint64_t)x14 * x14) + ((uint64_t)x13 * x12))) +ℤ (0x10000 *ℤ (((uint64_t)x8 * x13) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + ((uint64_t)x13 * x8))))))));
+ ℤ x19 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) +ℤ ((((uint64_t)x10 * x13) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((uint64_t)x13 * x10)))) +ℤ (0x10000 *ℤ (((uint64_t)x6 * x13) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + ((uint64_t)x13 * x6)))))))));
+ ℤ x20 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) +ℤ ((((uint64_t)x8 * x13) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + ((uint64_t)x13 * x8))))) +ℤ (0x10000 *ℤ (((uint64_t)x4 * x13) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + (((uint64_t)x10 * x10) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((uint64_t)x13 * x4))))))))));
+ uint64_t x21 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (((uint64_t)x6 * x13) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + ((uint64_t)x13 * x6)))))));
+ uint64_t x22 = (((uint64_t)x2 * x2) + (((uint64_t)x4 * x13) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + (((uint64_t)x10 * x10) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((uint64_t)x13 * x4))))))));
+ uint32_t x23 = (uint32_t) (x21 >> 0x18);
+ uint32_t x24 = ((uint32_t)x21 & 0xffffff);
+ ℤ x25 = (x15 >>ℤ 0x18);
+ uint32_t x26 = (x15 & 0xffffff);
+ ℤ x27 = ((0x1000000 *ℤ x25) +ℤ x26);
+ ℤ x28 = (x27 >>ℤ 0x18);
+ uint32_t x29 = (x27 & 0xffffff);
+ ℤ x30 = ((x23 +ℤ x20) +ℤ (0x10000 *ℤ x28));
+ uint64_t x31 = (x30 >> 0x18);
+ uint32_t x32 = (x30 & 0xffffff);
+ ℤ x33 = (x22 +ℤ x28);
+ uint64_t x34 = (x33 >> 0x18);
+ uint32_t x35 = (x33 & 0xffffff);
+ ℤ x36 = (x31 +ℤ x19);
+ uint64_t x37 = (x36 >> 0x18);
+ uint32_t x38 = (x36 & 0xffffff);
+ uint64_t x39 = (x34 + x24);
+ uint32_t x40 = (uint32_t) (x39 >> 0x18);
+ uint32_t x41 = ((uint32_t)x39 & 0xffffff);
+ ℤ x42 = (x37 +ℤ x18);
+ uint64_t x43 = (x42 >> 0x18);
+ uint32_t x44 = (x42 & 0xffffff);
+ ℤ x45 = (x43 +ℤ x17);
+ uint64_t x46 = (x45 >> 0x18);
+ uint32_t x47 = (x45 & 0xffffff);
+ ℤ x48 = (x46 +ℤ x16);
+ uint64_t x49 = (x48 >> 0x18);
+ uint32_t x50 = (x48 & 0xffffff);
+ uint64_t x51 = (x49 + x29);
+ uint32_t x52 = (uint32_t) (x51 >> 0x18);
+ uint32_t x53 = ((uint32_t)x51 & 0xffffff);
+ uint64_t x54 = (((uint64_t)0x1000000 * x52) + x53);
+ uint32_t x55 = (uint32_t) (x54 >> 0x18);
+ uint32_t x56 = ((uint32_t)x54 & 0xffffff);
+ uint64_t x57 = ((x40 + x32) + ((uint64_t)0x10000 * x55));
+ uint32_t x58 = (uint32_t) (x57 >> 0x18);
+ uint32_t x59 = ((uint32_t)x57 & 0xffffff);
+ uint32_t x60 = (x35 + x55);
+ uint32_t x61 = (x60 >> 0x18);
+ uint32_t x62 = (x60 & 0xffffff);
+ return (Return x56, Return x50, Return x47, Return x44, (x58 + x38), Return x59, (x61 + x41), Return x62))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e192m2e64m1/freezeDisplay.log b/src/Specific/solinas32_2e192m2e64m1/freezeDisplay.log
index 546a89fd5..f1b01b28a 100644
--- a/src/Specific/solinas32_2e192m2e64m1/freezeDisplay.log
+++ b/src/Specific/solinas32_2e192m2e64m1/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffff);
uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0xffffff);
uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
- uint32_t x40 = x39 & 0xffffff;
+ uint32_t x40 = (x39 & 0xffffff);
uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
- uint32_t x44 = x39 & 0xffffff;
+ uint32_t x44 = (x39 & 0xffffff);
uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint32_t x48 = x39 & 0xfeffff;
+ uint32_t x48 = (x39 & 0xfeffff);
uint32_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint32_t x52 = x39 & 0xffffff;
+ uint32_t x52 = (x39 & 0xffffff);
uint32_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint32_t x56 = x39 & 0xffffff;
+ uint32_t x56 = (x39 & 0xffffff);
uint32_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint32_t x60 = x39 & 0xffffff;
+ uint32_t x60 = (x39 & 0xffffff);
uint32_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint32_t x64 = x39 & 0xffffff;
+ uint32_t x64 = (x39 & 0xffffff);
uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint32_t x68 = x39 & 0xffffff;
+ uint32_t x68 = (x39 & 0xffffff);
uint32_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas32_2e194m33/femulDisplay.log b/src/Specific/solinas32_2e194m33/femulDisplay.log
index 21ea31097..b7a51ec1a 100644
--- a/src/Specific/solinas32_2e194m33/femulDisplay.log
+++ b/src/Specific/solinas32_2e194m33/femulDisplay.log
@@ -1,60 +1,44 @@
-λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x24, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x46, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29, x27))%core,
- uint64_t x48 = (uint64_t) x5 * x46 + (0x2 * ((uint64_t) x7 * x47) + (0x2 * ((uint64_t) x9 * x45) + (0x2 * ((uint64_t) x11 * x43) + (0x2 * ((uint64_t) x13 * x41) + ((uint64_t) x15 * x39 + ((uint64_t) x17 * x37 + (0x2 * ((uint64_t) x19 * x35) + (0x2 * ((uint64_t) x21 * x33) + (0x2 * ((uint64_t) x23 * x31) + (0x2 * ((uint64_t) x25 * x29) + (uint64_t) x24 * x27))))))))));
- uint64_t x49 = (uint64_t) x5 * x47 + (0x2 * ((uint64_t) x7 * x45) + (0x2 * ((uint64_t) x9 * x43) + (0x2 * ((uint64_t) x11 * x41) + ((uint64_t) x13 * x39 + ((uint64_t) x15 * x37 + ((uint64_t) x17 * x35 + (0x2 * ((uint64_t) x19 * x33) + (0x2 * ((uint64_t) x21 * x31) + (0x2 * ((uint64_t) x23 * x29) + (uint64_t) x25 * x27))))))))) + 0x21 * ((uint64_t) x24 * x46);
- uint64_t x50 = (uint64_t) x5 * x45 + (0x2 * ((uint64_t) x7 * x43) + (0x2 * ((uint64_t) x9 * x41) + ((uint64_t) x11 * x39 + ((uint64_t) x13 * x37 + ((uint64_t) x15 * x35 + ((uint64_t) x17 * x33 + (0x2 * ((uint64_t) x19 * x31) + (0x2 * ((uint64_t) x21 * x29) + (uint64_t) x23 * x27)))))))) + 0x21 * ((uint64_t) x25 * x46 + (uint64_t) x24 * x47);
- uint64_t x51 = (uint64_t) x5 * x43 + (0x2 * ((uint64_t) x7 * x41) + ((uint64_t) x9 * x39 + ((uint64_t) x11 * x37 + ((uint64_t) x13 * x35 + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + (0x2 * ((uint64_t) x19 * x29) + (uint64_t) x21 * x27))))))) + 0x21 * ((uint64_t) x23 * x46 + ((uint64_t) x25 * x47 + (uint64_t) x24 * x45));
- uint64_t x52 = (uint64_t) x5 * x41 + ((uint64_t) x7 * x39 + ((uint64_t) x9 * x37 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + (uint64_t) x19 * x27)))))) + 0x21 * ((uint64_t) x21 * x46 + ((uint64_t) x23 * x47 + ((uint64_t) x25 * x45 + (uint64_t) x24 * x43)));
- uint64_t x53 = (uint64_t) x5 * x39 + (0x2 * ((uint64_t) x7 * x37) + (0x2 * ((uint64_t) x9 * x35) + (0x2 * ((uint64_t) x11 * x33) + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + (uint64_t) x17 * x27))))) + 0x21 * (0x2 * ((uint64_t) x19 * x46) + (0x2 * ((uint64_t) x21 * x47) + (0x2 * ((uint64_t) x23 * x45) + (0x2 * ((uint64_t) x25 * x43) + 0x2 * ((uint64_t) x24 * x41)))));
- uint64_t x54 = (uint64_t) x5 * x37 + (0x2 * ((uint64_t) x7 * x35) + (0x2 * ((uint64_t) x9 * x33) + (0x2 * ((uint64_t) x11 * x31) + (0x2 * ((uint64_t) x13 * x29) + (uint64_t) x15 * x27)))) + 0x21 * ((uint64_t) x17 * x46 + (0x2 * ((uint64_t) x19 * x47) + (0x2 * ((uint64_t) x21 * x45) + (0x2 * ((uint64_t) x23 * x43) + (0x2 * ((uint64_t) x25 * x41) + (uint64_t) x24 * x39)))));
- uint64_t x55 = (uint64_t) x5 * x35 + (0x2 * ((uint64_t) x7 * x33) + (0x2 * ((uint64_t) x9 * x31) + (0x2 * ((uint64_t) x11 * x29) + (uint64_t) x13 * x27))) + 0x21 * ((uint64_t) x15 * x46 + ((uint64_t) x17 * x47 + (0x2 * ((uint64_t) x19 * x45) + (0x2 * ((uint64_t) x21 * x43) + (0x2 * ((uint64_t) x23 * x41) + ((uint64_t) x25 * x39 + (uint64_t) x24 * x37))))));
- uint64_t x56 = (uint64_t) x5 * x33 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + (uint64_t) x11 * x27)) + 0x21 * ((uint64_t) x13 * x46 + ((uint64_t) x15 * x47 + ((uint64_t) x17 * x45 + (0x2 * ((uint64_t) x19 * x43) + (0x2 * ((uint64_t) x21 * x41) + ((uint64_t) x23 * x39 + ((uint64_t) x25 * x37 + (uint64_t) x24 * x35)))))));
- uint64_t x57 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + (uint64_t) x9 * x27) + 0x21 * ((uint64_t) x11 * x46 + ((uint64_t) x13 * x47 + ((uint64_t) x15 * x45 + ((uint64_t) x17 * x43 + (0x2 * ((uint64_t) x19 * x41) + ((uint64_t) x21 * x39 + ((uint64_t) x23 * x37 + ((uint64_t) x25 * x35 + (uint64_t) x24 * x33))))))));
- uint64_t x58 = (uint64_t) x5 * x29 + (uint64_t) x7 * x27 + 0x21 * ((uint64_t) x9 * x46 + ((uint64_t) x11 * x47 + ((uint64_t) x13 * x45 + ((uint64_t) x15 * x43 + ((uint64_t) x17 * x41 + ((uint64_t) x19 * x39 + ((uint64_t) x21 * x37 + ((uint64_t) x23 * x35 + ((uint64_t) x25 * x33 + (uint64_t) x24 * x31)))))))));
- uint64_t x59 = (uint64_t) x5 * x27 + 0x21 * (0x2 * ((uint64_t) x7 * x46) + (0x2 * ((uint64_t) x9 * x47) + (0x2 * ((uint64_t) x11 * x45) + (0x2 * ((uint64_t) x13 * x43) + (0x2 * ((uint64_t) x15 * x41) + ((uint64_t) x17 * x39 + (0x2 * ((uint64_t) x19 * x37) + (0x2 * ((uint64_t) x21 * x35) + (0x2 * ((uint64_t) x23 * x33) + (0x2 * ((uint64_t) x25 * x31) + 0x2 * ((uint64_t) x24 * x29)))))))))));
- uint32_t x60 = (uint32_t) (x59 >> 0x11);
- uint32_t x61 = (uint32_t) x59 & 0x1ffff;
- uint64_t x62 = x60 + x58;
- uint32_t x63 = (uint32_t) (x62 >> 0x10);
- uint32_t x64 = (uint32_t) x62 & 0xffff;
- uint64_t x65 = x63 + x57;
- uint32_t x66 = (uint32_t) (x65 >> 0x10);
- uint32_t x67 = (uint32_t) x65 & 0xffff;
- uint64_t x68 = x66 + x56;
- uint32_t x69 = (uint32_t) (x68 >> 0x10);
- uint32_t x70 = (uint32_t) x68 & 0xffff;
- uint64_t x71 = x69 + x55;
- uint32_t x72 = (uint32_t) (x71 >> 0x10);
- uint32_t x73 = (uint32_t) x71 & 0xffff;
- uint64_t x74 = x72 + x54;
- uint32_t x75 = (uint32_t) (x74 >> 0x10);
- uint32_t x76 = (uint32_t) x74 & 0xffff;
- uint64_t x77 = x75 + x53;
- uint32_t x78 = (uint32_t) (x77 >> 0x11);
- uint32_t x79 = (uint32_t) x77 & 0x1ffff;
- uint64_t x80 = x78 + x52;
- uint32_t x81 = (uint32_t) (x80 >> 0x10);
- uint32_t x82 = (uint32_t) x80 & 0xffff;
- uint64_t x83 = x81 + x51;
- uint32_t x84 = (uint32_t) (x83 >> 0x10);
- uint32_t x85 = (uint32_t) x83 & 0xffff;
- uint64_t x86 = x84 + x50;
- uint32_t x87 = (uint32_t) (x86 >> 0x10);
- uint32_t x88 = (uint32_t) x86 & 0xffff;
- uint64_t x89 = x87 + x49;
- uint32_t x90 = (uint32_t) (x89 >> 0x10);
- uint32_t x91 = (uint32_t) x89 & 0xffff;
- uint64_t x92 = x90 + x48;
- uint32_t x93 = (uint32_t) (x92 >> 0x10);
- uint32_t x94 = (uint32_t) x92 & 0xffff;
- uint32_t x95 = x61 + 0x21 * x93;
- uint32_t x96 = x95 >> 0x11;
- uint32_t x97 = x95 & 0x1ffff;
- uint32_t x98 = x96 + x64;
- uint32_t x99 = x98 >> 0x10;
- uint32_t x100 = x98 & 0xffff;
- return (Return x94, Return x91, Return x88, Return x85, Return x82, Return x79, Return x76, Return x73, Return x70, x99 + x67, Return x100, Return x97))
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x32 = (((uint64_t)x5 * x30) + ((0x2 * ((uint64_t)x7 * x31)) + ((0x2 * ((uint64_t)x9 * x29)) + (((uint64_t)x11 * x27) + (((uint64_t)x13 * x25) + ((0x2 * ((uint64_t)x15 * x23)) + ((0x2 * ((uint64_t)x17 * x21)) + ((uint64_t)x16 * x19))))))));
+ uint64_t x33 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + (((uint64_t)x13 * x23) + ((0x2 * ((uint64_t)x15 * x21)) + ((uint64_t)x17 * x19))))))) + (0x21 * ((uint64_t)x16 * x30)));
+ uint64_t x34 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + (((uint64_t)x13 * x21) + ((uint64_t)x15 * x19)))))) + (0x21 * (((uint64_t)x17 * x30) + ((uint64_t)x16 * x31))));
+ uint64_t x35 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((0x2 * ((uint64_t)x9 * x23)) + ((0x2 * ((uint64_t)x11 * x21)) + ((uint64_t)x13 * x19))))) + (0x21 * ((0x2 * ((uint64_t)x15 * x30)) + ((0x2 * ((uint64_t)x17 * x31)) + (0x2 * ((uint64_t)x16 * x29))))));
+ uint64_t x36 = ((((uint64_t)x5 * x25) + ((0x2 * ((uint64_t)x7 * x23)) + ((0x2 * ((uint64_t)x9 * x21)) + ((uint64_t)x11 * x19)))) + (0x21 * (((uint64_t)x13 * x30) + ((0x2 * ((uint64_t)x15 * x31)) + ((0x2 * ((uint64_t)x17 * x29)) + ((uint64_t)x16 * x27))))));
+ uint64_t x37 = ((((uint64_t)x5 * x23) + ((0x2 * ((uint64_t)x7 * x21)) + ((uint64_t)x9 * x19))) + (0x21 * (((uint64_t)x11 * x30) + (((uint64_t)x13 * x31) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + ((uint64_t)x16 * x25)))))));
+ uint64_t x38 = ((((uint64_t)x5 * x21) + ((uint64_t)x7 * x19)) + (0x21 * (((uint64_t)x9 * x30) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((uint64_t)x16 * x23))))))));
+ uint64_t x39 = (((uint64_t)x5 * x19) + (0x21 * ((0x2 * ((uint64_t)x7 * x30)) + ((0x2 * ((uint64_t)x9 * x31)) + ((0x2 * ((uint64_t)x11 * x29)) + (((uint64_t)x13 * x27) + ((0x2 * ((uint64_t)x15 * x25)) + ((0x2 * ((uint64_t)x17 * x23)) + (0x2 * ((uint64_t)x16 * x21))))))))));
+ uint64_t x40 = (x39 >> 0x19);
+ uint32_t x41 = ((uint32_t)x39 & 0x1ffffff);
+ uint64_t x42 = (x40 + x38);
+ uint64_t x43 = (x42 >> 0x18);
+ uint32_t x44 = ((uint32_t)x42 & 0xffffff);
+ uint64_t x45 = (x43 + x37);
+ uint64_t x46 = (x45 >> 0x18);
+ uint32_t x47 = ((uint32_t)x45 & 0xffffff);
+ uint64_t x48 = (x46 + x36);
+ uint64_t x49 = (x48 >> 0x18);
+ uint32_t x50 = ((uint32_t)x48 & 0xffffff);
+ uint64_t x51 = (x49 + x35);
+ uint32_t x52 = (uint32_t) (x51 >> 0x19);
+ uint32_t x53 = ((uint32_t)x51 & 0x1ffffff);
+ uint64_t x54 = (x52 + x34);
+ uint32_t x55 = (uint32_t) (x54 >> 0x18);
+ uint32_t x56 = ((uint32_t)x54 & 0xffffff);
+ uint64_t x57 = (x55 + x33);
+ uint32_t x58 = (uint32_t) (x57 >> 0x18);
+ uint32_t x59 = ((uint32_t)x57 & 0xffffff);
+ uint64_t x60 = (x58 + x32);
+ uint32_t x61 = (uint32_t) (x60 >> 0x18);
+ uint32_t x62 = ((uint32_t)x60 & 0xffffff);
+ uint64_t x63 = (x41 + ((uint64_t)0x21 * x61));
+ uint32_t x64 = (uint32_t) (x63 >> 0x19);
+ uint32_t x65 = ((uint32_t)x63 & 0x1ffffff);
+ uint32_t x66 = (x64 + x44);
+ uint32_t x67 = (x66 >> 0x18);
+ uint32_t x68 = (x66 & 0xffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(x, x0)%core
- : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e194m33/fesquareDisplay.log b/src/Specific/solinas32_2e194m33/fesquareDisplay.log
index 3618b6573..008a9eea3 100644
--- a/src/Specific/solinas32_2e194m33/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e194m33/fesquareDisplay.log
@@ -1,60 +1,44 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x21, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x23 = (uint64_t) x2 * x21 + (0x2 * ((uint64_t) x4 * x22) + (0x2 * ((uint64_t) x6 * x20) + (0x2 * ((uint64_t) x8 * x18) + (0x2 * ((uint64_t) x10 * x16) + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + (0x2 * ((uint64_t) x16 * x10) + (0x2 * ((uint64_t) x18 * x8) + (0x2 * ((uint64_t) x20 * x6) + (0x2 * ((uint64_t) x22 * x4) + (uint64_t) x21 * x2))))))))));
- uint64_t x24 = (uint64_t) x2 * x22 + (0x2 * ((uint64_t) x4 * x20) + (0x2 * ((uint64_t) x6 * x18) + (0x2 * ((uint64_t) x8 * x16) + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + (0x2 * ((uint64_t) x16 * x8) + (0x2 * ((uint64_t) x18 * x6) + (0x2 * ((uint64_t) x20 * x4) + (uint64_t) x22 * x2))))))))) + 0x21 * ((uint64_t) x21 * x21);
- uint64_t x25 = (uint64_t) x2 * x20 + (0x2 * ((uint64_t) x4 * x18) + (0x2 * ((uint64_t) x6 * x16) + ((uint64_t) x8 * x14 + ((uint64_t) x10 * x12 + ((uint64_t) x12 * x10 + ((uint64_t) x14 * x8 + (0x2 * ((uint64_t) x16 * x6) + (0x2 * ((uint64_t) x18 * x4) + (uint64_t) x20 * x2)))))))) + 0x21 * ((uint64_t) x22 * x21 + (uint64_t) x21 * x22);
- uint64_t x26 = (uint64_t) x2 * x18 + (0x2 * ((uint64_t) x4 * x16) + ((uint64_t) x6 * x14 + ((uint64_t) x8 * x12 + ((uint64_t) x10 * x10 + ((uint64_t) x12 * x8 + ((uint64_t) x14 * x6 + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x18 * x2))))))) + 0x21 * ((uint64_t) x20 * x21 + ((uint64_t) x22 * x22 + (uint64_t) x21 * x20));
- uint64_t x27 = (uint64_t) x2 * x16 + ((uint64_t) x4 * x14 + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + ((uint64_t) x14 * x4 + (uint64_t) x16 * x2)))))) + 0x21 * ((uint64_t) x18 * x21 + ((uint64_t) x20 * x22 + ((uint64_t) x22 * x20 + (uint64_t) x21 * x18)));
- uint64_t x28 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + (0x2 * ((uint64_t) x6 * x10) + (0x2 * ((uint64_t) x8 * x8) + (0x2 * ((uint64_t) x10 * x6) + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + 0x21 * (0x2 * ((uint64_t) x16 * x21) + (0x2 * ((uint64_t) x18 * x22) + (0x2 * ((uint64_t) x20 * x20) + (0x2 * ((uint64_t) x22 * x18) + 0x2 * ((uint64_t) x21 * x16)))));
- uint64_t x29 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + (0x2 * ((uint64_t) x6 * x8) + (0x2 * ((uint64_t) x8 * x6) + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + 0x21 * ((uint64_t) x14 * x21 + (0x2 * ((uint64_t) x16 * x22) + (0x2 * ((uint64_t) x18 * x20) + (0x2 * ((uint64_t) x20 * x18) + (0x2 * ((uint64_t) x22 * x16) + (uint64_t) x21 * x14)))));
- uint64_t x30 = (uint64_t) x2 * x10 + (0x2 * ((uint64_t) x4 * x8) + (0x2 * ((uint64_t) x6 * x6) + (0x2 * ((uint64_t) x8 * x4) + (uint64_t) x10 * x2))) + 0x21 * ((uint64_t) x12 * x21 + ((uint64_t) x14 * x22 + (0x2 * ((uint64_t) x16 * x20) + (0x2 * ((uint64_t) x18 * x18) + (0x2 * ((uint64_t) x20 * x16) + ((uint64_t) x22 * x14 + (uint64_t) x21 * x12))))));
- uint64_t x31 = (uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2)) + 0x21 * ((uint64_t) x10 * x21 + ((uint64_t) x12 * x22 + ((uint64_t) x14 * x20 + (0x2 * ((uint64_t) x16 * x18) + (0x2 * ((uint64_t) x18 * x16) + ((uint64_t) x20 * x14 + ((uint64_t) x22 * x12 + (uint64_t) x21 * x10)))))));
- uint64_t x32 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0x21 * ((uint64_t) x8 * x21 + ((uint64_t) x10 * x22 + ((uint64_t) x12 * x20 + ((uint64_t) x14 * x18 + (0x2 * ((uint64_t) x16 * x16) + ((uint64_t) x18 * x14 + ((uint64_t) x20 * x12 + ((uint64_t) x22 * x10 + (uint64_t) x21 * x8))))))));
- uint64_t x33 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x21 * ((uint64_t) x6 * x21 + ((uint64_t) x8 * x22 + ((uint64_t) x10 * x20 + ((uint64_t) x12 * x18 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + ((uint64_t) x18 * x12 + ((uint64_t) x20 * x10 + ((uint64_t) x22 * x8 + (uint64_t) x21 * x6)))))))));
- uint64_t x34 = (uint64_t) x2 * x2 + 0x21 * (0x2 * ((uint64_t) x4 * x21) + (0x2 * ((uint64_t) x6 * x22) + (0x2 * ((uint64_t) x8 * x20) + (0x2 * ((uint64_t) x10 * x18) + (0x2 * ((uint64_t) x12 * x16) + ((uint64_t) x14 * x14 + (0x2 * ((uint64_t) x16 * x12) + (0x2 * ((uint64_t) x18 * x10) + (0x2 * ((uint64_t) x20 * x8) + (0x2 * ((uint64_t) x22 * x6) + 0x2 * ((uint64_t) x21 * x4)))))))))));
- uint32_t x35 = (uint32_t) (x34 >> 0x11);
- uint32_t x36 = (uint32_t) x34 & 0x1ffff;
- uint64_t x37 = x35 + x33;
- uint32_t x38 = (uint32_t) (x37 >> 0x10);
- uint32_t x39 = (uint32_t) x37 & 0xffff;
- uint64_t x40 = x38 + x32;
- uint32_t x41 = (uint32_t) (x40 >> 0x10);
- uint32_t x42 = (uint32_t) x40 & 0xffff;
- uint64_t x43 = x41 + x31;
- uint32_t x44 = (uint32_t) (x43 >> 0x10);
- uint32_t x45 = (uint32_t) x43 & 0xffff;
- uint64_t x46 = x44 + x30;
- uint32_t x47 = (uint32_t) (x46 >> 0x10);
- uint32_t x48 = (uint32_t) x46 & 0xffff;
- uint64_t x49 = x47 + x29;
- uint32_t x50 = (uint32_t) (x49 >> 0x10);
- uint32_t x51 = (uint32_t) x49 & 0xffff;
- uint64_t x52 = x50 + x28;
- uint32_t x53 = (uint32_t) (x52 >> 0x11);
- uint32_t x54 = (uint32_t) x52 & 0x1ffff;
- uint64_t x55 = x53 + x27;
- uint32_t x56 = (uint32_t) (x55 >> 0x10);
- uint32_t x57 = (uint32_t) x55 & 0xffff;
- uint64_t x58 = x56 + x26;
- uint32_t x59 = (uint32_t) (x58 >> 0x10);
- uint32_t x60 = (uint32_t) x58 & 0xffff;
- uint64_t x61 = x59 + x25;
- uint32_t x62 = (uint32_t) (x61 >> 0x10);
- uint32_t x63 = (uint32_t) x61 & 0xffff;
- uint64_t x64 = x62 + x24;
- uint32_t x65 = (uint32_t) (x64 >> 0x10);
- uint32_t x66 = (uint32_t) x64 & 0xffff;
- uint64_t x67 = x65 + x23;
- uint32_t x68 = (uint32_t) (x67 >> 0x10);
- uint32_t x69 = (uint32_t) x67 & 0xffff;
- uint32_t x70 = x36 + 0x21 * x68;
- uint32_t x71 = x70 >> 0x11;
- uint32_t x72 = x70 & 0x1ffff;
- uint32_t x73 = x71 + x39;
- uint32_t x74 = x73 >> 0x10;
- uint32_t x75 = x73 & 0xffff;
- return (Return x69, Return x66, Return x63, Return x60, Return x57, Return x54, Return x51, Return x48, Return x45, x74 + x42, Return x75, Return x72))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x15 = (((uint64_t)x2 * x13) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x13 * x2))))))));
+ uint64_t x16 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x21 * ((uint64_t)x13 * x13)));
+ uint64_t x17 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x21 * (((uint64_t)x14 * x13) + ((uint64_t)x13 * x14))));
+ uint64_t x18 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x21 * ((0x2 * ((uint64_t)x12 * x13)) + ((0x2 * ((uint64_t)x14 * x14)) + (0x2 * ((uint64_t)x13 * x12))))));
+ uint64_t x19 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x21 * (((uint64_t)x10 * x13) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + ((uint64_t)x13 * x10))))));
+ uint64_t x20 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x21 * (((uint64_t)x8 * x13) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + ((uint64_t)x13 * x8)))))));
+ uint64_t x21 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x21 * (((uint64_t)x6 * x13) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + ((uint64_t)x13 * x6))))))));
+ uint64_t x22 = (((uint64_t)x2 * x2) + (0x21 * ((0x2 * ((uint64_t)x4 * x13)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + (0x2 * ((uint64_t)x13 * x4))))))))));
+ uint64_t x23 = (x22 >> 0x19);
+ uint32_t x24 = ((uint32_t)x22 & 0x1ffffff);
+ uint64_t x25 = (x23 + x21);
+ uint64_t x26 = (x25 >> 0x18);
+ uint32_t x27 = ((uint32_t)x25 & 0xffffff);
+ uint64_t x28 = (x26 + x20);
+ uint64_t x29 = (x28 >> 0x18);
+ uint32_t x30 = ((uint32_t)x28 & 0xffffff);
+ uint64_t x31 = (x29 + x19);
+ uint64_t x32 = (x31 >> 0x18);
+ uint32_t x33 = ((uint32_t)x31 & 0xffffff);
+ uint64_t x34 = (x32 + x18);
+ uint32_t x35 = (uint32_t) (x34 >> 0x19);
+ uint32_t x36 = ((uint32_t)x34 & 0x1ffffff);
+ uint64_t x37 = (x35 + x17);
+ uint32_t x38 = (uint32_t) (x37 >> 0x18);
+ uint32_t x39 = ((uint32_t)x37 & 0xffffff);
+ uint64_t x40 = (x38 + x16);
+ uint32_t x41 = (uint32_t) (x40 >> 0x18);
+ uint32_t x42 = ((uint32_t)x40 & 0xffffff);
+ uint64_t x43 = (x41 + x15);
+ uint32_t x44 = (uint32_t) (x43 >> 0x18);
+ uint32_t x45 = ((uint32_t)x43 & 0xffffff);
+ uint64_t x46 = (x24 + ((uint64_t)0x21 * x44));
+ uint32_t x47 = (uint32_t) (x46 >> 0x19);
+ uint32_t x48 = ((uint32_t)x46 & 0x1ffffff);
+ uint32_t x49 = (x47 + x27);
+ uint32_t x50 = (x49 >> 0x18);
+ uint32_t x51 = (x49 & 0xffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
- : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e194m33/freezeDisplay.log b/src/Specific/solinas32_2e194m33/freezeDisplay.log
index 65f3128e8..bc97359c4 100644
--- a/src/Specific/solinas32_2e194m33/freezeDisplay.log
+++ b/src/Specific/solinas32_2e194m33/freezeDisplay.log
@@ -1,44 +1,32 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x21, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffdf);
- uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x4, 0xffff);
- uint32_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x28, Return x6, 0xffff);
- uint32_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x31, Return x8, 0xffff);
- uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x34, Return x10, 0xffff);
- uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x12, 0xffff);
- uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x14, 0x1ffff);
- uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x16, 0xffff);
- uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x18, 0xffff);
- uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x20, 0xffff);
- uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x22, 0xffff);
- uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x21, 0xffff);
- uint32_t x59 = (uint32_t)cmovznz(x58, 0x0, 0xffffffff);
- uint32_t x60 = x59 & 0x1ffdf;
- uint32_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x24, Return x60);
- uint32_t x64 = x59 & 0xffff;
- uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x27, Return x64);
- uint32_t x68 = x59 & 0xffff;
- uint32_t x70, uint8_t x71 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x30, Return x68);
- uint32_t x72 = x59 & 0xffff;
- uint32_t x74, uint8_t x75 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x33, Return x72);
- uint32_t x76 = x59 & 0xffff;
- uint32_t x78, uint8_t x79 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x36, Return x76);
- uint32_t x80 = x59 & 0xffff;
- uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x39, Return x80);
- uint32_t x84 = x59 & 0x1ffff;
- uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 17 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x42, Return x84);
- uint32_t x88 = x59 & 0xffff;
- uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x45, Return x88);
- uint32_t x92 = x59 & 0xffff;
- uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x48, Return x92);
- uint32_t x96 = x59 & 0xffff;
- uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x51, Return x96);
- uint32_t x100 = x59 & 0xffff;
- uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x54, Return x100);
- uint32_t x104 = x59 & 0xffff;
- uint32_t x106, uint8_t _ = Op (Syntax.AddWithGetCarry 16 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x57, Return x104);
- (Return x106, Return x102, Return x98, Return x94, Return x90, Return x86, Return x82, Return x78, Return x74, Return x70, Return x66, Return x62))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffdf);
+ uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0xffffff);
+ uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0xffffff);
+ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0xffffff);
+ uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x10, 0x1ffffff);
+ uint32_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x29, Return x12, 0xffffff);
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffff);
+ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0xffffff);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0x1ffffdf);
+ uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint32_t x44 = (x39 & 0xffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint32_t x48 = (x39 & 0xffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint32_t x52 = (x39 & 0xffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint32_t x56 = (x39 & 0x1ffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint32_t x60 = (x39 & 0xffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint32_t x64 = (x39 & 0xffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint32_t x68 = (x39 & 0xffffff);
+ uint32_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e198m17/femulDisplay.log b/src/Specific/solinas32_2e198m17/femulDisplay.log
index 006673e79..4362346b3 100644
--- a/src/Specific/solinas32_2e198m17/femulDisplay.log
+++ b/src/Specific/solinas32_2e198m17/femulDisplay.log
@@ -2,47 +2,47 @@
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,
- uint64_t x36 = (uint64_t) x5 * x34 + ((uint64_t) x7 * x35 + ((uint64_t) x9 * x33 + ((uint64_t) x11 * x31 + ((uint64_t) x13 * x29 + ((uint64_t) x15 * x27 + ((uint64_t) x17 * x25 + ((uint64_t) x19 * x23 + (uint64_t) x18 * x21)))))));
- uint64_t x37 = (uint64_t) x5 * x35 + ((uint64_t) x7 * x33 + ((uint64_t) x9 * x31 + ((uint64_t) x11 * x29 + ((uint64_t) x13 * x27 + ((uint64_t) x15 * x25 + ((uint64_t) x17 * x23 + (uint64_t) x19 * x21)))))) + 0x11 * ((uint64_t) x18 * x34);
- uint64_t x38 = (uint64_t) x5 * x33 + ((uint64_t) x7 * x31 + ((uint64_t) x9 * x29 + ((uint64_t) x11 * x27 + ((uint64_t) x13 * x25 + ((uint64_t) x15 * x23 + (uint64_t) x17 * x21))))) + 0x11 * ((uint64_t) x19 * x34 + (uint64_t) x18 * x35);
- uint64_t x39 = (uint64_t) x5 * x31 + ((uint64_t) x7 * x29 + ((uint64_t) x9 * x27 + ((uint64_t) x11 * x25 + ((uint64_t) x13 * x23 + (uint64_t) x15 * x21)))) + 0x11 * ((uint64_t) x17 * x34 + ((uint64_t) x19 * x35 + (uint64_t) x18 * x33));
- uint64_t x40 = (uint64_t) x5 * x29 + ((uint64_t) x7 * x27 + ((uint64_t) x9 * x25 + ((uint64_t) x11 * x23 + (uint64_t) x13 * x21))) + 0x11 * ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31)));
- uint64_t x41 = (uint64_t) x5 * x27 + ((uint64_t) x7 * x25 + ((uint64_t) x9 * x23 + (uint64_t) x11 * x21)) + 0x11 * ((uint64_t) x13 * x34 + ((uint64_t) x15 * x35 + ((uint64_t) x17 * x33 + ((uint64_t) x19 * x31 + (uint64_t) x18 * x29))));
- uint64_t x42 = (uint64_t) x5 * x25 + ((uint64_t) x7 * x23 + (uint64_t) x9 * x21) + 0x11 * ((uint64_t) x11 * x34 + ((uint64_t) x13 * x35 + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + ((uint64_t) x19 * x29 + (uint64_t) x18 * x27)))));
- uint64_t x43 = (uint64_t) x5 * x23 + (uint64_t) x7 * x21 + 0x11 * ((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25))))));
- uint64_t x44 = (uint64_t) x5 * x21 + 0x11 * ((uint64_t) x7 * x34 + ((uint64_t) x9 * x35 + ((uint64_t) x11 * x33 + ((uint64_t) x13 * x31 + ((uint64_t) x15 * x29 + ((uint64_t) x17 * x27 + ((uint64_t) x19 * x25 + (uint64_t) x18 * x23)))))));
+ uint64_t x36 = (((uint64_t)x5 * x34) + (((uint64_t)x7 * x35) + (((uint64_t)x9 * x33) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + (((uint64_t)x19 * x23) + ((uint64_t)x18 * x21)))))))));
+ uint64_t x37 = ((((uint64_t)x5 * x35) + (((uint64_t)x7 * x33) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x19 * x21)))))))) + (0x11 * ((uint64_t)x18 * x34)));
+ uint64_t x38 = ((((uint64_t)x5 * x33) + (((uint64_t)x7 * x31) + (((uint64_t)x9 * x29) + (((uint64_t)x11 * x27) + (((uint64_t)x13 * x25) + (((uint64_t)x15 * x23) + ((uint64_t)x17 * x21))))))) + (0x11 * (((uint64_t)x19 * x34) + ((uint64_t)x18 * x35))));
+ uint64_t x39 = ((((uint64_t)x5 * x31) + (((uint64_t)x7 * x29) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + (((uint64_t)x13 * x23) + ((uint64_t)x15 * x21)))))) + (0x11 * (((uint64_t)x17 * x34) + (((uint64_t)x19 * x35) + ((uint64_t)x18 * x33)))));
+ uint64_t x40 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + ((uint64_t)x13 * x21))))) + (0x11 * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))));
+ uint64_t x41 = ((((uint64_t)x5 * x27) + (((uint64_t)x7 * x25) + (((uint64_t)x9 * x23) + ((uint64_t)x11 * x21)))) + (0x11 * (((uint64_t)x13 * x34) + (((uint64_t)x15 * x35) + (((uint64_t)x17 * x33) + (((uint64_t)x19 * x31) + ((uint64_t)x18 * x29)))))));
+ uint64_t x42 = ((((uint64_t)x5 * x25) + (((uint64_t)x7 * x23) + ((uint64_t)x9 * x21))) + (0x11 * (((uint64_t)x11 * x34) + (((uint64_t)x13 * x35) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + (((uint64_t)x19 * x29) + ((uint64_t)x18 * x27))))))));
+ uint64_t x43 = ((((uint64_t)x5 * x23) + ((uint64_t)x7 * x21)) + (0x11 * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))));
+ uint64_t x44 = (((uint64_t)x5 * x21) + (0x11 * (((uint64_t)x7 * x34) + (((uint64_t)x9 * x35) + (((uint64_t)x11 * x33) + (((uint64_t)x13 * x31) + (((uint64_t)x15 * x29) + (((uint64_t)x17 * x27) + (((uint64_t)x19 * x25) + ((uint64_t)x18 * x23))))))))));
uint32_t x45 = (uint32_t) (x44 >> 0x16);
- uint32_t x46 = (uint32_t) x44 & 0x3fffff;
- uint64_t x47 = x45 + x43;
+ uint32_t x46 = ((uint32_t)x44 & 0x3fffff);
+ uint64_t x47 = (x45 + x43);
uint32_t x48 = (uint32_t) (x47 >> 0x16);
- uint32_t x49 = (uint32_t) x47 & 0x3fffff;
- uint64_t x50 = x48 + x42;
+ uint32_t x49 = ((uint32_t)x47 & 0x3fffff);
+ uint64_t x50 = (x48 + x42);
uint32_t x51 = (uint32_t) (x50 >> 0x16);
- uint32_t x52 = (uint32_t) x50 & 0x3fffff;
- uint64_t x53 = x51 + x41;
+ uint32_t x52 = ((uint32_t)x50 & 0x3fffff);
+ uint64_t x53 = (x51 + x41);
uint32_t x54 = (uint32_t) (x53 >> 0x16);
- uint32_t x55 = (uint32_t) x53 & 0x3fffff;
- uint64_t x56 = x54 + x40;
+ uint32_t x55 = ((uint32_t)x53 & 0x3fffff);
+ uint64_t x56 = (x54 + x40);
uint32_t x57 = (uint32_t) (x56 >> 0x16);
- uint32_t x58 = (uint32_t) x56 & 0x3fffff;
- uint64_t x59 = x57 + x39;
+ uint32_t x58 = ((uint32_t)x56 & 0x3fffff);
+ uint64_t x59 = (x57 + x39);
uint32_t x60 = (uint32_t) (x59 >> 0x16);
- uint32_t x61 = (uint32_t) x59 & 0x3fffff;
- uint64_t x62 = x60 + x38;
+ uint32_t x61 = ((uint32_t)x59 & 0x3fffff);
+ uint64_t x62 = (x60 + x38);
uint32_t x63 = (uint32_t) (x62 >> 0x16);
- uint32_t x64 = (uint32_t) x62 & 0x3fffff;
- uint64_t x65 = x63 + x37;
+ uint32_t x64 = ((uint32_t)x62 & 0x3fffff);
+ uint64_t x65 = (x63 + x37);
uint32_t x66 = (uint32_t) (x65 >> 0x16);
- uint32_t x67 = (uint32_t) x65 & 0x3fffff;
- uint64_t x68 = x66 + x36;
+ uint32_t x67 = ((uint32_t)x65 & 0x3fffff);
+ uint64_t x68 = (x66 + x36);
uint32_t x69 = (uint32_t) (x68 >> 0x16);
- uint32_t x70 = (uint32_t) x68 & 0x3fffff;
- uint32_t x71 = x46 + 0x11 * x69;
- uint32_t x72 = x71 >> 0x16;
- uint32_t x73 = x71 & 0x3fffff;
- uint32_t x74 = x72 + x49;
- uint32_t x75 = x74 >> 0x16;
- uint32_t x76 = x74 & 0x3fffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ uint32_t x70 = ((uint32_t)x68 & 0x3fffff);
+ uint32_t x71 = (x46 + (0x11 * x69));
+ uint32_t x72 = (x71 >> 0x16);
+ uint32_t x73 = (x71 & 0x3fffff);
+ uint32_t x74 = (x72 + x49);
+ uint32_t x75 = (x74 >> 0x16);
+ uint32_t x76 = (x74 & 0x3fffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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_2e198m17/fesquareDisplay.log b/src/Specific/solinas32_2e198m17/fesquareDisplay.log
index 760455d3a..b44db0c16 100644
--- a/src/Specific/solinas32_2e198m17/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e198m17/fesquareDisplay.log
@@ -2,47 +2,47 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x17 = (uint64_t) x2 * x15 + ((uint64_t) x4 * x16 + ((uint64_t) x6 * x14 + ((uint64_t) x8 * x12 + ((uint64_t) x10 * x10 + ((uint64_t) x12 * x8 + ((uint64_t) x14 * x6 + ((uint64_t) x16 * x4 + (uint64_t) x15 * x2)))))));
- uint64_t x18 = (uint64_t) x2 * x16 + ((uint64_t) x4 * x14 + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + ((uint64_t) x14 * x4 + (uint64_t) x16 * x2)))))) + 0x11 * ((uint64_t) x15 * x15);
- uint64_t x19 = (uint64_t) x2 * x14 + ((uint64_t) x4 * x12 + ((uint64_t) x6 * x10 + ((uint64_t) x8 * x8 + ((uint64_t) x10 * x6 + ((uint64_t) x12 * x4 + (uint64_t) x14 * x2))))) + 0x11 * ((uint64_t) x16 * x15 + (uint64_t) x15 * x16);
- uint64_t x20 = (uint64_t) x2 * x12 + ((uint64_t) x4 * x10 + ((uint64_t) x6 * x8 + ((uint64_t) x8 * x6 + ((uint64_t) x10 * x4 + (uint64_t) x12 * x2)))) + 0x11 * ((uint64_t) x14 * x15 + ((uint64_t) x16 * x16 + (uint64_t) x15 * x14));
- uint64_t x21 = (uint64_t) x2 * x10 + ((uint64_t) x4 * x8 + ((uint64_t) x6 * x6 + ((uint64_t) x8 * x4 + (uint64_t) x10 * x2))) + 0x11 * ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12)));
- uint64_t x22 = (uint64_t) x2 * x8 + ((uint64_t) x4 * x6 + ((uint64_t) x6 * x4 + (uint64_t) x8 * x2)) + 0x11 * ((uint64_t) x10 * x15 + ((uint64_t) x12 * x16 + ((uint64_t) x14 * x14 + ((uint64_t) x16 * x12 + (uint64_t) x15 * x10))));
- uint64_t x23 = (uint64_t) x2 * x6 + ((uint64_t) x4 * x4 + (uint64_t) x6 * x2) + 0x11 * ((uint64_t) x8 * x15 + ((uint64_t) x10 * x16 + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + ((uint64_t) x16 * x10 + (uint64_t) x15 * x8)))));
- uint64_t x24 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x11 * ((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6))))));
- uint64_t x25 = (uint64_t) x2 * x2 + 0x11 * ((uint64_t) x4 * x15 + ((uint64_t) x6 * x16 + ((uint64_t) x8 * x14 + ((uint64_t) x10 * x12 + ((uint64_t) x12 * x10 + ((uint64_t) x14 * x8 + ((uint64_t) x16 * x6 + (uint64_t) x15 * x4)))))));
+ uint64_t x17 = (((uint64_t)x2 * x15) + (((uint64_t)x4 * x16) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + (((uint64_t)x10 * x10) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + (((uint64_t)x16 * x4) + ((uint64_t)x15 * x2)))))))));
+ uint64_t x18 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x11 * ((uint64_t)x15 * x15)));
+ uint64_t x19 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x11 * (((uint64_t)x16 * x15) + ((uint64_t)x15 * x16))));
+ uint64_t x20 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x11 * (((uint64_t)x14 * x15) + (((uint64_t)x16 * x16) + ((uint64_t)x15 * x14)))));
+ uint64_t x21 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x11 * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))));
+ uint64_t x22 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x11 * (((uint64_t)x10 * x15) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + ((uint64_t)x15 * x10)))))));
+ uint64_t x23 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x11 * (((uint64_t)x8 * x15) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + ((uint64_t)x15 * x8))))))));
+ uint64_t x24 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x11 * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))));
+ uint64_t x25 = (((uint64_t)x2 * x2) + (0x11 * (((uint64_t)x4 * x15) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + ((uint64_t)x15 * x4))))))))));
uint32_t x26 = (uint32_t) (x25 >> 0x16);
- uint32_t x27 = (uint32_t) x25 & 0x3fffff;
- uint64_t x28 = x26 + x24;
+ uint32_t x27 = ((uint32_t)x25 & 0x3fffff);
+ uint64_t x28 = (x26 + x24);
uint32_t x29 = (uint32_t) (x28 >> 0x16);
- uint32_t x30 = (uint32_t) x28 & 0x3fffff;
- uint64_t x31 = x29 + x23;
+ uint32_t x30 = ((uint32_t)x28 & 0x3fffff);
+ uint64_t x31 = (x29 + x23);
uint32_t x32 = (uint32_t) (x31 >> 0x16);
- uint32_t x33 = (uint32_t) x31 & 0x3fffff;
- uint64_t x34 = x32 + x22;
+ uint32_t x33 = ((uint32_t)x31 & 0x3fffff);
+ uint64_t x34 = (x32 + x22);
uint32_t x35 = (uint32_t) (x34 >> 0x16);
- uint32_t x36 = (uint32_t) x34 & 0x3fffff;
- uint64_t x37 = x35 + x21;
+ uint32_t x36 = ((uint32_t)x34 & 0x3fffff);
+ uint64_t x37 = (x35 + x21);
uint32_t x38 = (uint32_t) (x37 >> 0x16);
- uint32_t x39 = (uint32_t) x37 & 0x3fffff;
- uint64_t x40 = x38 + x20;
+ uint32_t x39 = ((uint32_t)x37 & 0x3fffff);
+ uint64_t x40 = (x38 + x20);
uint32_t x41 = (uint32_t) (x40 >> 0x16);
- uint32_t x42 = (uint32_t) x40 & 0x3fffff;
- uint64_t x43 = x41 + x19;
+ uint32_t x42 = ((uint32_t)x40 & 0x3fffff);
+ uint64_t x43 = (x41 + x19);
uint32_t x44 = (uint32_t) (x43 >> 0x16);
- uint32_t x45 = (uint32_t) x43 & 0x3fffff;
- uint64_t x46 = x44 + x18;
+ uint32_t x45 = ((uint32_t)x43 & 0x3fffff);
+ uint64_t x46 = (x44 + x18);
uint32_t x47 = (uint32_t) (x46 >> 0x16);
- uint32_t x48 = (uint32_t) x46 & 0x3fffff;
- uint64_t x49 = x47 + x17;
+ uint32_t x48 = ((uint32_t)x46 & 0x3fffff);
+ uint64_t x49 = (x47 + x17);
uint32_t x50 = (uint32_t) (x49 >> 0x16);
- uint32_t x51 = (uint32_t) x49 & 0x3fffff;
- uint32_t x52 = x27 + 0x11 * x50;
- uint32_t x53 = x52 >> 0x16;
- uint32_t x54 = x52 & 0x3fffff;
- uint32_t x55 = x53 + x30;
- uint32_t x56 = x55 >> 0x16;
- uint32_t x57 = x55 & 0x3fffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ uint32_t x51 = ((uint32_t)x49 & 0x3fffff);
+ uint32_t x52 = (x27 + (0x11 * x50));
+ uint32_t x53 = (x52 >> 0x16);
+ uint32_t x54 = (x52 & 0x3fffff);
+ uint32_t x55 = (x53 + x30);
+ uint32_t x56 = (x55 >> 0x16);
+ uint32_t x57 = (x55 & 0x3fffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
: 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_2e198m17/freezeDisplay.log b/src/Specific/solinas32_2e198m17/freezeDisplay.log
index b17a4e475..6214988b0 100644
--- a/src/Specific/solinas32_2e198m17/freezeDisplay.log
+++ b/src/Specific/solinas32_2e198m17/freezeDisplay.log
@@ -12,23 +12,23 @@ Interp-η
uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x3fffff);
uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x3fffff);
uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
- uint32_t x45 = x44 & 0x3fffef;
+ uint32_t x45 = (x44 & 0x3fffef);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint32_t x49 = x44 & 0x3fffff;
+ uint32_t x49 = (x44 & 0x3fffff);
uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint32_t x53 = x44 & 0x3fffff;
+ uint32_t x53 = (x44 & 0x3fffff);
uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint32_t x57 = x44 & 0x3fffff;
+ uint32_t x57 = (x44 & 0x3fffff);
uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint32_t x61 = x44 & 0x3fffff;
+ uint32_t x61 = (x44 & 0x3fffff);
uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint32_t x65 = x44 & 0x3fffff;
+ uint32_t x65 = (x44 & 0x3fffff);
uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint32_t x69 = x44 & 0x3fffff;
+ uint32_t x69 = (x44 & 0x3fffff);
uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint32_t x73 = x44 & 0x3fffff;
+ uint32_t x73 = (x44 & 0x3fffff);
uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint32_t x77 = x44 & 0x3fffff;
+ uint32_t x77 = (x44 & 0x3fffff);
uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
(Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
diff --git a/src/Specific/solinas32_2e212m29/femulDisplay.log b/src/Specific/solinas32_2e212m29/femulDisplay.log
index df593abab..0730abcff 100644
--- a/src/Specific/solinas32_2e212m29/femulDisplay.log
+++ b/src/Specific/solinas32_2e212m29/femulDisplay.log
@@ -1,52 +1,44 @@
-λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x x0 : 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,
- uint64_t x40 = (uint64_t) x5 * x38 + (0x2 * ((uint64_t) x7 * x39) + (0x2 * ((uint64_t) x9 * x37) + (0x2 * ((uint64_t) x11 * x35) + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + (0x2 * ((uint64_t) x17 * x29) + (0x2 * ((uint64_t) x19 * x27) + (0x2 * ((uint64_t) x21 * x25) + (uint64_t) x20 * x23))))))));
- uint64_t x41 = (uint64_t) x5 * x39 + (0x2 * ((uint64_t) x7 * x37) + (0x2 * ((uint64_t) x9 * x35) + ((uint64_t) x11 * x33 + ((uint64_t) x13 * x31 + ((uint64_t) x15 * x29 + (0x2 * ((uint64_t) x17 * x27) + (0x2 * ((uint64_t) x19 * x25) + (uint64_t) x21 * x23))))))) + 0x1d * ((uint64_t) x20 * x38);
- uint64_t x42 = (uint64_t) x5 * x37 + (0x2 * ((uint64_t) x7 * x35) + ((uint64_t) x9 * x33 + ((uint64_t) x11 * x31 + ((uint64_t) x13 * x29 + ((uint64_t) x15 * x27 + (0x2 * ((uint64_t) x17 * x25) + (uint64_t) x19 * x23)))))) + 0x1d * ((uint64_t) x21 * x38 + (uint64_t) x20 * x39);
- uint64_t x43 = (uint64_t) x5 * x35 + ((uint64_t) x7 * x33 + ((uint64_t) x9 * x31 + ((uint64_t) x11 * x29 + ((uint64_t) x13 * x27 + ((uint64_t) x15 * x25 + (uint64_t) x17 * x23))))) + 0x1d * ((uint64_t) x19 * x38 + ((uint64_t) x21 * x39 + (uint64_t) x20 * x37));
- uint64_t x44 = (uint64_t) x5 * x33 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + (0x2 * ((uint64_t) x11 * x27) + (0x2 * ((uint64_t) x13 * x25) + (uint64_t) x15 * x23)))) + 0x1d * (0x2 * ((uint64_t) x17 * x38) + (0x2 * ((uint64_t) x19 * x39) + (0x2 * ((uint64_t) x21 * x37) + 0x2 * ((uint64_t) x20 * x35))));
- uint64_t x45 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + (0x2 * ((uint64_t) x9 * x27) + (0x2 * ((uint64_t) x11 * x25) + (uint64_t) x13 * x23))) + 0x1d * ((uint64_t) x15 * x38 + (0x2 * ((uint64_t) x17 * x39) + (0x2 * ((uint64_t) x19 * x37) + (0x2 * ((uint64_t) x21 * x35) + (uint64_t) x20 * x33))));
- uint64_t x46 = (uint64_t) x5 * x29 + (0x2 * ((uint64_t) x7 * x27) + (0x2 * ((uint64_t) x9 * x25) + (uint64_t) x11 * x23)) + 0x1d * ((uint64_t) x13 * x38 + ((uint64_t) x15 * x39 + (0x2 * ((uint64_t) x17 * x37) + (0x2 * ((uint64_t) x19 * x35) + ((uint64_t) x21 * x33 + (uint64_t) x20 * x31)))));
- uint64_t x47 = (uint64_t) x5 * x27 + (0x2 * ((uint64_t) x7 * x25) + (uint64_t) x9 * x23) + 0x1d * ((uint64_t) x11 * x38 + ((uint64_t) x13 * x39 + ((uint64_t) x15 * x37 + (0x2 * ((uint64_t) x17 * x35) + ((uint64_t) x19 * x33 + ((uint64_t) x21 * x31 + (uint64_t) x20 * x29))))));
- uint64_t x48 = (uint64_t) x5 * x25 + (uint64_t) x7 * x23 + 0x1d * ((uint64_t) x9 * x38 + ((uint64_t) x11 * x39 + ((uint64_t) x13 * x37 + ((uint64_t) x15 * x35 + ((uint64_t) x17 * x33 + ((uint64_t) x19 * x31 + ((uint64_t) x21 * x29 + (uint64_t) x20 * x27)))))));
- uint64_t x49 = (uint64_t) x5 * x23 + 0x1d * (0x2 * ((uint64_t) x7 * x38) + (0x2 * ((uint64_t) x9 * x39) + (0x2 * ((uint64_t) x11 * x37) + (0x2 * ((uint64_t) x13 * x35) + ((uint64_t) x15 * x33 + (0x2 * ((uint64_t) x17 * x31) + (0x2 * ((uint64_t) x19 * x29) + (0x2 * ((uint64_t) x21 * x27) + 0x2 * ((uint64_t) x20 * x25)))))))));
- uint32_t x50 = (uint32_t) (x49 >> 0x16);
- uint32_t x51 = (uint32_t) x49 & 0x3fffff;
- uint64_t x52 = x50 + x48;
- uint32_t x53 = (uint32_t) (x52 >> 0x15);
- uint32_t x54 = (uint32_t) x52 & 0x1fffff;
- uint64_t x55 = x53 + x47;
- uint32_t x56 = (uint32_t) (x55 >> 0x15);
- uint32_t x57 = (uint32_t) x55 & 0x1fffff;
- uint64_t x58 = x56 + x46;
- uint32_t x59 = (uint32_t) (x58 >> 0x15);
- uint32_t x60 = (uint32_t) x58 & 0x1fffff;
- uint64_t x61 = x59 + x45;
- uint32_t x62 = (uint32_t) (x61 >> 0x15);
- uint32_t x63 = (uint32_t) x61 & 0x1fffff;
- uint64_t x64 = x62 + x44;
- uint32_t x65 = (uint32_t) (x64 >> 0x16);
- uint32_t x66 = (uint32_t) x64 & 0x3fffff;
- uint64_t x67 = x65 + x43;
- uint32_t x68 = (uint32_t) (x67 >> 0x15);
- uint32_t x69 = (uint32_t) x67 & 0x1fffff;
- uint64_t x70 = x68 + x42;
- uint32_t x71 = (uint32_t) (x70 >> 0x15);
- uint32_t x72 = (uint32_t) x70 & 0x1fffff;
- uint64_t x73 = x71 + x41;
- uint32_t x74 = (uint32_t) (x73 >> 0x15);
- uint32_t x75 = (uint32_t) x73 & 0x1fffff;
- uint64_t x76 = x74 + x40;
- uint32_t x77 = (uint32_t) (x76 >> 0x15);
- uint32_t x78 = (uint32_t) x76 & 0x1fffff;
- uint32_t x79 = x51 + 0x1d * x77;
- uint32_t x80 = x79 >> 0x16;
- uint32_t x81 = x79 & 0x3fffff;
- uint32_t x82 = x80 + x54;
- uint32_t x83 = x82 >> 0x15;
- uint32_t x84 = x82 & 0x1fffff;
- return (Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, x83 + x57, Return x84, Return x81))
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x32 = (((uint64_t)x5 * x30) + (((uint64_t)x7 * x31) + (((uint64_t)x9 * x29) + (((uint64_t)x11 * x27) + (((uint64_t)x13 * x25) + (((uint64_t)x15 * x23) + (((uint64_t)x17 * x21) + ((uint64_t)x16 * x19))))))));
+ uint64_t x33 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + (((uint64_t)x9 * x27) + ((0x2 * ((uint64_t)x11 * x25)) + (((uint64_t)x13 * x23) + ((0x2 * ((uint64_t)x15 * x21)) + ((uint64_t)x17 * x19))))))) + (0x1d * (0x2 * ((uint64_t)x16 * x30))));
+ uint64_t x34 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + (((uint64_t)x13 * x21) + ((uint64_t)x15 * x19)))))) + (0x1d * (((uint64_t)x17 * x30) + ((uint64_t)x16 * x31))));
+ uint64_t x35 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + (((uint64_t)x9 * x23) + ((0x2 * ((uint64_t)x11 * x21)) + ((uint64_t)x13 * x19))))) + (0x1d * ((0x2 * ((uint64_t)x15 * x30)) + (((uint64_t)x17 * x31) + (0x2 * ((uint64_t)x16 * x29))))));
+ uint64_t x36 = ((((uint64_t)x5 * x25) + (((uint64_t)x7 * x23) + (((uint64_t)x9 * x21) + ((uint64_t)x11 * x19)))) + (0x1d * (((uint64_t)x13 * x30) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + ((uint64_t)x16 * x27))))));
+ uint64_t x37 = ((((uint64_t)x5 * x23) + ((0x2 * ((uint64_t)x7 * x21)) + ((uint64_t)x9 * x19))) + (0x1d * ((0x2 * ((uint64_t)x11 * x30)) + (((uint64_t)x13 * x31) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + (0x2 * ((uint64_t)x16 * x25))))))));
+ uint64_t x38 = ((((uint64_t)x5 * x21) + ((uint64_t)x7 * x19)) + (0x1d * (((uint64_t)x9 * x30) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((uint64_t)x16 * x23))))))));
+ uint64_t x39 = (((uint64_t)x5 * x19) + (0x1d * ((0x2 * ((uint64_t)x7 * x30)) + (((uint64_t)x9 * x31) + ((0x2 * ((uint64_t)x11 * x29)) + (((uint64_t)x13 * x27) + ((0x2 * ((uint64_t)x15 * x25)) + (((uint64_t)x17 * x23) + (0x2 * ((uint64_t)x16 * x21))))))))));
+ uint64_t x40 = (x39 >> 0x1b);
+ uint32_t x41 = ((uint32_t)x39 & 0x7ffffff);
+ uint64_t x42 = (x40 + x38);
+ uint64_t x43 = (x42 >> 0x1a);
+ uint32_t x44 = ((uint32_t)x42 & 0x3ffffff);
+ uint64_t x45 = (x43 + x37);
+ uint64_t x46 = (x45 >> 0x1b);
+ uint32_t x47 = ((uint32_t)x45 & 0x7ffffff);
+ uint64_t x48 = (x46 + x36);
+ uint64_t x49 = (x48 >> 0x1a);
+ uint32_t x50 = ((uint32_t)x48 & 0x3ffffff);
+ uint64_t x51 = (x49 + x35);
+ uint64_t x52 = (x51 >> 0x1b);
+ uint32_t x53 = ((uint32_t)x51 & 0x7ffffff);
+ uint64_t x54 = (x52 + x34);
+ uint64_t x55 = (x54 >> 0x1a);
+ uint32_t x56 = ((uint32_t)x54 & 0x3ffffff);
+ uint64_t x57 = (x55 + x33);
+ uint32_t x58 = (uint32_t) (x57 >> 0x1b);
+ uint32_t x59 = ((uint32_t)x57 & 0x7ffffff);
+ uint64_t x60 = (x58 + x32);
+ uint32_t x61 = (uint32_t) (x60 >> 0x1a);
+ uint32_t x62 = ((uint32_t)x60 & 0x3ffffff);
+ uint64_t x63 = (x41 + ((uint64_t)0x1d * x61));
+ uint32_t x64 = (uint32_t) (x63 >> 0x1b);
+ uint32_t x65 = ((uint32_t)x63 & 0x7ffffff);
+ uint32_t x66 = (x64 + x44);
+ uint32_t x67 = (x66 >> 0x1a);
+ uint32_t x68 = (x66 & 0x3ffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(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)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e212m29/fesquareDisplay.log b/src/Specific/solinas32_2e212m29/fesquareDisplay.log
index 67201bdcb..f12070469 100644
--- a/src/Specific/solinas32_2e212m29/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e212m29/fesquareDisplay.log
@@ -1,52 +1,44 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x19 = (uint64_t) x2 * x17 + (0x2 * ((uint64_t) x4 * x18) + (0x2 * ((uint64_t) x6 * x16) + (0x2 * ((uint64_t) x8 * x14) + ((uint64_t) x10 * x12 + ((uint64_t) x12 * x10 + (0x2 * ((uint64_t) x14 * x8) + (0x2 * ((uint64_t) x16 * x6) + (0x2 * ((uint64_t) x18 * x4) + (uint64_t) x17 * x2))))))));
- uint64_t x20 = (uint64_t) x2 * x18 + (0x2 * ((uint64_t) x4 * x16) + (0x2 * ((uint64_t) x6 * x14) + ((uint64_t) x8 * x12 + ((uint64_t) x10 * x10 + ((uint64_t) x12 * x8 + (0x2 * ((uint64_t) x14 * x6) + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x18 * x2))))))) + 0x1d * ((uint64_t) x17 * x17);
- uint64_t x21 = (uint64_t) x2 * x16 + (0x2 * ((uint64_t) x4 * x14) + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + (0x2 * ((uint64_t) x14 * x4) + (uint64_t) x16 * x2)))))) + 0x1d * ((uint64_t) x18 * x17 + (uint64_t) x17 * x18);
- uint64_t x22 = (uint64_t) x2 * x14 + ((uint64_t) x4 * x12 + ((uint64_t) x6 * x10 + ((uint64_t) x8 * x8 + ((uint64_t) x10 * x6 + ((uint64_t) x12 * x4 + (uint64_t) x14 * x2))))) + 0x1d * ((uint64_t) x16 * x17 + ((uint64_t) x18 * x18 + (uint64_t) x17 * x16));
- uint64_t x23 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + (0x2 * ((uint64_t) x6 * x8) + (0x2 * ((uint64_t) x8 * x6) + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + 0x1d * (0x2 * ((uint64_t) x14 * x17) + (0x2 * ((uint64_t) x16 * x18) + (0x2 * ((uint64_t) x18 * x16) + 0x2 * ((uint64_t) x17 * x14))));
- uint64_t x24 = (uint64_t) x2 * x10 + (0x2 * ((uint64_t) x4 * x8) + (0x2 * ((uint64_t) x6 * x6) + (0x2 * ((uint64_t) x8 * x4) + (uint64_t) x10 * x2))) + 0x1d * ((uint64_t) x12 * x17 + (0x2 * ((uint64_t) x14 * x18) + (0x2 * ((uint64_t) x16 * x16) + (0x2 * ((uint64_t) x18 * x14) + (uint64_t) x17 * x12))));
- uint64_t x25 = (uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2)) + 0x1d * ((uint64_t) x10 * x17 + ((uint64_t) x12 * x18 + (0x2 * ((uint64_t) x14 * x16) + (0x2 * ((uint64_t) x16 * x14) + ((uint64_t) x18 * x12 + (uint64_t) x17 * x10)))));
- uint64_t x26 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0x1d * ((uint64_t) x8 * x17 + ((uint64_t) x10 * x18 + ((uint64_t) x12 * x16 + (0x2 * ((uint64_t) x14 * x14) + ((uint64_t) x16 * x12 + ((uint64_t) x18 * x10 + (uint64_t) x17 * x8))))));
- uint64_t x27 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x1d * ((uint64_t) x6 * x17 + ((uint64_t) x8 * x18 + ((uint64_t) x10 * x16 + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + ((uint64_t) x16 * x10 + ((uint64_t) x18 * x8 + (uint64_t) x17 * x6)))))));
- uint64_t x28 = (uint64_t) x2 * x2 + 0x1d * (0x2 * ((uint64_t) x4 * x17) + (0x2 * ((uint64_t) x6 * x18) + (0x2 * ((uint64_t) x8 * x16) + (0x2 * ((uint64_t) x10 * x14) + ((uint64_t) x12 * x12 + (0x2 * ((uint64_t) x14 * x10) + (0x2 * ((uint64_t) x16 * x8) + (0x2 * ((uint64_t) x18 * x6) + 0x2 * ((uint64_t) x17 * x4)))))))));
- uint32_t x29 = (uint32_t) (x28 >> 0x16);
- uint32_t x30 = (uint32_t) x28 & 0x3fffff;
- uint64_t x31 = x29 + x27;
- uint32_t x32 = (uint32_t) (x31 >> 0x15);
- uint32_t x33 = (uint32_t) x31 & 0x1fffff;
- uint64_t x34 = x32 + x26;
- uint32_t x35 = (uint32_t) (x34 >> 0x15);
- uint32_t x36 = (uint32_t) x34 & 0x1fffff;
- uint64_t x37 = x35 + x25;
- uint32_t x38 = (uint32_t) (x37 >> 0x15);
- uint32_t x39 = (uint32_t) x37 & 0x1fffff;
- uint64_t x40 = x38 + x24;
- uint32_t x41 = (uint32_t) (x40 >> 0x15);
- uint32_t x42 = (uint32_t) x40 & 0x1fffff;
- uint64_t x43 = x41 + x23;
- uint32_t x44 = (uint32_t) (x43 >> 0x16);
- uint32_t x45 = (uint32_t) x43 & 0x3fffff;
- uint64_t x46 = x44 + x22;
- uint32_t x47 = (uint32_t) (x46 >> 0x15);
- uint32_t x48 = (uint32_t) x46 & 0x1fffff;
- uint64_t x49 = x47 + x21;
- uint32_t x50 = (uint32_t) (x49 >> 0x15);
- uint32_t x51 = (uint32_t) x49 & 0x1fffff;
- uint64_t x52 = x50 + x20;
- uint32_t x53 = (uint32_t) (x52 >> 0x15);
- uint32_t x54 = (uint32_t) x52 & 0x1fffff;
- uint64_t x55 = x53 + x19;
- uint32_t x56 = (uint32_t) (x55 >> 0x15);
- uint32_t x57 = (uint32_t) x55 & 0x1fffff;
- uint32_t x58 = x30 + 0x1d * x56;
- uint32_t x59 = x58 >> 0x16;
- uint32_t x60 = x58 & 0x3fffff;
- uint32_t x61 = x59 + x33;
- uint32_t x62 = x61 >> 0x15;
- uint32_t x63 = x61 & 0x1fffff;
- return (Return x57, Return x54, Return x51, Return x48, Return x45, Return x42, Return x39, x62 + x36, Return x63, Return x60))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x15 = (((uint64_t)x2 * x13) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x13 * x2))))))));
+ uint64_t x16 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + ((0x2 * ((uint64_t)x8 * x8)) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x1d * (0x2 * ((uint64_t)x13 * x13))));
+ uint64_t x17 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x1d * (((uint64_t)x14 * x13) + ((uint64_t)x13 * x14))));
+ uint64_t x18 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + (((uint64_t)x6 * x6) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x1d * ((0x2 * ((uint64_t)x12 * x13)) + (((uint64_t)x14 * x14) + (0x2 * ((uint64_t)x13 * x12))))));
+ uint64_t x19 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x1d * (((uint64_t)x10 * x13) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((uint64_t)x13 * x10))))));
+ uint64_t x20 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x1d * ((0x2 * ((uint64_t)x8 * x13)) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (0x2 * ((uint64_t)x13 * x8))))))));
+ uint64_t x21 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1d * (((uint64_t)x6 * x13) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + ((uint64_t)x13 * x6))))))));
+ uint64_t x22 = (((uint64_t)x2 * x2) + (0x1d * ((0x2 * ((uint64_t)x4 * x13)) + (((uint64_t)x6 * x14) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + (((uint64_t)x14 * x6) + (0x2 * ((uint64_t)x13 * x4))))))))));
+ uint64_t x23 = (x22 >> 0x1b);
+ uint32_t x24 = ((uint32_t)x22 & 0x7ffffff);
+ uint64_t x25 = (x23 + x21);
+ uint64_t x26 = (x25 >> 0x1a);
+ uint32_t x27 = ((uint32_t)x25 & 0x3ffffff);
+ uint64_t x28 = (x26 + x20);
+ uint64_t x29 = (x28 >> 0x1b);
+ uint32_t x30 = ((uint32_t)x28 & 0x7ffffff);
+ uint64_t x31 = (x29 + x19);
+ uint64_t x32 = (x31 >> 0x1a);
+ uint32_t x33 = ((uint32_t)x31 & 0x3ffffff);
+ uint64_t x34 = (x32 + x18);
+ uint64_t x35 = (x34 >> 0x1b);
+ uint32_t x36 = ((uint32_t)x34 & 0x7ffffff);
+ uint64_t x37 = (x35 + x17);
+ uint64_t x38 = (x37 >> 0x1a);
+ uint32_t x39 = ((uint32_t)x37 & 0x3ffffff);
+ uint64_t x40 = (x38 + x16);
+ uint32_t x41 = (uint32_t) (x40 >> 0x1b);
+ uint32_t x42 = ((uint32_t)x40 & 0x7ffffff);
+ uint64_t x43 = (x41 + x15);
+ uint32_t x44 = (uint32_t) (x43 >> 0x1a);
+ uint32_t x45 = ((uint32_t)x43 & 0x3ffffff);
+ uint64_t x46 = (x24 + ((uint64_t)0x1d * x44));
+ uint32_t x47 = (uint32_t) (x46 >> 0x1b);
+ uint32_t x48 = ((uint32_t)x46 & 0x7ffffff);
+ uint32_t x49 = (x47 + x27);
+ uint32_t x50 = (x49 >> 0x1a);
+ uint32_t x51 = (x49 & 0x3ffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
- : 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)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e212m29/freezeDisplay.log b/src/Specific/solinas32_2e212m29/freezeDisplay.log
index 1d6a6f631..ba04304d7 100644
--- a/src/Specific/solinas32_2e212m29/freezeDisplay.log
+++ b/src/Specific/solinas32_2e212m29/freezeDisplay.log
@@ -1,38 +1,32 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffe3);
- uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0x1fffff);
- uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0x1fffff);
- uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, 0x1fffff);
- uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x10, 0x1fffff);
- uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x12, 0x3fffff);
- uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x14, 0x1fffff);
- uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x16, 0x1fffff);
- uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x1fffff);
- uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x1fffff);
- uint32_t x49 = (uint32_t)cmovznz(x48, 0x0, 0xffffffff);
- uint32_t x50 = x49 & 0x3fffe3;
- uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
- uint32_t x54 = x49 & 0x1fffff;
- uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
- uint32_t x58 = x49 & 0x1fffff;
- uint32_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x26, Return x58);
- uint32_t x62 = x49 & 0x1fffff;
- uint32_t x64, uint8_t x65 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x29, Return x62);
- uint32_t x66 = x49 & 0x1fffff;
- uint32_t x68, uint8_t x69 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x32, Return x66);
- uint32_t x70 = x49 & 0x3fffff;
- uint32_t x72, uint8_t x73 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x35, Return x70);
- uint32_t x74 = x49 & 0x1fffff;
- uint32_t x76, uint8_t x77 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x38, Return x74);
- uint32_t x78 = x49 & 0x1fffff;
- uint32_t x80, uint8_t x81 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x41, Return x78);
- uint32_t x82 = x49 & 0x1fffff;
- uint32_t x84, uint8_t x85 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x44, Return x82);
- uint32_t x86 = x49 & 0x1fffff;
- uint32_t x88, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x47, Return x86);
- (Return x88, Return x84, Return x80, Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffe3);
+ uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0x3ffffff);
+ uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0x7ffffff);
+ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0x3ffffff);
+ uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x10, 0x7ffffff);
+ uint32_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x29, Return x12, 0x3ffffff);
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0x7ffffff);
+ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x3ffffff);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0x7ffffe3);
+ uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint32_t x44 = (x39 & 0x3ffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint32_t x48 = (x39 & 0x7ffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint32_t x52 = (x39 & 0x3ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint32_t x56 = (x39 & 0x7ffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint32_t x60 = (x39 & 0x3ffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint32_t x64 = (x39 & 0x7ffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint32_t x68 = (x39 & 0x3ffffff);
+ uint32_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : 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)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e216m2e108m1/femulDisplay.log b/src/Specific/solinas32_2e216m2e108m1/femulDisplay.log
new file mode 100644
index 000000000..7b6dabf8b
--- /dev/null
+++ b/src/Specific/solinas32_2e216m2e108m1/femulDisplay.log
@@ -0,0 +1,61 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x32 = (((uint64_t)(x11 + x16) * (x25 + x30)) - ((uint64_t)x11 * x25));
+ uint64_t x33 = ((((uint64_t)(x9 + x17) * (x25 + x30)) + ((uint64_t)(x11 + x16) * (x23 + x31))) - (((uint64_t)x9 * x25) + ((uint64_t)x11 * x23)));
+ uint64_t x34 = ((((uint64_t)(x7 + x15) * (x25 + x30)) + (((uint64_t)(x9 + x17) * (x23 + x31)) + ((uint64_t)(x11 + x16) * (x21 + x29)))) - (((uint64_t)x7 * x25) + (((uint64_t)x9 * x23) + ((uint64_t)x11 * x21))));
+ uint64_t x35 = ((((uint64_t)(x5 + x13) * (x25 + x30)) + (((uint64_t)(x7 + x15) * (x23 + x31)) + (((uint64_t)(x9 + x17) * (x21 + x29)) + ((uint64_t)(x11 + x16) * (x19 + x27))))) - (((uint64_t)x5 * x25) + (((uint64_t)x7 * x23) + (((uint64_t)x9 * x21) + ((uint64_t)x11 * x19)))));
+ uint64_t x36 = ((((uint64_t)(x5 + x13) * (x23 + x31)) + (((uint64_t)(x7 + x15) * (x21 + x29)) + ((uint64_t)(x9 + x17) * (x19 + x27)))) - (((uint64_t)x5 * x23) + (((uint64_t)x7 * x21) + ((uint64_t)x9 * x19))));
+ uint64_t x37 = ((((uint64_t)(x5 + x13) * (x21 + x29)) + ((uint64_t)(x7 + x15) * (x19 + x27))) - (((uint64_t)x5 * x21) + ((uint64_t)x7 * x19)));
+ uint64_t x38 = (((uint64_t)(x5 + x13) * (x19 + x27)) - ((uint64_t)x5 * x19));
+ uint64_t x39 = (((((uint64_t)x11 * x25) + ((uint64_t)x16 * x30)) + x36) + x32);
+ uint64_t x40 = ((((((uint64_t)x9 * x25) + ((uint64_t)x11 * x23)) + (((uint64_t)x17 * x30) + ((uint64_t)x16 * x31))) + x37) + x33);
+ uint64_t x41 = ((((((uint64_t)x7 * x25) + (((uint64_t)x9 * x23) + ((uint64_t)x11 * x21))) + (((uint64_t)x15 * x30) + (((uint64_t)x17 * x31) + ((uint64_t)x16 * x29)))) + x38) + x34);
+ uint64_t x42 = ((((uint64_t)x5 * x25) + (((uint64_t)x7 * x23) + (((uint64_t)x9 * x21) + ((uint64_t)x11 * x19)))) + (((uint64_t)x13 * x30) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + ((uint64_t)x16 * x27)))));
+ uint64_t x43 = (((((uint64_t)x5 * x23) + (((uint64_t)x7 * x21) + ((uint64_t)x9 * x19))) + (((uint64_t)x13 * x31) + (((uint64_t)x15 * x29) + ((uint64_t)x17 * x27)))) + x32);
+ uint64_t x44 = (((((uint64_t)x5 * x21) + ((uint64_t)x7 * x19)) + (((uint64_t)x13 * x29) + ((uint64_t)x15 * x27))) + x33);
+ uint64_t x45 = ((((uint64_t)x5 * x19) + ((uint64_t)x13 * x27)) + x34);
+ uint32_t x46 = (uint32_t) (x42 >> 0x1b);
+ uint32_t x47 = ((uint32_t)x42 & 0x7ffffff);
+ uint32_t x48 = (uint32_t) (x35 >> 0x1b);
+ uint32_t x49 = ((uint32_t)x35 & 0x7ffffff);
+ uint64_t x50 = (((uint64_t)0x8000000 * x48) + x49);
+ uint32_t x51 = (uint32_t) (x50 >> 0x1b);
+ uint32_t x52 = ((uint32_t)x50 & 0x7ffffff);
+ uint64_t x53 = ((x46 + x41) + x51);
+ uint32_t x54 = (uint32_t) (x53 >> 0x1b);
+ uint32_t x55 = ((uint32_t)x53 & 0x7ffffff);
+ uint64_t x56 = (x45 + x51);
+ uint32_t x57 = (uint32_t) (x56 >> 0x1b);
+ uint32_t x58 = ((uint32_t)x56 & 0x7ffffff);
+ uint64_t x59 = (x54 + x40);
+ uint32_t x60 = (uint32_t) (x59 >> 0x1b);
+ uint32_t x61 = ((uint32_t)x59 & 0x7ffffff);
+ uint64_t x62 = (x57 + x44);
+ uint32_t x63 = (uint32_t) (x62 >> 0x1b);
+ uint32_t x64 = ((uint32_t)x62 & 0x7ffffff);
+ uint64_t x65 = (x60 + x39);
+ uint32_t x66 = (uint32_t) (x65 >> 0x1b);
+ uint32_t x67 = ((uint32_t)x65 & 0x7ffffff);
+ uint64_t x68 = (x63 + x43);
+ uint32_t x69 = (uint32_t) (x68 >> 0x1b);
+ uint32_t x70 = ((uint32_t)x68 & 0x7ffffff);
+ uint32_t x71 = (x66 + x52);
+ uint32_t x72 = (x71 >> 0x1b);
+ uint32_t x73 = (x71 & 0x7ffffff);
+ uint32_t x74 = (x69 + x47);
+ uint32_t x75 = (x74 >> 0x1b);
+ uint32_t x76 = (x74 & 0x7ffffff);
+ uint32_t x77 = ((0x8000000 * x72) + x73);
+ uint32_t x78 = (x77 >> 0x1b);
+ uint32_t x79 = (x77 & 0x7ffffff);
+ uint32_t x80 = ((x75 + x55) + x78);
+ uint32_t x81 = (x80 >> 0x1b);
+ uint32_t x82 = (x80 & 0x7ffffff);
+ uint32_t x83 = (x58 + x78);
+ uint32_t x84 = (x83 >> 0x1b);
+ uint32_t x85 = (x83 & 0x7ffffff);
+ return (Return x79, Return x67, (x81 + x61), Return x82, Return x76, Return x70, (x84 + x64), Return x85))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e216m2e108m1/fesquareDisplay.log b/src/Specific/solinas32_2e216m2e108m1/fesquareDisplay.log
new file mode 100644
index 000000000..cf4251bfb
--- /dev/null
+++ b/src/Specific/solinas32_2e216m2e108m1/fesquareDisplay.log
@@ -0,0 +1,61 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x15 = (((uint64_t)(x8 + x13) * (x8 + x13)) - ((uint64_t)x8 * x8));
+ uint64_t x16 = ((((uint64_t)(x6 + x14) * (x8 + x13)) + ((uint64_t)(x8 + x13) * (x6 + x14))) - (((uint64_t)x6 * x8) + ((uint64_t)x8 * x6)));
+ uint64_t x17 = ((((uint64_t)(x4 + x12) * (x8 + x13)) + (((uint64_t)(x6 + x14) * (x6 + x14)) + ((uint64_t)(x8 + x13) * (x4 + x12)))) - (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + ((uint64_t)x8 * x4))));
+ uint64_t x18 = ((((uint64_t)(x2 + x10) * (x8 + x13)) + (((uint64_t)(x4 + x12) * (x6 + x14)) + (((uint64_t)(x6 + x14) * (x4 + x12)) + ((uint64_t)(x8 + x13) * (x2 + x10))))) - (((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))));
+ uint64_t x19 = ((((uint64_t)(x2 + x10) * (x6 + x14)) + (((uint64_t)(x4 + x12) * (x4 + x12)) + ((uint64_t)(x6 + x14) * (x2 + x10)))) - (((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))));
+ uint64_t x20 = ((((uint64_t)(x2 + x10) * (x4 + x12)) + ((uint64_t)(x4 + x12) * (x2 + x10))) - (((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)));
+ uint64_t x21 = (((uint64_t)(x2 + x10) * (x2 + x10)) - ((uint64_t)x2 * x2));
+ uint64_t x22 = (((((uint64_t)x8 * x8) + ((uint64_t)x13 * x13)) + x19) + x15);
+ uint64_t x23 = ((((((uint64_t)x6 * x8) + ((uint64_t)x8 * x6)) + (((uint64_t)x14 * x13) + ((uint64_t)x13 * x14))) + x20) + x16);
+ uint64_t x24 = ((((((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + ((uint64_t)x8 * x4))) + (((uint64_t)x12 * x13) + (((uint64_t)x14 * x14) + ((uint64_t)x13 * x12)))) + x21) + x17);
+ uint64_t x25 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (((uint64_t)x10 * x13) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((uint64_t)x13 * x10)))));
+ uint64_t x26 = (((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + ((uint64_t)x14 * x10)))) + x15);
+ uint64_t x27 = (((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (((uint64_t)x10 * x12) + ((uint64_t)x12 * x10))) + x16);
+ uint64_t x28 = ((((uint64_t)x2 * x2) + ((uint64_t)x10 * x10)) + x17);
+ uint32_t x29 = (uint32_t) (x25 >> 0x1b);
+ uint32_t x30 = ((uint32_t)x25 & 0x7ffffff);
+ uint32_t x31 = (uint32_t) (x18 >> 0x1b);
+ uint32_t x32 = ((uint32_t)x18 & 0x7ffffff);
+ uint64_t x33 = (((uint64_t)0x8000000 * x31) + x32);
+ uint32_t x34 = (uint32_t) (x33 >> 0x1b);
+ uint32_t x35 = ((uint32_t)x33 & 0x7ffffff);
+ uint64_t x36 = ((x29 + x24) + x34);
+ uint32_t x37 = (uint32_t) (x36 >> 0x1b);
+ uint32_t x38 = ((uint32_t)x36 & 0x7ffffff);
+ uint64_t x39 = (x28 + x34);
+ uint32_t x40 = (uint32_t) (x39 >> 0x1b);
+ uint32_t x41 = ((uint32_t)x39 & 0x7ffffff);
+ uint64_t x42 = (x37 + x23);
+ uint32_t x43 = (uint32_t) (x42 >> 0x1b);
+ uint32_t x44 = ((uint32_t)x42 & 0x7ffffff);
+ uint64_t x45 = (x40 + x27);
+ uint32_t x46 = (uint32_t) (x45 >> 0x1b);
+ uint32_t x47 = ((uint32_t)x45 & 0x7ffffff);
+ uint64_t x48 = (x43 + x22);
+ uint32_t x49 = (uint32_t) (x48 >> 0x1b);
+ uint32_t x50 = ((uint32_t)x48 & 0x7ffffff);
+ uint64_t x51 = (x46 + x26);
+ uint32_t x52 = (uint32_t) (x51 >> 0x1b);
+ uint32_t x53 = ((uint32_t)x51 & 0x7ffffff);
+ uint32_t x54 = (x49 + x35);
+ uint32_t x55 = (x54 >> 0x1b);
+ uint32_t x56 = (x54 & 0x7ffffff);
+ uint32_t x57 = (x52 + x30);
+ uint32_t x58 = (x57 >> 0x1b);
+ uint32_t x59 = (x57 & 0x7ffffff);
+ uint32_t x60 = ((0x8000000 * x55) + x56);
+ uint32_t x61 = (x60 >> 0x1b);
+ uint32_t x62 = (x60 & 0x7ffffff);
+ uint32_t x63 = ((x58 + x38) + x61);
+ uint32_t x64 = (x63 >> 0x1b);
+ uint32_t x65 = (x63 & 0x7ffffff);
+ uint32_t x66 = (x41 + x61);
+ uint32_t x67 = (x66 >> 0x1b);
+ uint32_t x68 = (x66 & 0x7ffffff);
+ return (Return x62, Return x50, (x64 + x44), Return x65, Return x59, Return x53, (x67 + x47), Return x68))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e216m2e108m1/freezeDisplay.log b/src/Specific/solinas32_2e216m2e108m1/freezeDisplay.log
index ddebf381f..a324e292b 100644
--- a/src/Specific/solinas32_2e216m2e108m1/freezeDisplay.log
+++ b/src/Specific/solinas32_2e216m2e108m1/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0x7ffffff);
uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x7ffffff);
uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
- uint32_t x40 = x39 & 0x7ffffff;
+ uint32_t x40 = (x39 & 0x7ffffff);
uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
- uint32_t x44 = x39 & 0x7ffffff;
+ uint32_t x44 = (x39 & 0x7ffffff);
uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint32_t x48 = x39 & 0x7ffffff;
+ uint32_t x48 = (x39 & 0x7ffffff);
uint32_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint32_t x52 = x39 & 0x7ffffff;
+ uint32_t x52 = (x39 & 0x7ffffff);
uint32_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint32_t x56 = x39 & 0x7fffffe;
+ uint32_t x56 = (x39 & 0x7fffffe);
uint32_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint32_t x60 = x39 & 0x7ffffff;
+ uint32_t x60 = (x39 & 0x7ffffff);
uint32_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint32_t x64 = x39 & 0x7ffffff;
+ uint32_t x64 = (x39 & 0x7ffffff);
uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint32_t x68 = x39 & 0x7ffffff;
+ uint32_t x68 = (x39 & 0x7ffffff);
uint32_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas32_2e224m2e96p1/freezeDisplay.log b/src/Specific/solinas32_2e224m2e96p1/freezeDisplay.log
index 4d1f8caef..b63426559 100644
--- a/src/Specific/solinas32_2e224m2e96p1/freezeDisplay.log
+++ b/src/Specific/solinas32_2e224m2e96p1/freezeDisplay.log
@@ -11,19 +11,19 @@ Interp-η
uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0xfffffff);
uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0xfffffff);
uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
- uint8_t x40 = (uint8_t) x39 & 0x1;
+ uint8_t x40 = ((uint8_t)x39 & 0x1);
uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
uint32_t x45, uint8_t x46 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, 0x0);
uint32_t x48, uint8_t x49 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x22, 0x0);
- uint32_t x50 = x39 & 0xffff000;
+ uint32_t x50 = (x39 & 0xffff000);
uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x25, Return x50);
- uint32_t x54 = x39 & 0xfffffff;
+ uint32_t x54 = (x39 & 0xfffffff);
uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x28, Return x54);
- uint32_t x58 = x39 & 0xfffffff;
+ uint32_t x58 = (x39 & 0xfffffff);
uint32_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x31, Return x58);
- uint32_t x62 = x39 & 0xfffffff;
+ uint32_t x62 = (x39 & 0xfffffff);
uint32_t x64, uint8_t x65 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x34, Return x62);
- uint32_t x66 = x39 & 0xfffffff;
+ uint32_t x66 = (x39 & 0xfffffff);
uint32_t x68, uint8_t _ = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x37, Return x66);
(Return x68, Return x64, Return x60, Return x56, Return x52, Return x48, Return x45, Return x42))
x
diff --git a/src/Specific/solinas32_2e226m5/femulDisplay.log b/src/Specific/solinas32_2e226m5/femulDisplay.log
index 2c5f3f045..d0e7f1344 100644
--- a/src/Specific/solinas32_2e226m5/femulDisplay.log
+++ b/src/Specific/solinas32_2e226m5/femulDisplay.log
@@ -1,48 +1,44 @@
-λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
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,
- uint64_t x36 = (uint64_t) x5 * x34 + (0x2 * ((uint64_t) x7 * x35) + (0x2 * ((uint64_t) x9 * x33) + (0x2 * ((uint64_t) x11 * x31) + (0x2 * ((uint64_t) x13 * x29) + (0x2 * ((uint64_t) x15 * x27) + (0x2 * ((uint64_t) x17 * x25) + (0x2 * ((uint64_t) x19 * x23) + (uint64_t) x18 * x21)))))));
- uint64_t x37 = (uint64_t) x5 * x35 + (0x2 * ((uint64_t) x7 * x33) + (0x2 * ((uint64_t) x9 * x31) + (0x2 * ((uint64_t) x11 * x29) + (0x2 * ((uint64_t) x13 * x27) + (0x2 * ((uint64_t) x15 * x25) + (0x2 * ((uint64_t) x17 * x23) + (uint64_t) x19 * x21)))))) + 0x5 * ((uint64_t) x18 * x34);
- uint64_t x38 = (uint64_t) x5 * x33 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + (0x2 * ((uint64_t) x11 * x27) + (0x2 * ((uint64_t) x13 * x25) + (0x2 * ((uint64_t) x15 * x23) + (uint64_t) x17 * x21))))) + 0x5 * ((uint64_t) x19 * x34 + (uint64_t) x18 * x35);
- uint64_t x39 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + (0x2 * ((uint64_t) x9 * x27) + (0x2 * ((uint64_t) x11 * x25) + (0x2 * ((uint64_t) x13 * x23) + (uint64_t) x15 * x21)))) + 0x5 * ((uint64_t) x17 * x34 + ((uint64_t) x19 * x35 + (uint64_t) x18 * x33));
- uint64_t x40 = (uint64_t) x5 * x29 + (0x2 * ((uint64_t) x7 * x27) + (0x2 * ((uint64_t) x9 * x25) + (0x2 * ((uint64_t) x11 * x23) + (uint64_t) x13 * x21))) + 0x5 * ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31)));
- uint64_t x41 = (uint64_t) x5 * x27 + (0x2 * ((uint64_t) x7 * x25) + (0x2 * ((uint64_t) x9 * x23) + (uint64_t) x11 * x21)) + 0x5 * ((uint64_t) x13 * x34 + ((uint64_t) x15 * x35 + ((uint64_t) x17 * x33 + ((uint64_t) x19 * x31 + (uint64_t) x18 * x29))));
- uint64_t x42 = (uint64_t) x5 * x25 + (0x2 * ((uint64_t) x7 * x23) + (uint64_t) x9 * x21) + 0x5 * ((uint64_t) x11 * x34 + ((uint64_t) x13 * x35 + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + ((uint64_t) x19 * x29 + (uint64_t) x18 * x27)))));
- uint64_t x43 = (uint64_t) x5 * x23 + (uint64_t) x7 * x21 + 0x5 * ((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25))))));
- uint64_t x44 = (uint64_t) x5 * x21 + 0x5 * (0x2 * ((uint64_t) x7 * x34) + (0x2 * ((uint64_t) x9 * x35) + (0x2 * ((uint64_t) x11 * x33) + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + (0x2 * ((uint64_t) x17 * x27) + (0x2 * ((uint64_t) x19 * x25) + 0x2 * ((uint64_t) x18 * x23))))))));
- uint32_t x45 = (uint32_t) (x44 >> 0x1a);
- uint32_t x46 = (uint32_t) x44 & 0x3ffffff;
- uint64_t x47 = x45 + x43;
- uint32_t x48 = (uint32_t) (x47 >> 0x19);
- uint32_t x49 = (uint32_t) x47 & 0x1ffffff;
- uint64_t x50 = x48 + x42;
- uint32_t x51 = (uint32_t) (x50 >> 0x19);
- uint32_t x52 = (uint32_t) x50 & 0x1ffffff;
- uint64_t x53 = x51 + x41;
- uint32_t x54 = (uint32_t) (x53 >> 0x19);
- uint32_t x55 = (uint32_t) x53 & 0x1ffffff;
- uint64_t x56 = x54 + x40;
- uint32_t x57 = (uint32_t) (x56 >> 0x19);
- uint32_t x58 = (uint32_t) x56 & 0x1ffffff;
- uint64_t x59 = x57 + x39;
- uint32_t x60 = (uint32_t) (x59 >> 0x19);
- uint32_t x61 = (uint32_t) x59 & 0x1ffffff;
- uint64_t x62 = x60 + x38;
- uint32_t x63 = (uint32_t) (x62 >> 0x19);
- uint32_t x64 = (uint32_t) x62 & 0x1ffffff;
- uint64_t x65 = x63 + x37;
- uint32_t x66 = (uint32_t) (x65 >> 0x19);
- uint32_t x67 = (uint32_t) x65 & 0x1ffffff;
- uint64_t x68 = x66 + x36;
- uint32_t x69 = (uint32_t) (x68 >> 0x19);
- uint32_t x70 = (uint32_t) x68 & 0x1ffffff;
- uint32_t x71 = x46 + 0x5 * x69;
- uint32_t x72 = x71 >> 0x1a;
- uint32_t x73 = x71 & 0x3ffffff;
- uint32_t x74 = x72 + x49;
- uint32_t x75 = x74 >> 0x19;
- uint32_t x76 = x74 & 0x1ffffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint64_t x32 = (((uint64_t)x5 * x30) + ((0x2 * ((uint64_t)x7 * x31)) + ((0x2 * ((uint64_t)x9 * x29)) + (((uint64_t)x11 * x27) + (((uint64_t)x13 * x25) + ((0x2 * ((uint64_t)x15 * x23)) + ((0x2 * ((uint64_t)x17 * x21)) + ((uint64_t)x16 * x19))))))));
+ uint64_t x33 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + (((uint64_t)x13 * x23) + ((0x2 * ((uint64_t)x15 * x21)) + ((uint64_t)x17 * x19))))))) + (0x5 * ((uint64_t)x16 * x30)));
+ uint64_t x34 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + (((uint64_t)x13 * x21) + ((uint64_t)x15 * x19)))))) + (0x5 * (((uint64_t)x17 * x30) + ((uint64_t)x16 * x31))));
+ uint64_t x35 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((0x2 * ((uint64_t)x9 * x23)) + ((0x2 * ((uint64_t)x11 * x21)) + ((uint64_t)x13 * x19))))) + (0x5 * ((0x2 * ((uint64_t)x15 * x30)) + ((0x2 * ((uint64_t)x17 * x31)) + (0x2 * ((uint64_t)x16 * x29))))));
+ uint64_t x36 = ((((uint64_t)x5 * x25) + ((0x2 * ((uint64_t)x7 * x23)) + ((0x2 * ((uint64_t)x9 * x21)) + ((uint64_t)x11 * x19)))) + (0x5 * (((uint64_t)x13 * x30) + ((0x2 * ((uint64_t)x15 * x31)) + ((0x2 * ((uint64_t)x17 * x29)) + ((uint64_t)x16 * x27))))));
+ uint64_t x37 = ((((uint64_t)x5 * x23) + ((0x2 * ((uint64_t)x7 * x21)) + ((uint64_t)x9 * x19))) + (0x5 * (((uint64_t)x11 * x30) + (((uint64_t)x13 * x31) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + ((uint64_t)x16 * x25)))))));
+ uint64_t x38 = ((((uint64_t)x5 * x21) + ((uint64_t)x7 * x19)) + (0x5 * (((uint64_t)x9 * x30) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((uint64_t)x16 * x23))))))));
+ uint64_t x39 = (((uint64_t)x5 * x19) + (0x5 * ((0x2 * ((uint64_t)x7 * x30)) + ((0x2 * ((uint64_t)x9 * x31)) + ((0x2 * ((uint64_t)x11 * x29)) + (((uint64_t)x13 * x27) + ((0x2 * ((uint64_t)x15 * x25)) + ((0x2 * ((uint64_t)x17 * x23)) + (0x2 * ((uint64_t)x16 * x21))))))))));
+ uint64_t x40 = (x39 >> 0x1d);
+ uint32_t x41 = ((uint32_t)x39 & 0x1fffffff);
+ uint64_t x42 = (x40 + x38);
+ uint64_t x43 = (x42 >> 0x1c);
+ uint32_t x44 = ((uint32_t)x42 & 0xfffffff);
+ uint64_t x45 = (x43 + x37);
+ uint64_t x46 = (x45 >> 0x1c);
+ uint32_t x47 = ((uint32_t)x45 & 0xfffffff);
+ uint64_t x48 = (x46 + x36);
+ uint64_t x49 = (x48 >> 0x1c);
+ uint32_t x50 = ((uint32_t)x48 & 0xfffffff);
+ uint64_t x51 = (x49 + x35);
+ uint64_t x52 = (x51 >> 0x1d);
+ uint32_t x53 = ((uint32_t)x51 & 0x1fffffff);
+ uint64_t x54 = (x52 + x34);
+ uint64_t x55 = (x54 >> 0x1c);
+ uint32_t x56 = ((uint32_t)x54 & 0xfffffff);
+ uint64_t x57 = (x55 + x33);
+ uint64_t x58 = (x57 >> 0x1c);
+ uint32_t x59 = ((uint32_t)x57 & 0xfffffff);
+ uint64_t x60 = (x58 + x32);
+ uint64_t x61 = (x60 >> 0x1c);
+ uint32_t x62 = ((uint32_t)x60 & 0xfffffff);
+ uint64_t x63 = (x41 + (0x5 * x61));
+ uint32_t x64 = (uint32_t) (x63 >> 0x1d);
+ uint32_t x65 = ((uint32_t)x63 & 0x1fffffff);
+ uint32_t x66 = (x64 + x44);
+ uint32_t x67 = (x66 >> 0x1c);
+ uint32_t x68 = (x66 & 0xfffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(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)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e226m5/fesquareDisplay.log b/src/Specific/solinas32_2e226m5/fesquareDisplay.log
index 416ee6c50..da2fa814e 100644
--- a/src/Specific/solinas32_2e226m5/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e226m5/fesquareDisplay.log
@@ -1,48 +1,44 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x17 = (uint64_t) x2 * x15 + (0x2 * ((uint64_t) x4 * x16) + (0x2 * ((uint64_t) x6 * x14) + (0x2 * ((uint64_t) x8 * x12) + (0x2 * ((uint64_t) x10 * x10) + (0x2 * ((uint64_t) x12 * x8) + (0x2 * ((uint64_t) x14 * x6) + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x15 * x2)))))));
- uint64_t x18 = (uint64_t) x2 * x16 + (0x2 * ((uint64_t) x4 * x14) + (0x2 * ((uint64_t) x6 * x12) + (0x2 * ((uint64_t) x8 * x10) + (0x2 * ((uint64_t) x10 * x8) + (0x2 * ((uint64_t) x12 * x6) + (0x2 * ((uint64_t) x14 * x4) + (uint64_t) x16 * x2)))))) + 0x5 * ((uint64_t) x15 * x15);
- uint64_t x19 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + (0x2 * ((uint64_t) x6 * x10) + (0x2 * ((uint64_t) x8 * x8) + (0x2 * ((uint64_t) x10 * x6) + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + 0x5 * ((uint64_t) x16 * x15 + (uint64_t) x15 * x16);
- uint64_t x20 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + (0x2 * ((uint64_t) x6 * x8) + (0x2 * ((uint64_t) x8 * x6) + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + 0x5 * ((uint64_t) x14 * x15 + ((uint64_t) x16 * x16 + (uint64_t) x15 * x14));
- uint64_t x21 = (uint64_t) x2 * x10 + (0x2 * ((uint64_t) x4 * x8) + (0x2 * ((uint64_t) x6 * x6) + (0x2 * ((uint64_t) x8 * x4) + (uint64_t) x10 * x2))) + 0x5 * ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12)));
- uint64_t x22 = (uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2)) + 0x5 * ((uint64_t) x10 * x15 + ((uint64_t) x12 * x16 + ((uint64_t) x14 * x14 + ((uint64_t) x16 * x12 + (uint64_t) x15 * x10))));
- uint64_t x23 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0x5 * ((uint64_t) x8 * x15 + ((uint64_t) x10 * x16 + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + ((uint64_t) x16 * x10 + (uint64_t) x15 * x8)))));
- uint64_t x24 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x5 * ((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6))))));
- uint64_t x25 = (uint64_t) x2 * x2 + 0x5 * (0x2 * ((uint64_t) x4 * x15) + (0x2 * ((uint64_t) x6 * x16) + (0x2 * ((uint64_t) x8 * x14) + (0x2 * ((uint64_t) x10 * x12) + (0x2 * ((uint64_t) x12 * x10) + (0x2 * ((uint64_t) x14 * x8) + (0x2 * ((uint64_t) x16 * x6) + 0x2 * ((uint64_t) x15 * x4))))))));
- uint32_t x26 = (uint32_t) (x25 >> 0x1a);
- uint32_t x27 = (uint32_t) x25 & 0x3ffffff;
- uint64_t x28 = x26 + x24;
- uint32_t x29 = (uint32_t) (x28 >> 0x19);
- uint32_t x30 = (uint32_t) x28 & 0x1ffffff;
- uint64_t x31 = x29 + x23;
- uint32_t x32 = (uint32_t) (x31 >> 0x19);
- uint32_t x33 = (uint32_t) x31 & 0x1ffffff;
- uint64_t x34 = x32 + x22;
- uint32_t x35 = (uint32_t) (x34 >> 0x19);
- uint32_t x36 = (uint32_t) x34 & 0x1ffffff;
- uint64_t x37 = x35 + x21;
- uint32_t x38 = (uint32_t) (x37 >> 0x19);
- uint32_t x39 = (uint32_t) x37 & 0x1ffffff;
- uint64_t x40 = x38 + x20;
- uint32_t x41 = (uint32_t) (x40 >> 0x19);
- uint32_t x42 = (uint32_t) x40 & 0x1ffffff;
- uint64_t x43 = x41 + x19;
- uint32_t x44 = (uint32_t) (x43 >> 0x19);
- uint32_t x45 = (uint32_t) x43 & 0x1ffffff;
- uint64_t x46 = x44 + x18;
- uint32_t x47 = (uint32_t) (x46 >> 0x19);
- uint32_t x48 = (uint32_t) x46 & 0x1ffffff;
- uint64_t x49 = x47 + x17;
- uint32_t x50 = (uint32_t) (x49 >> 0x19);
- uint32_t x51 = (uint32_t) x49 & 0x1ffffff;
- uint32_t x52 = x27 + 0x5 * x50;
- uint32_t x53 = x52 >> 0x1a;
- uint32_t x54 = x52 & 0x3ffffff;
- uint32_t x55 = x53 + x30;
- uint32_t x56 = x55 >> 0x19;
- uint32_t x57 = x55 & 0x1ffffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x15 = (((uint64_t)x2 * x13) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x13 * x2))))))));
+ uint64_t x16 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0x5 * ((uint64_t)x13 * x13)));
+ uint64_t x17 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x5 * (((uint64_t)x14 * x13) + ((uint64_t)x13 * x14))));
+ uint64_t x18 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x5 * ((0x2 * ((uint64_t)x12 * x13)) + ((0x2 * ((uint64_t)x14 * x14)) + (0x2 * ((uint64_t)x13 * x12))))));
+ uint64_t x19 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x5 * (((uint64_t)x10 * x13) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + ((uint64_t)x13 * x10))))));
+ uint64_t x20 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x5 * (((uint64_t)x8 * x13) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + ((uint64_t)x13 * x8)))))));
+ uint64_t x21 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x5 * (((uint64_t)x6 * x13) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + ((uint64_t)x13 * x6))))))));
+ uint64_t x22 = (((uint64_t)x2 * x2) + (0x5 * ((0x2 * ((uint64_t)x4 * x13)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + (0x2 * ((uint64_t)x13 * x4))))))))));
+ uint64_t x23 = (x22 >> 0x1d);
+ uint32_t x24 = ((uint32_t)x22 & 0x1fffffff);
+ uint64_t x25 = (x23 + x21);
+ uint64_t x26 = (x25 >> 0x1c);
+ uint32_t x27 = ((uint32_t)x25 & 0xfffffff);
+ uint64_t x28 = (x26 + x20);
+ uint64_t x29 = (x28 >> 0x1c);
+ uint32_t x30 = ((uint32_t)x28 & 0xfffffff);
+ uint64_t x31 = (x29 + x19);
+ uint64_t x32 = (x31 >> 0x1c);
+ uint32_t x33 = ((uint32_t)x31 & 0xfffffff);
+ uint64_t x34 = (x32 + x18);
+ uint64_t x35 = (x34 >> 0x1d);
+ uint32_t x36 = ((uint32_t)x34 & 0x1fffffff);
+ uint64_t x37 = (x35 + x17);
+ uint64_t x38 = (x37 >> 0x1c);
+ uint32_t x39 = ((uint32_t)x37 & 0xfffffff);
+ uint64_t x40 = (x38 + x16);
+ uint64_t x41 = (x40 >> 0x1c);
+ uint32_t x42 = ((uint32_t)x40 & 0xfffffff);
+ uint64_t x43 = (x41 + x15);
+ uint64_t x44 = (x43 >> 0x1c);
+ uint32_t x45 = ((uint32_t)x43 & 0xfffffff);
+ uint64_t x46 = (x24 + (0x5 * x44));
+ uint32_t x47 = (uint32_t) (x46 >> 0x1d);
+ uint32_t x48 = ((uint32_t)x46 & 0x1fffffff);
+ uint32_t x49 = (x47 + x27);
+ uint32_t x50 = (x49 >> 0x1c);
+ uint32_t x51 = (x49 & 0xfffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
- : 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)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e226m5/freezeDisplay.log b/src/Specific/solinas32_2e226m5/freezeDisplay.log
index 913dff283..bdf2266d4 100644
--- a/src/Specific/solinas32_2e226m5/freezeDisplay.log
+++ b/src/Specific/solinas32_2e226m5/freezeDisplay.log
@@ -1,35 +1,32 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffffb);
- uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x1ffffff);
- uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x1ffffff);
- uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x1ffffff);
- uint32_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x28, Return x10, 0x1ffffff);
- uint32_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x31, Return x12, 0x1ffffff);
- uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x34, Return x14, 0x1ffffff);
- uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x1ffffff);
- uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1ffffff);
- uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
- uint32_t x45 = x44 & 0x3fffffb;
- uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint32_t x49 = x44 & 0x1ffffff;
- uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint32_t x53 = x44 & 0x1ffffff;
- uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint32_t x57 = x44 & 0x1ffffff;
- uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint32_t x61 = x44 & 0x1ffffff;
- uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint32_t x65 = x44 & 0x1ffffff;
- uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint32_t x69 = x44 & 0x1ffffff;
- uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint32_t x73 = x44 & 0x1ffffff;
- uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint32_t x77 = x44 & 0x1ffffff;
- uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
- (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 29 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffffb);
+ uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0xfffffff);
+ uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0xfffffff);
+ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0xfffffff);
+ uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 29 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x10, 0x1fffffff);
+ uint32_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x29, Return x12, 0xfffffff);
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0xfffffff);
+ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0xfffffff);
+ uint32_t x39 = (uint32_t)cmovznz(x38, 0x0, 0xffffffff);
+ uint32_t x40 = (x39 & 0x1ffffffb);
+ uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 29 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint32_t x44 = (x39 & 0xfffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint32_t x48 = (x39 & 0xfffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint32_t x52 = (x39 & 0xfffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint32_t x56 = (x39 & 0x1fffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 29 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint32_t x60 = (x39 & 0xfffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint32_t x64 = (x39 & 0xfffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint32_t x68 = (x39 & 0xfffffff);
+ uint32_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : 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)
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e235m15/femulDisplay.log b/src/Specific/solinas32_2e235m15/femulDisplay.log
index d89807b53..d13c214eb 100644
--- a/src/Specific/solinas32_2e235m15/femulDisplay.log
+++ b/src/Specific/solinas32_2e235m15/femulDisplay.log
@@ -1,52 +1,48 @@
-λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x x0 : 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,
- uint64_t x40 = (uint64_t) x5 * x38 + ((uint64_t) x7 * x39 + ((uint64_t) x9 * x37 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + ((uint64_t) x21 * x25 + (uint64_t) x20 * x23))))))));
- uint64_t x41 = (uint64_t) x5 * x39 + (0x2 * ((uint64_t) x7 * x37) + ((uint64_t) x9 * x35 + (0x2 * ((uint64_t) x11 * x33) + ((uint64_t) x13 * x31 + (0x2 * ((uint64_t) x15 * x29) + ((uint64_t) x17 * x27 + (0x2 * ((uint64_t) x19 * x25) + (uint64_t) x21 * x23))))))) + 0xf * (0x2 * ((uint64_t) x20 * x38));
- uint64_t x42 = (uint64_t) x5 * x37 + ((uint64_t) x7 * x35 + ((uint64_t) x9 * x33 + ((uint64_t) x11 * x31 + ((uint64_t) x13 * x29 + ((uint64_t) x15 * x27 + ((uint64_t) x17 * x25 + (uint64_t) x19 * x23)))))) + 0xf * ((uint64_t) x21 * x38 + (uint64_t) x20 * x39);
- uint64_t x43 = (uint64_t) x5 * x35 + (0x2 * ((uint64_t) x7 * x33) + ((uint64_t) x9 * x31 + (0x2 * ((uint64_t) x11 * x29) + ((uint64_t) x13 * x27 + (0x2 * ((uint64_t) x15 * x25) + (uint64_t) x17 * x23))))) + 0xf * (0x2 * ((uint64_t) x19 * x38) + ((uint64_t) x21 * x39 + 0x2 * ((uint64_t) x20 * x37)));
- uint64_t x44 = (uint64_t) x5 * x33 + ((uint64_t) x7 * x31 + ((uint64_t) x9 * x29 + ((uint64_t) x11 * x27 + ((uint64_t) x13 * x25 + (uint64_t) x15 * x23)))) + 0xf * ((uint64_t) x17 * x38 + ((uint64_t) x19 * x39 + ((uint64_t) x21 * x37 + (uint64_t) x20 * x35)));
- uint64_t x45 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + ((uint64_t) x9 * x27 + (0x2 * ((uint64_t) x11 * x25) + (uint64_t) x13 * x23))) + 0xf * (0x2 * ((uint64_t) x15 * x38) + ((uint64_t) x17 * x39 + (0x2 * ((uint64_t) x19 * x37) + ((uint64_t) x21 * x35 + 0x2 * ((uint64_t) x20 * x33)))));
- uint64_t x46 = (uint64_t) x5 * x29 + ((uint64_t) x7 * x27 + ((uint64_t) x9 * x25 + (uint64_t) x11 * x23)) + 0xf * ((uint64_t) x13 * x38 + ((uint64_t) x15 * x39 + ((uint64_t) x17 * x37 + ((uint64_t) x19 * x35 + ((uint64_t) x21 * x33 + (uint64_t) x20 * x31)))));
- uint64_t x47 = (uint64_t) x5 * x27 + (0x2 * ((uint64_t) x7 * x25) + (uint64_t) x9 * x23) + 0xf * (0x2 * ((uint64_t) x11 * x38) + ((uint64_t) x13 * x39 + (0x2 * ((uint64_t) x15 * x37) + ((uint64_t) x17 * x35 + (0x2 * ((uint64_t) x19 * x33) + ((uint64_t) x21 * x31 + 0x2 * ((uint64_t) x20 * x29)))))));
- uint64_t x48 = (uint64_t) x5 * x25 + (uint64_t) x7 * x23 + 0xf * ((uint64_t) x9 * x38 + ((uint64_t) x11 * x39 + ((uint64_t) x13 * x37 + ((uint64_t) x15 * x35 + ((uint64_t) x17 * x33 + ((uint64_t) x19 * x31 + ((uint64_t) x21 * x29 + (uint64_t) x20 * x27)))))));
- uint64_t x49 = (uint64_t) x5 * x23 + 0xf * (0x2 * ((uint64_t) x7 * x38) + ((uint64_t) x9 * x39 + (0x2 * ((uint64_t) x11 * x37) + ((uint64_t) x13 * x35 + (0x2 * ((uint64_t) x15 * x33) + ((uint64_t) x17 * x31 + (0x2 * ((uint64_t) x19 * x29) + ((uint64_t) x21 * x27 + 0x2 * ((uint64_t) x20 * x25)))))))));
- uint32_t x50 = (uint32_t) (x49 >> 0x18);
- uint32_t x51 = (uint32_t) x49 & 0xffffff;
- uint64_t x52 = x50 + x48;
- uint32_t x53 = (uint32_t) (x52 >> 0x17);
- uint32_t x54 = (uint32_t) x52 & 0x7fffff;
- uint64_t x55 = x53 + x47;
- uint32_t x56 = (uint32_t) (x55 >> 0x18);
- uint32_t x57 = (uint32_t) x55 & 0xffffff;
- uint64_t x58 = x56 + x46;
- uint32_t x59 = (uint32_t) (x58 >> 0x17);
- uint32_t x60 = (uint32_t) x58 & 0x7fffff;
- uint64_t x61 = x59 + x45;
- uint32_t x62 = (uint32_t) (x61 >> 0x18);
- uint32_t x63 = (uint32_t) x61 & 0xffffff;
- uint64_t x64 = x62 + x44;
- uint32_t x65 = (uint32_t) (x64 >> 0x17);
- uint32_t x66 = (uint32_t) x64 & 0x7fffff;
- uint64_t x67 = x65 + x43;
- uint32_t x68 = (uint32_t) (x67 >> 0x18);
- uint32_t x69 = (uint32_t) x67 & 0xffffff;
- uint64_t x70 = x68 + x42;
- uint32_t x71 = (uint32_t) (x70 >> 0x17);
- uint32_t x72 = (uint32_t) x70 & 0x7fffff;
- uint64_t x73 = x71 + x41;
- uint32_t x74 = (uint32_t) (x73 >> 0x18);
- uint32_t x75 = (uint32_t) x73 & 0xffffff;
- uint64_t x76 = x74 + x40;
- uint32_t x77 = (uint32_t) (x76 >> 0x17);
- uint32_t x78 = (uint32_t) x76 & 0x7fffff;
- uint32_t x79 = x51 + 0xf * x77;
- uint32_t x80 = x79 >> 0x18;
- uint32_t x81 = x79 & 0xffffff;
- uint32_t x82 = x80 + x54;
- uint32_t x83 = x82 >> 0x17;
- uint32_t x84 = x82 & 0x7fffff;
- return (Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, x83 + x57, Return x84, Return x81))
+ λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
+ uint64_t x36 = (((uint64_t)x5 * x34) + ((0x2 * ((uint64_t)x7 * x35)) + ((0x2 * ((uint64_t)x9 * x33)) + ((0x2 * ((uint64_t)x11 * x31)) + ((0x2 * ((uint64_t)x13 * x29)) + ((0x2 * ((uint64_t)x15 * x27)) + ((0x2 * ((uint64_t)x17 * x25)) + ((0x2 * ((uint64_t)x19 * x23)) + ((uint64_t)x18 * x21)))))))));
+ uint64_t x37 = ((((uint64_t)x5 * x35) + ((0x2 * ((uint64_t)x7 * x33)) + ((0x2 * ((uint64_t)x9 * x31)) + ((0x2 * ((uint64_t)x11 * x29)) + ((0x2 * ((uint64_t)x13 * x27)) + ((0x2 * ((uint64_t)x15 * x25)) + ((0x2 * ((uint64_t)x17 * x23)) + ((uint64_t)x19 * x21)))))))) + (0xf * ((uint64_t)x18 * x34)));
+ uint64_t x38 = ((((uint64_t)x5 * x33) + ((0x2 * ((uint64_t)x7 * x31)) + ((0x2 * ((uint64_t)x9 * x29)) + ((0x2 * ((uint64_t)x11 * x27)) + ((0x2 * ((uint64_t)x13 * x25)) + ((0x2 * ((uint64_t)x15 * x23)) + ((uint64_t)x17 * x21))))))) + (0xf * (((uint64_t)x19 * x34) + ((uint64_t)x18 * x35))));
+ uint64_t x39 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + ((0x2 * ((uint64_t)x9 * x27)) + ((0x2 * ((uint64_t)x11 * x25)) + ((0x2 * ((uint64_t)x13 * x23)) + ((uint64_t)x15 * x21)))))) + (0xf * (((uint64_t)x17 * x34) + (((uint64_t)x19 * x35) + ((uint64_t)x18 * x33)))));
+ uint64_t x40 = ((((uint64_t)x5 * x29) + ((0x2 * ((uint64_t)x7 * x27)) + ((0x2 * ((uint64_t)x9 * x25)) + ((0x2 * ((uint64_t)x11 * x23)) + ((uint64_t)x13 * x21))))) + (0xf * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))));
+ uint64_t x41 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((0x2 * ((uint64_t)x9 * x23)) + ((uint64_t)x11 * x21)))) + (0xf * (((uint64_t)x13 * x34) + (((uint64_t)x15 * x35) + (((uint64_t)x17 * x33) + (((uint64_t)x19 * x31) + ((uint64_t)x18 * x29)))))));
+ uint64_t x42 = ((((uint64_t)x5 * x25) + ((0x2 * ((uint64_t)x7 * x23)) + ((uint64_t)x9 * x21))) + (0xf * (((uint64_t)x11 * x34) + (((uint64_t)x13 * x35) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + (((uint64_t)x19 * x29) + ((uint64_t)x18 * x27))))))));
+ uint64_t x43 = ((((uint64_t)x5 * x23) + ((uint64_t)x7 * x21)) + (0xf * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))));
+ uint64_t x44 = (((uint64_t)x5 * x21) + (0xf * ((0x2 * ((uint64_t)x7 * x34)) + ((0x2 * ((uint64_t)x9 * x35)) + ((0x2 * ((uint64_t)x11 * x33)) + ((0x2 * ((uint64_t)x13 * x31)) + ((0x2 * ((uint64_t)x15 * x29)) + ((0x2 * ((uint64_t)x17 * x27)) + ((0x2 * ((uint64_t)x19 * x25)) + (0x2 * ((uint64_t)x18 * x23)))))))))));
+ uint64_t x45 = (x44 >> 0x1b);
+ uint32_t x46 = ((uint32_t)x44 & 0x7ffffff);
+ uint64_t x47 = (x45 + x43);
+ uint64_t x48 = (x47 >> 0x1a);
+ uint32_t x49 = ((uint32_t)x47 & 0x3ffffff);
+ uint64_t x50 = (x48 + x42);
+ uint64_t x51 = (x50 >> 0x1a);
+ uint32_t x52 = ((uint32_t)x50 & 0x3ffffff);
+ uint64_t x53 = (x51 + x41);
+ uint64_t x54 = (x53 >> 0x1a);
+ uint32_t x55 = ((uint32_t)x53 & 0x3ffffff);
+ uint64_t x56 = (x54 + x40);
+ uint64_t x57 = (x56 >> 0x1a);
+ uint32_t x58 = ((uint32_t)x56 & 0x3ffffff);
+ uint64_t x59 = (x57 + x39);
+ uint64_t x60 = (x59 >> 0x1a);
+ uint32_t x61 = ((uint32_t)x59 & 0x3ffffff);
+ uint64_t x62 = (x60 + x38);
+ uint32_t x63 = (uint32_t) (x62 >> 0x1a);
+ uint32_t x64 = ((uint32_t)x62 & 0x3ffffff);
+ uint64_t x65 = (x63 + x37);
+ uint32_t x66 = (uint32_t) (x65 >> 0x1a);
+ uint32_t x67 = ((uint32_t)x65 & 0x3ffffff);
+ uint64_t x68 = (x66 + x36);
+ uint32_t x69 = (uint32_t) (x68 >> 0x1a);
+ uint32_t x70 = ((uint32_t)x68 & 0x3ffffff);
+ uint64_t x71 = (x46 + ((uint64_t)0xf * x69));
+ uint32_t x72 = (uint32_t) (x71 >> 0x1b);
+ uint32_t x73 = ((uint32_t)x71 & 0x7ffffff);
+ uint32_t x74 = (x72 + x49);
+ uint32_t x75 = (x74 >> 0x1a);
+ uint32_t x76 = (x74 & 0x3ffffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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)
+ : 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_2e235m15/fesquareDisplay.log b/src/Specific/solinas32_2e235m15/fesquareDisplay.log
index ed71a94a3..bd680dc9e 100644
--- a/src/Specific/solinas32_2e235m15/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e235m15/fesquareDisplay.log
@@ -1,52 +1,48 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x19 = (uint64_t) x2 * x17 + ((uint64_t) x4 * x18 + ((uint64_t) x6 * x16 + ((uint64_t) x8 * x14 + ((uint64_t) x10 * x12 + ((uint64_t) x12 * x10 + ((uint64_t) x14 * x8 + ((uint64_t) x16 * x6 + ((uint64_t) x18 * x4 + (uint64_t) x17 * x2))))))));
- uint64_t x20 = (uint64_t) x2 * x18 + (0x2 * ((uint64_t) x4 * x16) + ((uint64_t) x6 * x14 + (0x2 * ((uint64_t) x8 * x12) + ((uint64_t) x10 * x10 + (0x2 * ((uint64_t) x12 * x8) + ((uint64_t) x14 * x6 + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x18 * x2))))))) + 0xf * (0x2 * ((uint64_t) x17 * x17));
- uint64_t x21 = (uint64_t) x2 * x16 + ((uint64_t) x4 * x14 + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + ((uint64_t) x14 * x4 + (uint64_t) x16 * x2)))))) + 0xf * ((uint64_t) x18 * x17 + (uint64_t) x17 * x18);
- uint64_t x22 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + ((uint64_t) x6 * x10 + (0x2 * ((uint64_t) x8 * x8) + ((uint64_t) x10 * x6 + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + 0xf * (0x2 * ((uint64_t) x16 * x17) + ((uint64_t) x18 * x18 + 0x2 * ((uint64_t) x17 * x16)));
- uint64_t x23 = (uint64_t) x2 * x12 + ((uint64_t) x4 * x10 + ((uint64_t) x6 * x8 + ((uint64_t) x8 * x6 + ((uint64_t) x10 * x4 + (uint64_t) x12 * x2)))) + 0xf * ((uint64_t) x14 * x17 + ((uint64_t) x16 * x18 + ((uint64_t) x18 * x16 + (uint64_t) x17 * x14)));
- uint64_t x24 = (uint64_t) x2 * x10 + (0x2 * ((uint64_t) x4 * x8) + ((uint64_t) x6 * x6 + (0x2 * ((uint64_t) x8 * x4) + (uint64_t) x10 * x2))) + 0xf * (0x2 * ((uint64_t) x12 * x17) + ((uint64_t) x14 * x18 + (0x2 * ((uint64_t) x16 * x16) + ((uint64_t) x18 * x14 + 0x2 * ((uint64_t) x17 * x12)))));
- uint64_t x25 = (uint64_t) x2 * x8 + ((uint64_t) x4 * x6 + ((uint64_t) x6 * x4 + (uint64_t) x8 * x2)) + 0xf * ((uint64_t) x10 * x17 + ((uint64_t) x12 * x18 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + ((uint64_t) x18 * x12 + (uint64_t) x17 * x10)))));
- uint64_t x26 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0xf * (0x2 * ((uint64_t) x8 * x17) + ((uint64_t) x10 * x18 + (0x2 * ((uint64_t) x12 * x16) + ((uint64_t) x14 * x14 + (0x2 * ((uint64_t) x16 * x12) + ((uint64_t) x18 * x10 + 0x2 * ((uint64_t) x17 * x8)))))));
- uint64_t x27 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0xf * ((uint64_t) x6 * x17 + ((uint64_t) x8 * x18 + ((uint64_t) x10 * x16 + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + ((uint64_t) x16 * x10 + ((uint64_t) x18 * x8 + (uint64_t) x17 * x6)))))));
- uint64_t x28 = (uint64_t) x2 * x2 + 0xf * (0x2 * ((uint64_t) x4 * x17) + ((uint64_t) x6 * x18 + (0x2 * ((uint64_t) x8 * x16) + ((uint64_t) x10 * x14 + (0x2 * ((uint64_t) x12 * x12) + ((uint64_t) x14 * x10 + (0x2 * ((uint64_t) x16 * x8) + ((uint64_t) x18 * x6 + 0x2 * ((uint64_t) x17 * x4)))))))));
- uint32_t x29 = (uint32_t) (x28 >> 0x18);
- uint32_t x30 = (uint32_t) x28 & 0xffffff;
- uint64_t x31 = x29 + x27;
- uint32_t x32 = (uint32_t) (x31 >> 0x17);
- uint32_t x33 = (uint32_t) x31 & 0x7fffff;
- uint64_t x34 = x32 + x26;
- uint32_t x35 = (uint32_t) (x34 >> 0x18);
- uint32_t x36 = (uint32_t) x34 & 0xffffff;
- uint64_t x37 = x35 + x25;
- uint32_t x38 = (uint32_t) (x37 >> 0x17);
- uint32_t x39 = (uint32_t) x37 & 0x7fffff;
- uint64_t x40 = x38 + x24;
- uint32_t x41 = (uint32_t) (x40 >> 0x18);
- uint32_t x42 = (uint32_t) x40 & 0xffffff;
- uint64_t x43 = x41 + x23;
- uint32_t x44 = (uint32_t) (x43 >> 0x17);
- uint32_t x45 = (uint32_t) x43 & 0x7fffff;
- uint64_t x46 = x44 + x22;
- uint32_t x47 = (uint32_t) (x46 >> 0x18);
- uint32_t x48 = (uint32_t) x46 & 0xffffff;
- uint64_t x49 = x47 + x21;
- uint32_t x50 = (uint32_t) (x49 >> 0x17);
- uint32_t x51 = (uint32_t) x49 & 0x7fffff;
- uint64_t x52 = x50 + x20;
- uint32_t x53 = (uint32_t) (x52 >> 0x18);
- uint32_t x54 = (uint32_t) x52 & 0xffffff;
- uint64_t x55 = x53 + x19;
- uint32_t x56 = (uint32_t) (x55 >> 0x17);
- uint32_t x57 = (uint32_t) x55 & 0x7fffff;
- uint32_t x58 = x30 + 0xf * x56;
- uint32_t x59 = x58 >> 0x18;
- uint32_t x60 = x58 & 0xffffff;
- uint32_t x61 = x59 + x33;
- uint32_t x62 = x61 >> 0x17;
- uint32_t x63 = x61 & 0x7fffff;
- return (Return x57, Return x54, Return x51, Return x48, Return x45, Return x42, Return x39, x62 + x36, Return x63, Return x60))
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x17 = (((uint64_t)x2 * x15) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + ((0x2 * ((uint64_t)x10 * x10)) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x15 * x2)))))))));
+ uint64_t x18 = ((((uint64_t)x2 * x16) + ((0x2 * ((uint64_t)x4 * x14)) + ((0x2 * ((uint64_t)x6 * x12)) + ((0x2 * ((uint64_t)x8 * x10)) + ((0x2 * ((uint64_t)x10 * x8)) + ((0x2 * ((uint64_t)x12 * x6)) + ((0x2 * ((uint64_t)x14 * x4)) + ((uint64_t)x16 * x2)))))))) + (0xf * ((uint64_t)x15 * x15)));
+ uint64_t x19 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + ((0x2 * ((uint64_t)x8 * x8)) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (0xf * (((uint64_t)x16 * x15) + ((uint64_t)x15 * x16))));
+ uint64_t x20 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + ((0x2 * ((uint64_t)x6 * x8)) + ((0x2 * ((uint64_t)x8 * x6)) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + (0xf * (((uint64_t)x14 * x15) + (((uint64_t)x16 * x16) + ((uint64_t)x15 * x14)))));
+ uint64_t x21 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0xf * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))));
+ uint64_t x22 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0xf * (((uint64_t)x10 * x15) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + ((uint64_t)x15 * x10)))))));
+ uint64_t x23 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0xf * (((uint64_t)x8 * x15) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + ((uint64_t)x15 * x8))))))));
+ uint64_t x24 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0xf * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))));
+ uint64_t x25 = (((uint64_t)x2 * x2) + (0xf * ((0x2 * ((uint64_t)x4 * x15)) + ((0x2 * ((uint64_t)x6 * x16)) + ((0x2 * ((uint64_t)x8 * x14)) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + ((0x2 * ((uint64_t)x14 * x8)) + ((0x2 * ((uint64_t)x16 * x6)) + (0x2 * ((uint64_t)x15 * x4)))))))))));
+ uint64_t x26 = (x25 >> 0x1b);
+ uint32_t x27 = ((uint32_t)x25 & 0x7ffffff);
+ uint64_t x28 = (x26 + x24);
+ uint64_t x29 = (x28 >> 0x1a);
+ uint32_t x30 = ((uint32_t)x28 & 0x3ffffff);
+ uint64_t x31 = (x29 + x23);
+ uint64_t x32 = (x31 >> 0x1a);
+ uint32_t x33 = ((uint32_t)x31 & 0x3ffffff);
+ uint64_t x34 = (x32 + x22);
+ uint64_t x35 = (x34 >> 0x1a);
+ uint32_t x36 = ((uint32_t)x34 & 0x3ffffff);
+ uint64_t x37 = (x35 + x21);
+ uint64_t x38 = (x37 >> 0x1a);
+ uint32_t x39 = ((uint32_t)x37 & 0x3ffffff);
+ uint64_t x40 = (x38 + x20);
+ uint64_t x41 = (x40 >> 0x1a);
+ uint32_t x42 = ((uint32_t)x40 & 0x3ffffff);
+ uint64_t x43 = (x41 + x19);
+ uint32_t x44 = (uint32_t) (x43 >> 0x1a);
+ uint32_t x45 = ((uint32_t)x43 & 0x3ffffff);
+ uint64_t x46 = (x44 + x18);
+ uint32_t x47 = (uint32_t) (x46 >> 0x1a);
+ uint32_t x48 = ((uint32_t)x46 & 0x3ffffff);
+ uint64_t x49 = (x47 + x17);
+ uint32_t x50 = (uint32_t) (x49 >> 0x1a);
+ uint32_t x51 = ((uint32_t)x49 & 0x3ffffff);
+ uint64_t x52 = (x27 + ((uint64_t)0xf * x50));
+ uint32_t x53 = (uint32_t) (x52 >> 0x1b);
+ uint32_t x54 = ((uint32_t)x52 & 0x7ffffff);
+ uint32_t x55 = (x53 + x30);
+ uint32_t x56 = (x55 >> 0x1a);
+ uint32_t x57 = (x55 & 0x3ffffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
- : 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)
+ : 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_2e235m15/freezeDisplay.log b/src/Specific/solinas32_2e235m15/freezeDisplay.log
index c9a3f041f..e51f4b6e1 100644
--- a/src/Specific/solinas32_2e235m15/freezeDisplay.log
+++ b/src/Specific/solinas32_2e235m15/freezeDisplay.log
@@ -1,38 +1,35 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xfffff1);
- uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0x7fffff);
- uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0xffffff);
- uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, 0x7fffff);
- uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x10, 0xffffff);
- uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x12, 0x7fffff);
- uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x14, 0xffffff);
- uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x16, 0x7fffff);
- uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0xffffff);
- uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x7fffff);
- uint32_t x49 = (uint32_t)cmovznz(x48, 0x0, 0xffffffff);
- uint32_t x50 = x49 & 0xfffff1;
- uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
- uint32_t x54 = x49 & 0x7fffff;
- uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
- uint32_t x58 = x49 & 0xffffff;
- uint32_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x26, Return x58);
- uint32_t x62 = x49 & 0x7fffff;
- uint32_t x64, uint8_t x65 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x29, Return x62);
- uint32_t x66 = x49 & 0xffffff;
- uint32_t x68, uint8_t x69 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x32, Return x66);
- uint32_t x70 = x49 & 0x7fffff;
- uint32_t x72, uint8_t x73 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x35, Return x70);
- uint32_t x74 = x49 & 0xffffff;
- uint32_t x76, uint8_t x77 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x38, Return x74);
- uint32_t x78 = x49 & 0x7fffff;
- uint32_t x80, uint8_t x81 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x41, Return x78);
- uint32_t x82 = x49 & 0xffffff;
- uint32_t x84, uint8_t x85 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x44, Return x82);
- uint32_t x86 = x49 & 0x7fffff;
- uint32_t x88, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x47, Return x86);
- (Return x88, Return x84, Return x80, Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffff1);
+ uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x3ffffff);
+ uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x3ffffff);
+ uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3ffffff);
+ uint32_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x28, Return x10, 0x3ffffff);
+ uint32_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x31, Return x12, 0x3ffffff);
+ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x34, Return x14, 0x3ffffff);
+ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x3ffffff);
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x3ffffff);
+ uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
+ uint32_t x45 = (x44 & 0x7fffff1);
+ uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
+ uint32_t x49 = (x44 & 0x3ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
+ uint32_t x53 = (x44 & 0x3ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
+ uint32_t x57 = (x44 & 0x3ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
+ uint32_t x61 = (x44 & 0x3ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
+ uint32_t x65 = (x44 & 0x3ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
+ uint32_t x69 = (x44 & 0x3ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
+ uint32_t x73 = (x44 & 0x3ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
+ uint32_t x77 = (x44 & 0x3ffffff);
+ uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
+ (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
- : 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)
+ : 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_2e243m9/femulDisplay.log b/src/Specific/solinas32_2e243m9/femulDisplay.log
index 06ebf3725..7d08b2ded 100644
--- a/src/Specific/solinas32_2e243m9/femulDisplay.log
+++ b/src/Specific/solinas32_2e243m9/femulDisplay.log
@@ -1,56 +1,48 @@
-λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x x0 : 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,
- uint64_t x44 = (uint64_t) x5 * x42 + (0x2 * ((uint64_t) x7 * x43) + (0x2 * ((uint64_t) x9 * x41) + (0x2 * ((uint64_t) x11 * x39) + (0x2 * ((uint64_t) x13 * x37) + (0x2 * ((uint64_t) x15 * x35) + (0x2 * ((uint64_t) x17 * x33) + (0x2 * ((uint64_t) x19 * x31) + (0x2 * ((uint64_t) x21 * x29) + (0x2 * ((uint64_t) x23 * x27) + (uint64_t) x22 * x25)))))))));
- uint64_t x45 = (uint64_t) x5 * x43 + (0x2 * ((uint64_t) x7 * x41) + (0x2 * ((uint64_t) x9 * x39) + (0x2 * ((uint64_t) x11 * x37) + (0x2 * ((uint64_t) x13 * x35) + (0x2 * ((uint64_t) x15 * x33) + (0x2 * ((uint64_t) x17 * x31) + (0x2 * ((uint64_t) x19 * x29) + (0x2 * ((uint64_t) x21 * x27) + (uint64_t) x23 * x25)))))))) + 0x9 * ((uint64_t) x22 * x42);
- uint64_t x46 = (uint64_t) x5 * x41 + (0x2 * ((uint64_t) x7 * x39) + (0x2 * ((uint64_t) x9 * x37) + (0x2 * ((uint64_t) x11 * x35) + (0x2 * ((uint64_t) x13 * x33) + (0x2 * ((uint64_t) x15 * x31) + (0x2 * ((uint64_t) x17 * x29) + (0x2 * ((uint64_t) x19 * x27) + (uint64_t) x21 * x25))))))) + 0x9 * ((uint64_t) x23 * x42 + (uint64_t) x22 * x43);
- uint64_t x47 = (uint64_t) x5 * x39 + (0x2 * ((uint64_t) x7 * x37) + (0x2 * ((uint64_t) x9 * x35) + (0x2 * ((uint64_t) x11 * x33) + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + (0x2 * ((uint64_t) x17 * x27) + (uint64_t) x19 * x25)))))) + 0x9 * ((uint64_t) x21 * x42 + ((uint64_t) x23 * x43 + (uint64_t) x22 * x41));
- uint64_t x48 = (uint64_t) x5 * x37 + (0x2 * ((uint64_t) x7 * x35) + (0x2 * ((uint64_t) x9 * x33) + (0x2 * ((uint64_t) x11 * x31) + (0x2 * ((uint64_t) x13 * x29) + (0x2 * ((uint64_t) x15 * x27) + (uint64_t) x17 * x25))))) + 0x9 * ((uint64_t) x19 * x42 + ((uint64_t) x21 * x43 + ((uint64_t) x23 * x41 + (uint64_t) x22 * x39)));
- uint64_t x49 = (uint64_t) x5 * x35 + (0x2 * ((uint64_t) x7 * x33) + (0x2 * ((uint64_t) x9 * x31) + (0x2 * ((uint64_t) x11 * x29) + (0x2 * ((uint64_t) x13 * x27) + (uint64_t) x15 * x25)))) + 0x9 * ((uint64_t) x17 * x42 + ((uint64_t) x19 * x43 + ((uint64_t) x21 * x41 + ((uint64_t) x23 * x39 + (uint64_t) x22 * x37))));
- uint64_t x50 = (uint64_t) x5 * x33 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + (0x2 * ((uint64_t) x11 * x27) + (uint64_t) x13 * x25))) + 0x9 * ((uint64_t) x15 * x42 + ((uint64_t) x17 * x43 + ((uint64_t) x19 * x41 + ((uint64_t) x21 * x39 + ((uint64_t) x23 * x37 + (uint64_t) x22 * x35)))));
- uint64_t x51 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + (0x2 * ((uint64_t) x9 * x27) + (uint64_t) x11 * x25)) + 0x9 * ((uint64_t) x13 * x42 + ((uint64_t) x15 * x43 + ((uint64_t) x17 * x41 + ((uint64_t) x19 * x39 + ((uint64_t) x21 * x37 + ((uint64_t) x23 * x35 + (uint64_t) x22 * x33))))));
- uint64_t x52 = (uint64_t) x5 * x29 + (0x2 * ((uint64_t) x7 * x27) + (uint64_t) x9 * x25) + 0x9 * ((uint64_t) x11 * x42 + ((uint64_t) x13 * x43 + ((uint64_t) x15 * x41 + ((uint64_t) x17 * x39 + ((uint64_t) x19 * x37 + ((uint64_t) x21 * x35 + ((uint64_t) x23 * x33 + (uint64_t) x22 * x31)))))));
- uint64_t x53 = (uint64_t) x5 * x27 + (uint64_t) x7 * x25 + 0x9 * ((uint64_t) x9 * x42 + ((uint64_t) x11 * x43 + ((uint64_t) x13 * x41 + ((uint64_t) x15 * x39 + ((uint64_t) x17 * x37 + ((uint64_t) x19 * x35 + ((uint64_t) x21 * x33 + ((uint64_t) x23 * x31 + (uint64_t) x22 * x29))))))));
- uint64_t x54 = (uint64_t) x5 * x25 + 0x9 * (0x2 * ((uint64_t) x7 * x42) + (0x2 * ((uint64_t) x9 * x43) + (0x2 * ((uint64_t) x11 * x41) + (0x2 * ((uint64_t) x13 * x39) + (0x2 * ((uint64_t) x15 * x37) + (0x2 * ((uint64_t) x17 * x35) + (0x2 * ((uint64_t) x19 * x33) + (0x2 * ((uint64_t) x21 * x31) + (0x2 * ((uint64_t) x23 * x29) + 0x2 * ((uint64_t) x22 * x27))))))))));
- uint32_t x55 = (uint32_t) (x54 >> 0x17);
- uint32_t x56 = (uint32_t) x54 & 0x7fffff;
- uint64_t x57 = x55 + x53;
- uint32_t x58 = (uint32_t) (x57 >> 0x16);
- uint32_t x59 = (uint32_t) x57 & 0x3fffff;
- uint64_t x60 = x58 + x52;
- uint32_t x61 = (uint32_t) (x60 >> 0x16);
- uint32_t x62 = (uint32_t) x60 & 0x3fffff;
- uint64_t x63 = x61 + x51;
- uint32_t x64 = (uint32_t) (x63 >> 0x16);
- uint32_t x65 = (uint32_t) x63 & 0x3fffff;
- uint64_t x66 = x64 + x50;
- uint32_t x67 = (uint32_t) (x66 >> 0x16);
- uint32_t x68 = (uint32_t) x66 & 0x3fffff;
- uint64_t x69 = x67 + x49;
- uint32_t x70 = (uint32_t) (x69 >> 0x16);
- uint32_t x71 = (uint32_t) x69 & 0x3fffff;
- uint64_t x72 = x70 + x48;
- uint32_t x73 = (uint32_t) (x72 >> 0x16);
- uint32_t x74 = (uint32_t) x72 & 0x3fffff;
- uint64_t x75 = x73 + x47;
- uint32_t x76 = (uint32_t) (x75 >> 0x16);
- uint32_t x77 = (uint32_t) x75 & 0x3fffff;
- uint64_t x78 = x76 + x46;
- uint32_t x79 = (uint32_t) (x78 >> 0x16);
- uint32_t x80 = (uint32_t) x78 & 0x3fffff;
- uint64_t x81 = x79 + x45;
- uint32_t x82 = (uint32_t) (x81 >> 0x16);
- uint32_t x83 = (uint32_t) x81 & 0x3fffff;
- uint64_t x84 = x82 + x44;
- uint32_t x85 = (uint32_t) (x84 >> 0x16);
- uint32_t x86 = (uint32_t) x84 & 0x3fffff;
- uint32_t x87 = x56 + 0x9 * x85;
- uint32_t x88 = x87 >> 0x17;
- uint32_t x89 = x87 & 0x7fffff;
- uint32_t x90 = x88 + x59;
- uint32_t x91 = x90 >> 0x16;
- uint32_t x92 = x90 & 0x3fffff;
- return (Return x86, Return x83, Return x80, Return x77, Return x74, Return x71, Return x68, Return x65, x91 + x62, Return x92, Return x89))
+ λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
+ uint64_t x36 = (((uint64_t)x5 * x34) + (((uint64_t)x7 * x35) + (((uint64_t)x9 * x33) + (((uint64_t)x11 * x31) + (((uint64_t)x13 * x29) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + (((uint64_t)x19 * x23) + ((uint64_t)x18 * x21)))))))));
+ uint64_t x37 = ((((uint64_t)x5 * x35) + (((uint64_t)x7 * x33) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x19 * x21)))))))) + (0x9 * ((uint64_t)x18 * x34)));
+ uint64_t x38 = ((((uint64_t)x5 * x33) + (((uint64_t)x7 * x31) + (((uint64_t)x9 * x29) + (((uint64_t)x11 * x27) + (((uint64_t)x13 * x25) + (((uint64_t)x15 * x23) + ((uint64_t)x17 * x21))))))) + (0x9 * (((uint64_t)x19 * x34) + ((uint64_t)x18 * x35))));
+ uint64_t x39 = ((((uint64_t)x5 * x31) + (((uint64_t)x7 * x29) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + (((uint64_t)x13 * x23) + ((uint64_t)x15 * x21)))))) + (0x9 * (((uint64_t)x17 * x34) + (((uint64_t)x19 * x35) + ((uint64_t)x18 * x33)))));
+ uint64_t x40 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + ((uint64_t)x13 * x21))))) + (0x9 * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))));
+ uint64_t x41 = ((((uint64_t)x5 * x27) + (((uint64_t)x7 * x25) + (((uint64_t)x9 * x23) + ((uint64_t)x11 * x21)))) + (0x9 * (((uint64_t)x13 * x34) + (((uint64_t)x15 * x35) + (((uint64_t)x17 * x33) + (((uint64_t)x19 * x31) + ((uint64_t)x18 * x29)))))));
+ uint64_t x42 = ((((uint64_t)x5 * x25) + (((uint64_t)x7 * x23) + ((uint64_t)x9 * x21))) + (0x9 * (((uint64_t)x11 * x34) + (((uint64_t)x13 * x35) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + (((uint64_t)x19 * x29) + ((uint64_t)x18 * x27))))))));
+ uint64_t x43 = ((((uint64_t)x5 * x23) + ((uint64_t)x7 * x21)) + (0x9 * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))));
+ uint64_t x44 = (((uint64_t)x5 * x21) + (0x9 * (((uint64_t)x7 * x34) + (((uint64_t)x9 * x35) + (((uint64_t)x11 * x33) + (((uint64_t)x13 * x31) + (((uint64_t)x15 * x29) + (((uint64_t)x17 * x27) + (((uint64_t)x19 * x25) + ((uint64_t)x18 * x23))))))))));
+ uint64_t x45 = (x44 >> 0x1b);
+ uint32_t x46 = ((uint32_t)x44 & 0x7ffffff);
+ uint64_t x47 = (x45 + x43);
+ uint64_t x48 = (x47 >> 0x1b);
+ uint32_t x49 = ((uint32_t)x47 & 0x7ffffff);
+ uint64_t x50 = (x48 + x42);
+ uint64_t x51 = (x50 >> 0x1b);
+ uint32_t x52 = ((uint32_t)x50 & 0x7ffffff);
+ uint64_t x53 = (x51 + x41);
+ uint64_t x54 = (x53 >> 0x1b);
+ uint32_t x55 = ((uint32_t)x53 & 0x7ffffff);
+ uint64_t x56 = (x54 + x40);
+ uint64_t x57 = (x56 >> 0x1b);
+ uint32_t x58 = ((uint32_t)x56 & 0x7ffffff);
+ uint64_t x59 = (x57 + x39);
+ uint64_t x60 = (x59 >> 0x1b);
+ uint32_t x61 = ((uint32_t)x59 & 0x7ffffff);
+ uint64_t x62 = (x60 + x38);
+ uint32_t x63 = (uint32_t) (x62 >> 0x1b);
+ uint32_t x64 = ((uint32_t)x62 & 0x7ffffff);
+ uint64_t x65 = (x63 + x37);
+ uint32_t x66 = (uint32_t) (x65 >> 0x1b);
+ uint32_t x67 = ((uint32_t)x65 & 0x7ffffff);
+ uint64_t x68 = (x66 + x36);
+ uint32_t x69 = (uint32_t) (x68 >> 0x1b);
+ uint32_t x70 = ((uint32_t)x68 & 0x7ffffff);
+ uint64_t x71 = (x46 + ((uint64_t)0x9 * x69));
+ uint32_t x72 = (uint32_t) (x71 >> 0x1b);
+ uint32_t x73 = ((uint32_t)x71 & 0x7ffffff);
+ uint32_t x74 = (x72 + x49);
+ uint32_t x75 = (x74 >> 0x1b);
+ uint32_t x76 = (x74 & 0x7ffffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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)
+ : 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_2e243m9/fesquareDisplay.log b/src/Specific/solinas32_2e243m9/fesquareDisplay.log
index e61ff59e6..357786c3b 100644
--- a/src/Specific/solinas32_2e243m9/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e243m9/fesquareDisplay.log
@@ -1,56 +1,48 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x19, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x21 = (uint64_t) x2 * x19 + (0x2 * ((uint64_t) x4 * x20) + (0x2 * ((uint64_t) x6 * x18) + (0x2 * ((uint64_t) x8 * x16) + (0x2 * ((uint64_t) x10 * x14) + (0x2 * ((uint64_t) x12 * x12) + (0x2 * ((uint64_t) x14 * x10) + (0x2 * ((uint64_t) x16 * x8) + (0x2 * ((uint64_t) x18 * x6) + (0x2 * ((uint64_t) x20 * x4) + (uint64_t) x19 * x2)))))))));
- uint64_t x22 = (uint64_t) x2 * x20 + (0x2 * ((uint64_t) x4 * x18) + (0x2 * ((uint64_t) x6 * x16) + (0x2 * ((uint64_t) x8 * x14) + (0x2 * ((uint64_t) x10 * x12) + (0x2 * ((uint64_t) x12 * x10) + (0x2 * ((uint64_t) x14 * x8) + (0x2 * ((uint64_t) x16 * x6) + (0x2 * ((uint64_t) x18 * x4) + (uint64_t) x20 * x2)))))))) + 0x9 * ((uint64_t) x19 * x19);
- uint64_t x23 = (uint64_t) x2 * x18 + (0x2 * ((uint64_t) x4 * x16) + (0x2 * ((uint64_t) x6 * x14) + (0x2 * ((uint64_t) x8 * x12) + (0x2 * ((uint64_t) x10 * x10) + (0x2 * ((uint64_t) x12 * x8) + (0x2 * ((uint64_t) x14 * x6) + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x18 * x2))))))) + 0x9 * ((uint64_t) x20 * x19 + (uint64_t) x19 * x20);
- uint64_t x24 = (uint64_t) x2 * x16 + (0x2 * ((uint64_t) x4 * x14) + (0x2 * ((uint64_t) x6 * x12) + (0x2 * ((uint64_t) x8 * x10) + (0x2 * ((uint64_t) x10 * x8) + (0x2 * ((uint64_t) x12 * x6) + (0x2 * ((uint64_t) x14 * x4) + (uint64_t) x16 * x2)))))) + 0x9 * ((uint64_t) x18 * x19 + ((uint64_t) x20 * x20 + (uint64_t) x19 * x18));
- uint64_t x25 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + (0x2 * ((uint64_t) x6 * x10) + (0x2 * ((uint64_t) x8 * x8) + (0x2 * ((uint64_t) x10 * x6) + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + 0x9 * ((uint64_t) x16 * x19 + ((uint64_t) x18 * x20 + ((uint64_t) x20 * x18 + (uint64_t) x19 * x16)));
- uint64_t x26 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + (0x2 * ((uint64_t) x6 * x8) + (0x2 * ((uint64_t) x8 * x6) + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + 0x9 * ((uint64_t) x14 * x19 + ((uint64_t) x16 * x20 + ((uint64_t) x18 * x18 + ((uint64_t) x20 * x16 + (uint64_t) x19 * x14))));
- uint64_t x27 = (uint64_t) x2 * x10 + (0x2 * ((uint64_t) x4 * x8) + (0x2 * ((uint64_t) x6 * x6) + (0x2 * ((uint64_t) x8 * x4) + (uint64_t) x10 * x2))) + 0x9 * ((uint64_t) x12 * x19 + ((uint64_t) x14 * x20 + ((uint64_t) x16 * x18 + ((uint64_t) x18 * x16 + ((uint64_t) x20 * x14 + (uint64_t) x19 * x12)))));
- uint64_t x28 = (uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2)) + 0x9 * ((uint64_t) x10 * x19 + ((uint64_t) x12 * x20 + ((uint64_t) x14 * x18 + ((uint64_t) x16 * x16 + ((uint64_t) x18 * x14 + ((uint64_t) x20 * x12 + (uint64_t) x19 * x10))))));
- uint64_t x29 = (uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2) + 0x9 * ((uint64_t) x8 * x19 + ((uint64_t) x10 * x20 + ((uint64_t) x12 * x18 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + ((uint64_t) x18 * x12 + ((uint64_t) x20 * x10 + (uint64_t) x19 * x8)))))));
- uint64_t x30 = (uint64_t) x2 * x4 + (uint64_t) x4 * x2 + 0x9 * ((uint64_t) x6 * x19 + ((uint64_t) x8 * x20 + ((uint64_t) x10 * x18 + ((uint64_t) x12 * x16 + ((uint64_t) x14 * x14 + ((uint64_t) x16 * x12 + ((uint64_t) x18 * x10 + ((uint64_t) x20 * x8 + (uint64_t) x19 * x6))))))));
- uint64_t x31 = (uint64_t) x2 * x2 + 0x9 * (0x2 * ((uint64_t) x4 * x19) + (0x2 * ((uint64_t) x6 * x20) + (0x2 * ((uint64_t) x8 * x18) + (0x2 * ((uint64_t) x10 * x16) + (0x2 * ((uint64_t) x12 * x14) + (0x2 * ((uint64_t) x14 * x12) + (0x2 * ((uint64_t) x16 * x10) + (0x2 * ((uint64_t) x18 * x8) + (0x2 * ((uint64_t) x20 * x6) + 0x2 * ((uint64_t) x19 * x4))))))))));
- uint32_t x32 = (uint32_t) (x31 >> 0x17);
- uint32_t x33 = (uint32_t) x31 & 0x7fffff;
- uint64_t x34 = x32 + x30;
- uint32_t x35 = (uint32_t) (x34 >> 0x16);
- uint32_t x36 = (uint32_t) x34 & 0x3fffff;
- uint64_t x37 = x35 + x29;
- uint32_t x38 = (uint32_t) (x37 >> 0x16);
- uint32_t x39 = (uint32_t) x37 & 0x3fffff;
- uint64_t x40 = x38 + x28;
- uint32_t x41 = (uint32_t) (x40 >> 0x16);
- uint32_t x42 = (uint32_t) x40 & 0x3fffff;
- uint64_t x43 = x41 + x27;
- uint32_t x44 = (uint32_t) (x43 >> 0x16);
- uint32_t x45 = (uint32_t) x43 & 0x3fffff;
- uint64_t x46 = x44 + x26;
- uint32_t x47 = (uint32_t) (x46 >> 0x16);
- uint32_t x48 = (uint32_t) x46 & 0x3fffff;
- uint64_t x49 = x47 + x25;
- uint32_t x50 = (uint32_t) (x49 >> 0x16);
- uint32_t x51 = (uint32_t) x49 & 0x3fffff;
- uint64_t x52 = x50 + x24;
- uint32_t x53 = (uint32_t) (x52 >> 0x16);
- uint32_t x54 = (uint32_t) x52 & 0x3fffff;
- uint64_t x55 = x53 + x23;
- uint32_t x56 = (uint32_t) (x55 >> 0x16);
- uint32_t x57 = (uint32_t) x55 & 0x3fffff;
- uint64_t x58 = x56 + x22;
- uint32_t x59 = (uint32_t) (x58 >> 0x16);
- uint32_t x60 = (uint32_t) x58 & 0x3fffff;
- uint64_t x61 = x59 + x21;
- uint32_t x62 = (uint32_t) (x61 >> 0x16);
- uint32_t x63 = (uint32_t) x61 & 0x3fffff;
- uint32_t x64 = x33 + 0x9 * x62;
- uint32_t x65 = x64 >> 0x17;
- uint32_t x66 = x64 & 0x7fffff;
- uint32_t x67 = x65 + x36;
- uint32_t x68 = x67 >> 0x16;
- uint32_t x69 = x67 & 0x3fffff;
- return (Return x63, Return x60, Return x57, Return x54, Return x51, Return x48, Return x45, Return x42, x68 + x39, Return x69, Return x66))
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x17 = (((uint64_t)x2 * x15) + (((uint64_t)x4 * x16) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + (((uint64_t)x10 * x10) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + (((uint64_t)x16 * x4) + ((uint64_t)x15 * x2)))))))));
+ uint64_t x18 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x9 * ((uint64_t)x15 * x15)));
+ uint64_t x19 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + (((uint64_t)x6 * x10) + (((uint64_t)x8 * x8) + (((uint64_t)x10 * x6) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x9 * (((uint64_t)x16 * x15) + ((uint64_t)x15 * x16))));
+ uint64_t x20 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x9 * (((uint64_t)x14 * x15) + (((uint64_t)x16 * x16) + ((uint64_t)x15 * x14)))));
+ uint64_t x21 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x9 * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))));
+ uint64_t x22 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x9 * (((uint64_t)x10 * x15) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + ((uint64_t)x15 * x10)))))));
+ uint64_t x23 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x9 * (((uint64_t)x8 * x15) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + ((uint64_t)x15 * x8))))))));
+ uint64_t x24 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x9 * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))));
+ uint64_t x25 = (((uint64_t)x2 * x2) + (0x9 * (((uint64_t)x4 * x15) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + ((uint64_t)x15 * x4))))))))));
+ uint64_t x26 = (x25 >> 0x1b);
+ uint32_t x27 = ((uint32_t)x25 & 0x7ffffff);
+ uint64_t x28 = (x26 + x24);
+ uint64_t x29 = (x28 >> 0x1b);
+ uint32_t x30 = ((uint32_t)x28 & 0x7ffffff);
+ uint64_t x31 = (x29 + x23);
+ uint64_t x32 = (x31 >> 0x1b);
+ uint32_t x33 = ((uint32_t)x31 & 0x7ffffff);
+ uint64_t x34 = (x32 + x22);
+ uint64_t x35 = (x34 >> 0x1b);
+ uint32_t x36 = ((uint32_t)x34 & 0x7ffffff);
+ uint64_t x37 = (x35 + x21);
+ uint64_t x38 = (x37 >> 0x1b);
+ uint32_t x39 = ((uint32_t)x37 & 0x7ffffff);
+ uint64_t x40 = (x38 + x20);
+ uint64_t x41 = (x40 >> 0x1b);
+ uint32_t x42 = ((uint32_t)x40 & 0x7ffffff);
+ uint64_t x43 = (x41 + x19);
+ uint32_t x44 = (uint32_t) (x43 >> 0x1b);
+ uint32_t x45 = ((uint32_t)x43 & 0x7ffffff);
+ uint64_t x46 = (x44 + x18);
+ uint32_t x47 = (uint32_t) (x46 >> 0x1b);
+ uint32_t x48 = ((uint32_t)x46 & 0x7ffffff);
+ uint64_t x49 = (x47 + x17);
+ uint32_t x50 = (uint32_t) (x49 >> 0x1b);
+ uint32_t x51 = ((uint32_t)x49 & 0x7ffffff);
+ uint64_t x52 = (x27 + ((uint64_t)0x9 * x50));
+ uint32_t x53 = (uint32_t) (x52 >> 0x1b);
+ uint32_t x54 = ((uint32_t)x52 & 0x7ffffff);
+ uint32_t x55 = (x53 + x30);
+ uint32_t x56 = (x55 >> 0x1b);
+ uint32_t x57 = (x55 & 0x7ffffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
- : 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)
+ : 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_2e243m9/freezeDisplay.log b/src/Specific/solinas32_2e243m9/freezeDisplay.log
index 2702e851a..c99609247 100644
--- a/src/Specific/solinas32_2e243m9/freezeDisplay.log
+++ b/src/Specific/solinas32_2e243m9/freezeDisplay.log
@@ -1,41 +1,35 @@
-λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x19, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffff7);
- uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x4, 0x3fffff);
- uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x6, 0x3fffff);
- uint32_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x29, Return x8, 0x3fffff);
- uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x10, 0x3fffff);
- uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x12, 0x3fffff);
- uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x14, 0x3fffff);
- uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x16, 0x3fffff);
- uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x18, 0x3fffff);
- uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0x3fffff);
- uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x3fffff);
- uint32_t x54 = (uint32_t)cmovznz(x53, 0x0, 0xffffffff);
- uint32_t x55 = x54 & 0x7ffff7;
- uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
- uint32_t x59 = x54 & 0x3fffff;
- uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
- uint32_t x63 = x54 & 0x3fffff;
- uint32_t x65, uint8_t x66 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x28, Return x63);
- uint32_t x67 = x54 & 0x3fffff;
- uint32_t x69, uint8_t x70 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x31, Return x67);
- uint32_t x71 = x54 & 0x3fffff;
- uint32_t x73, uint8_t x74 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x34, Return x71);
- uint32_t x75 = x54 & 0x3fffff;
- uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x37, Return x75);
- uint32_t x79 = x54 & 0x3fffff;
- uint32_t x81, uint8_t x82 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x40, Return x79);
- uint32_t x83 = x54 & 0x3fffff;
- uint32_t x85, uint8_t x86 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x43, Return x83);
- uint32_t x87 = x54 & 0x3fffff;
- uint32_t x89, uint8_t x90 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x46, Return x87);
- uint32_t x91 = x54 & 0x3fffff;
- uint32_t x93, uint8_t x94 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x49, Return x91);
- uint32_t x95 = x54 & 0x3fffff;
- uint32_t x97, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x52, Return x95);
- (Return x97, Return x93, Return x89, Return x85, Return x81, Return x77, Return x73, Return x69, Return x65, Return x61, Return x57))
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffff7);
+ uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x7ffffff);
+ uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x7ffffff);
+ uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x7ffffff);
+ uint32_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x28, Return x10, 0x7ffffff);
+ uint32_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x31, Return x12, 0x7ffffff);
+ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x34, Return x14, 0x7ffffff);
+ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x7ffffff);
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x7ffffff);
+ uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
+ uint32_t x45 = (x44 & 0x7fffff7);
+ uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
+ uint32_t x49 = (x44 & 0x7ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
+ uint32_t x53 = (x44 & 0x7ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
+ uint32_t x57 = (x44 & 0x7ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
+ uint32_t x61 = (x44 & 0x7ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
+ uint32_t x65 = (x44 & 0x7ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
+ uint32_t x69 = (x44 & 0x7ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
+ uint32_t x73 = (x44 & 0x7ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
+ uint32_t x77 = (x44 & 0x7ffffff);
+ uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
+ (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
- : 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)
+ : 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_2e255m2e4m2e1m1/femulDisplay.log b/src/Specific/solinas32_2e255m2e4m2e1m1/femulDisplay.log
index ff2f2b79c..64a1f5733 100644
--- a/src/Specific/solinas32_2e255m2e4m2e1m1/femulDisplay.log
+++ b/src/Specific/solinas32_2e255m2e4m2e1m1/femulDisplay.log
@@ -2,47 +2,60 @@
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,
- uint64_t x36 = (uint64_t) x5 * x34 + (0x2 * ((uint64_t) x7 * x35) + ((uint64_t) x9 * x33 + ((uint64_t) x11 * x31 + (0x2 * ((uint64_t) x13 * x29) + ((uint64_t) x15 * x27 + ((uint64_t) x17 * x25 + (0x2 * ((uint64_t) x19 * x23) + (uint64_t) x18 * x21)))))));
- uint64_t x37 = (uint64_t) x5 * x35 + ((uint64_t) x7 * x33 + ((uint64_t) x9 * x31 + ((uint64_t) x11 * x29 + ((uint64_t) x13 * x27 + ((uint64_t) x15 * x25 + ((uint64_t) x17 * x23 + (uint64_t) x19 * x21)))))) + ((uint64_t) x18 * x34 + (0x2 * ((uint64_t) x18 * x34) + 0x10 * ((uint64_t) x18 * x34)));
- uint64_t x38 = (uint64_t) x5 * x33 + (0x2 * ((uint64_t) x7 * x31) + (0x2 * ((uint64_t) x9 * x29) + ((uint64_t) x11 * x27 + (0x2 * ((uint64_t) x13 * x25) + (0x2 * ((uint64_t) x15 * x23) + (uint64_t) x17 * x21))))) + (0x2 * ((uint64_t) x19 * x34) + 0x2 * ((uint64_t) x18 * x35) + (0x2 * (0x2 * ((uint64_t) x19 * x34) + 0x2 * ((uint64_t) x18 * x35)) + 0x10 * (0x2 * ((uint64_t) x19 * x34) + 0x2 * ((uint64_t) x18 * x35))));
- uint64_t x39 = (uint64_t) x5 * x31 + (0x2 * ((uint64_t) x7 * x29) + ((uint64_t) x9 * x27 + ((uint64_t) x11 * x25 + (0x2 * ((uint64_t) x13 * x23) + (uint64_t) x15 * x21)))) + ((uint64_t) x17 * x34 + (0x2 * ((uint64_t) x19 * x35) + (uint64_t) x18 * x33) + (0x2 * ((uint64_t) x17 * x34 + (0x2 * ((uint64_t) x19 * x35) + (uint64_t) x18 * x33)) + 0x10 * ((uint64_t) x17 * x34 + (0x2 * ((uint64_t) x19 * x35) + (uint64_t) x18 * x33))));
- uint64_t x40 = (uint64_t) x5 * x29 + ((uint64_t) x7 * x27 + ((uint64_t) x9 * x25 + ((uint64_t) x11 * x23 + (uint64_t) x13 * x21))) + ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31)) + (0x2 * ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31))) + 0x10 * ((uint64_t) x15 * x34 + ((uint64_t) x17 * x35 + ((uint64_t) x19 * x33 + (uint64_t) x18 * x31)))));
- ℤ x41 = ((uint64_t) x5 * x27 + (0x2 * ((uint64_t) x7 * x25) + (0x2 * ((uint64_t) x9 * x23) + (uint64_t) x11 * x21))) +ℤ ((0x2 * ((uint64_t) x13 * x34) + (0x2 * ((uint64_t) x15 * x35) + ((uint64_t) x17 * x33 + (0x2 * ((uint64_t) x19 * x31) + 0x2 * ((uint64_t) x18 * x29))))) +ℤ (0x2 * (0x2 * ((uint64_t) x13 * x34) + (0x2 * ((uint64_t) x15 * x35) + ((uint64_t) x17 * x33 + (0x2 * ((uint64_t) x19 * x31) + 0x2 * ((uint64_t) x18 * x29))))) +ℤ 0x10 * (0x2 * ((uint64_t) x13 * x34) + (0x2 * ((uint64_t) x15 * x35) + ((uint64_t) x17 * x33 + (0x2 * ((uint64_t) x19 * x31) + 0x2 * ((uint64_t) x18 * x29)))))));
- ℤ x42 = ((uint64_t) x5 * x25 + (0x2 * ((uint64_t) x7 * x23) + (uint64_t) x9 * x21)) +ℤ (((uint64_t) x11 * x34 + (0x2 * ((uint64_t) x13 * x35) + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + (0x2 * ((uint64_t) x19 * x29) + (uint64_t) x18 * x27))))) +ℤ (0x2 * ((uint64_t) x11 * x34 + (0x2 * ((uint64_t) x13 * x35) + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + (0x2 * ((uint64_t) x19 * x29) + (uint64_t) x18 * x27))))) +ℤ 0x10 * ((uint64_t) x11 * x34 + (0x2 * ((uint64_t) x13 * x35) + ((uint64_t) x15 * x33 + ((uint64_t) x17 * x31 + (0x2 * ((uint64_t) x19 * x29) + (uint64_t) x18 * x27)))))));
- ℤ x43 = ((uint64_t) x5 * x23 + (uint64_t) x7 * x21) +ℤ (((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25)))))) +ℤ (0x2 * ((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25)))))) + 0x10 * ((uint64_t) x9 * x34 + ((uint64_t) x11 * x35 + ((uint64_t) x13 * x33 + ((uint64_t) x15 * x31 + ((uint64_t) x17 * x29 + ((uint64_t) x19 * x27 + (uint64_t) x18 * x25))))))));
- ℤ x44 = (uint64_t) x5 * x21 +ℤ ((0x2 * ((uint64_t) x7 * x34) + (0x2 * ((uint64_t) x9 * x35) + ((uint64_t) x11 * x33 + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + ((uint64_t) x17 * x27 + (0x2 * ((uint64_t) x19 * x25) + 0x2 * ((uint64_t) x18 * x23)))))))) +ℤ (0x2 * (0x2 * ((uint64_t) x7 * x34) + (0x2 * ((uint64_t) x9 * x35) + ((uint64_t) x11 * x33 + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + ((uint64_t) x17 * x27 + (0x2 * ((uint64_t) x19 * x25) + 0x2 * ((uint64_t) x18 * x23)))))))) +ℤ 0x10 *ℤ (0x2 * ((uint64_t) x7 * x34) + (0x2 * ((uint64_t) x9 * x35) + ((uint64_t) x11 * x33 + (0x2 * ((uint64_t) x13 * x31) + (0x2 * ((uint64_t) x15 * x29) + ((uint64_t) x17 * x27 + (0x2 * ((uint64_t) x19 * x25) + 0x2 * ((uint64_t) x18 * x23))))))))));
- uint64_t x45 = x44 >> 0x1d;
- uint32_t x46 = x44 &ℤ 0x1fffffff;
- ℤ x47 = x45 +ℤ x43;
- uint64_t x48 = x47 >> 0x1c;
- uint32_t x49 = x47 &ℤ 0xfffffff;
- ℤ x50 = x48 +ℤ x42;
- uint64_t x51 = x50 >> 0x1c;
- uint32_t x52 = x50 &ℤ 0xfffffff;
- ℤ x53 = x51 +ℤ x41;
- uint64_t x54 = x53 >> 0x1d;
- uint32_t x55 = x53 &ℤ 0x1fffffff;
- uint64_t x56 = x54 + x40;
- uint64_t x57 = x56 >> 0x1c;
- uint32_t x58 = (uint32_t) x56 & 0xfffffff;
- uint64_t x59 = x57 + x39;
- uint64_t x60 = x59 >> 0x1c;
- uint32_t x61 = (uint32_t) x59 & 0xfffffff;
- uint64_t x62 = x60 + x38;
- uint64_t x63 = x62 >> 0x1d;
- uint32_t x64 = (uint32_t) x62 & 0x1fffffff;
- uint64_t x65 = x63 + x37;
- uint64_t x66 = x65 >> 0x1c;
- uint32_t x67 = (uint32_t) x65 & 0xfffffff;
- uint64_t x68 = x66 + x36;
- uint64_t x69 = x68 >> 0x1c;
- uint32_t x70 = (uint32_t) x68 & 0xfffffff;
- uint64_t x71 = x46 + (x69 + (0x2 * x69 + 0x10 * x69));
- uint32_t x72 = (uint32_t) (x71 >> 0x1d);
- uint32_t x73 = (uint32_t) x71 & 0x1fffffff;
- uint32_t x74 = x72 + x49;
- uint32_t x75 = x74 >> 0x1c;
- uint32_t x76 = x74 & 0xfffffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ uint64_t x36 = (((uint64_t)x5 * x34) + ((0x2 * ((uint64_t)x7 * x35)) + (((uint64_t)x9 * x33) + (((uint64_t)x11 * x31) + ((0x2 * ((uint64_t)x13 * x29)) + (((uint64_t)x15 * x27) + (((uint64_t)x17 * x25) + ((0x2 * ((uint64_t)x19 * x23)) + ((uint64_t)x18 * x21)))))))));
+ uint64_t x37 = ((((uint64_t)x5 * x35) + (((uint64_t)x7 * x33) + (((uint64_t)x9 * x31) + (((uint64_t)x11 * x29) + (((uint64_t)x13 * x27) + (((uint64_t)x15 * x25) + (((uint64_t)x17 * x23) + ((uint64_t)x19 * x21)))))))) + (((uint64_t)x18 * x34) + ((0x2 * ((uint64_t)x18 * x34)) + (0x10 * ((uint64_t)x18 * x34)))));
+ uint64_t x38 = ((((uint64_t)x5 * x33) + ((0x2 * ((uint64_t)x7 * x31)) + ((0x2 * ((uint64_t)x9 * x29)) + (((uint64_t)x11 * x27) + ((0x2 * ((uint64_t)x13 * x25)) + ((0x2 * ((uint64_t)x15 * x23)) + ((uint64_t)x17 * x21))))))) + (((0x2 * ((uint64_t)x19 * x34)) + (0x2 * ((uint64_t)x18 * x35))) + ((0x2 * ((0x2 * ((uint64_t)x19 * x34)) + (0x2 * ((uint64_t)x18 * x35)))) + (0x10 * ((0x2 * ((uint64_t)x19 * x34)) + (0x2 * ((uint64_t)x18 * x35)))))));
+ uint64_t x39 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + (((uint64_t)x9 * x27) + (((uint64_t)x11 * x25) + ((0x2 * ((uint64_t)x13 * x23)) + ((uint64_t)x15 * x21)))))) + ((((uint64_t)x17 * x34) + ((0x2 * ((uint64_t)x19 * x35)) + ((uint64_t)x18 * x33))) + ((0x2 * (((uint64_t)x17 * x34) + ((0x2 * ((uint64_t)x19 * x35)) + ((uint64_t)x18 * x33)))) + (0x10 * (((uint64_t)x17 * x34) + ((0x2 * ((uint64_t)x19 * x35)) + ((uint64_t)x18 * x33)))))));
+ uint64_t x40 = ((((uint64_t)x5 * x29) + (((uint64_t)x7 * x27) + (((uint64_t)x9 * x25) + (((uint64_t)x11 * x23) + ((uint64_t)x13 * x21))))) + ((((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31)))) + ((0x2 * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))) + (0x10 * (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))))));
+ ℤ x41 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((0x2 * ((uint64_t)x9 * x23)) + ((uint64_t)x11 * x21)))) +ℤ (((0x2 * ((uint64_t)x13 * x34)) + ((0x2 * ((uint64_t)x15 * x35)) + (((uint64_t)x17 * x33) + ((0x2 * ((uint64_t)x19 * x31)) + (0x2 * ((uint64_t)x18 * x29)))))) +ℤ ((0x2 * ((0x2 * ((uint64_t)x13 * x34)) + ((0x2 * ((uint64_t)x15 * x35)) + (((uint64_t)x17 * x33) + ((0x2 * ((uint64_t)x19 * x31)) + (0x2 * ((uint64_t)x18 * x29))))))) +ℤ (0x10 * ((0x2 * ((uint64_t)x13 * x34)) + ((0x2 * ((uint64_t)x15 * x35)) + (((uint64_t)x17 * x33) + ((0x2 * ((uint64_t)x19 * x31)) + (0x2 * ((uint64_t)x18 * x29))))))))));
+ ℤ x42 = ((((uint64_t)x5 * x25) + ((0x2 * ((uint64_t)x7 * x23)) + ((uint64_t)x9 * x21))) +ℤ ((((uint64_t)x11 * x34) + ((0x2 * ((uint64_t)x13 * x35)) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + ((0x2 * ((uint64_t)x19 * x29)) + ((uint64_t)x18 * x27)))))) +ℤ ((0x2 * (((uint64_t)x11 * x34) + ((0x2 * ((uint64_t)x13 * x35)) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + ((0x2 * ((uint64_t)x19 * x29)) + ((uint64_t)x18 * x27))))))) +ℤ (0x10 * (((uint64_t)x11 * x34) + ((0x2 * ((uint64_t)x13 * x35)) + (((uint64_t)x15 * x33) + (((uint64_t)x17 * x31) + ((0x2 * ((uint64_t)x19 * x29)) + ((uint64_t)x18 * x27))))))))));
+ ℤ x43 = ((((uint64_t)x5 * x23) + ((uint64_t)x7 * x21)) +ℤ ((((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25))))))) +ℤ ((0x2 * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))) + (0x10 * (((uint64_t)x9 * x34) + (((uint64_t)x11 * x35) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + (((uint64_t)x17 * x29) + (((uint64_t)x19 * x27) + ((uint64_t)x18 * x25)))))))))));
+ ℤ x44 = (((uint64_t)x5 * x21) +ℤ (((0x2 * ((uint64_t)x7 * x34)) + ((0x2 * ((uint64_t)x9 * x35)) + (((uint64_t)x11 * x33) + ((0x2 * ((uint64_t)x13 * x31)) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + ((0x2 * ((uint64_t)x19 * x25)) + (0x2 * ((uint64_t)x18 * x23))))))))) +ℤ ((0x2 * ((0x2 * ((uint64_t)x7 * x34)) + ((0x2 * ((uint64_t)x9 * x35)) + (((uint64_t)x11 * x33) + ((0x2 * ((uint64_t)x13 * x31)) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + ((0x2 * ((uint64_t)x19 * x25)) + (0x2 * ((uint64_t)x18 * x23)))))))))) +ℤ (0x10 *ℤ ((0x2 * ((uint64_t)x7 * x34)) + ((0x2 * ((uint64_t)x9 * x35)) + (((uint64_t)x11 * x33) + ((0x2 * ((uint64_t)x13 * x31)) + ((0x2 * ((uint64_t)x15 * x29)) + (((uint64_t)x17 * x27) + ((0x2 * ((uint64_t)x19 * x25)) + (0x2 * ((uint64_t)x18 * x23)))))))))))));
+ uint64_t x45 = (x36 >> 0x1c);
+ uint32_t x46 = ((uint32_t)x36 & 0xfffffff);
+ uint64_t x47 = ((0x10000000 * x45) + x46);
+ uint64_t x48 = (x47 >> 0x1c);
+ uint32_t x49 = ((uint32_t)x47 & 0xfffffff);
+ uint64_t x50 = ((0x10000000 * x48) + x49);
+ uint64_t x51 = (x50 >> 0x1c);
+ uint32_t x52 = ((uint32_t)x50 & 0xfffffff);
+ uint64_t x53 = ((0x10000000 * x51) + x52);
+ uint64_t x54 = (x53 >> 0x1c);
+ uint32_t x55 = ((uint32_t)x53 & 0xfffffff);
+ ℤ x56 = (x44 +ℤ (x54 + ((0x2 * x54) + (0x10 * x54))));
+ uint64_t x57 = (x56 >> 0x1d);
+ uint32_t x58 = (x56 & 0x1fffffff);
+ ℤ x59 = (x57 +ℤ x43);
+ uint64_t x60 = (x59 >> 0x1c);
+ uint32_t x61 = (x59 & 0xfffffff);
+ ℤ x62 = (x60 +ℤ x42);
+ uint64_t x63 = (x62 >> 0x1c);
+ uint32_t x64 = (x62 & 0xfffffff);
+ ℤ x65 = (x63 +ℤ x41);
+ uint64_t x66 = (x65 >> 0x1d);
+ uint32_t x67 = (x65 & 0x1fffffff);
+ uint64_t x68 = (x66 + x40);
+ uint64_t x69 = (x68 >> 0x1c);
+ uint32_t x70 = ((uint32_t)x68 & 0xfffffff);
+ uint64_t x71 = (x69 + x39);
+ uint64_t x72 = (x71 >> 0x1c);
+ uint32_t x73 = ((uint32_t)x71 & 0xfffffff);
+ uint64_t x74 = (x72 + x38);
+ uint64_t x75 = (x74 >> 0x1d);
+ uint32_t x76 = ((uint32_t)x74 & 0x1fffffff);
+ uint64_t x77 = (x75 + x37);
+ uint64_t x78 = (x77 >> 0x1c);
+ uint32_t x79 = ((uint32_t)x77 & 0xfffffff);
+ uint64_t x80 = (x78 + x55);
+ uint32_t x81 = (uint32_t) (x80 >> 0x1c);
+ uint32_t x82 = ((uint32_t)x80 & 0xfffffff);
+ uint32_t x83 = (x58 + (x81 + ((0x2 * x81) + (0x10 * x81))));
+ uint32_t x84 = (x83 >> 0x1d);
+ uint32_t x85 = (x83 & 0x1fffffff);
+ uint32_t x86 = (x85 >> 0x1d);
+ uint32_t x87 = (x85 & 0x1fffffff);
+ uint32_t x88 = (x87 >> 0x1d);
+ uint32_t x89 = (x87 & 0x1fffffff);
+ return (Return x82, Return x79, Return x76, Return x73, Return x70, Return x67, Return x64, (x88 + (x86 + (x84 + x61))), Return x89))
(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_2e255m2e4m2e1m1/fesquareDisplay.log b/src/Specific/solinas32_2e255m2e4m2e1m1/fesquareDisplay.log
index 26802c8f4..db64b98a8 100644
--- a/src/Specific/solinas32_2e255m2e4m2e1m1/fesquareDisplay.log
+++ b/src/Specific/solinas32_2e255m2e4m2e1m1/fesquareDisplay.log
@@ -2,47 +2,60 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x17 = (uint64_t) x2 * x15 + (0x2 * ((uint64_t) x4 * x16) + ((uint64_t) x6 * x14 + ((uint64_t) x8 * x12 + (0x2 * ((uint64_t) x10 * x10) + ((uint64_t) x12 * x8 + ((uint64_t) x14 * x6 + (0x2 * ((uint64_t) x16 * x4) + (uint64_t) x15 * x2)))))));
- uint64_t x18 = (uint64_t) x2 * x16 + ((uint64_t) x4 * x14 + ((uint64_t) x6 * x12 + ((uint64_t) x8 * x10 + ((uint64_t) x10 * x8 + ((uint64_t) x12 * x6 + ((uint64_t) x14 * x4 + (uint64_t) x16 * x2)))))) + ((uint64_t) x15 * x15 + (0x2 * ((uint64_t) x15 * x15) + 0x10 * ((uint64_t) x15 * x15)));
- uint64_t x19 = (uint64_t) x2 * x14 + (0x2 * ((uint64_t) x4 * x12) + (0x2 * ((uint64_t) x6 * x10) + ((uint64_t) x8 * x8 + (0x2 * ((uint64_t) x10 * x6) + (0x2 * ((uint64_t) x12 * x4) + (uint64_t) x14 * x2))))) + (0x2 * ((uint64_t) x16 * x15) + 0x2 * ((uint64_t) x15 * x16) + (0x2 * (0x2 * ((uint64_t) x16 * x15) + 0x2 * ((uint64_t) x15 * x16)) + 0x10 * (0x2 * ((uint64_t) x16 * x15) + 0x2 * ((uint64_t) x15 * x16))));
- uint64_t x20 = (uint64_t) x2 * x12 + (0x2 * ((uint64_t) x4 * x10) + ((uint64_t) x6 * x8 + ((uint64_t) x8 * x6 + (0x2 * ((uint64_t) x10 * x4) + (uint64_t) x12 * x2)))) + ((uint64_t) x14 * x15 + (0x2 * ((uint64_t) x16 * x16) + (uint64_t) x15 * x14) + (0x2 * ((uint64_t) x14 * x15 + (0x2 * ((uint64_t) x16 * x16) + (uint64_t) x15 * x14)) + 0x10 * ((uint64_t) x14 * x15 + (0x2 * ((uint64_t) x16 * x16) + (uint64_t) x15 * x14))));
- uint64_t x21 = (uint64_t) x2 * x10 + ((uint64_t) x4 * x8 + ((uint64_t) x6 * x6 + ((uint64_t) x8 * x4 + (uint64_t) x10 * x2))) + ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12)) + (0x2 * ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12))) + 0x10 * ((uint64_t) x12 * x15 + ((uint64_t) x14 * x16 + ((uint64_t) x16 * x14 + (uint64_t) x15 * x12)))));
- ℤ x22 = ((uint64_t) x2 * x8 + (0x2 * ((uint64_t) x4 * x6) + (0x2 * ((uint64_t) x6 * x4) + (uint64_t) x8 * x2))) +ℤ ((0x2 * ((uint64_t) x10 * x15) + (0x2 * ((uint64_t) x12 * x16) + ((uint64_t) x14 * x14 + (0x2 * ((uint64_t) x16 * x12) + 0x2 * ((uint64_t) x15 * x10))))) +ℤ (0x2 * (0x2 * ((uint64_t) x10 * x15) + (0x2 * ((uint64_t) x12 * x16) + ((uint64_t) x14 * x14 + (0x2 * ((uint64_t) x16 * x12) + 0x2 * ((uint64_t) x15 * x10))))) +ℤ 0x10 * (0x2 * ((uint64_t) x10 * x15) + (0x2 * ((uint64_t) x12 * x16) + ((uint64_t) x14 * x14 + (0x2 * ((uint64_t) x16 * x12) + 0x2 * ((uint64_t) x15 * x10)))))));
- ℤ x23 = ((uint64_t) x2 * x6 + (0x2 * ((uint64_t) x4 * x4) + (uint64_t) x6 * x2)) +ℤ (((uint64_t) x8 * x15 + (0x2 * ((uint64_t) x10 * x16) + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + (0x2 * ((uint64_t) x16 * x10) + (uint64_t) x15 * x8))))) +ℤ (0x2 * ((uint64_t) x8 * x15 + (0x2 * ((uint64_t) x10 * x16) + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + (0x2 * ((uint64_t) x16 * x10) + (uint64_t) x15 * x8))))) +ℤ 0x10 * ((uint64_t) x8 * x15 + (0x2 * ((uint64_t) x10 * x16) + ((uint64_t) x12 * x14 + ((uint64_t) x14 * x12 + (0x2 * ((uint64_t) x16 * x10) + (uint64_t) x15 * x8)))))));
- ℤ x24 = ((uint64_t) x2 * x4 + (uint64_t) x4 * x2) +ℤ (((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6)))))) +ℤ (0x2 * ((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6)))))) + 0x10 * ((uint64_t) x6 * x15 + ((uint64_t) x8 * x16 + ((uint64_t) x10 * x14 + ((uint64_t) x12 * x12 + ((uint64_t) x14 * x10 + ((uint64_t) x16 * x8 + (uint64_t) x15 * x6))))))));
- ℤ x25 = (uint64_t) x2 * x2 +ℤ ((0x2 * ((uint64_t) x4 * x15) + (0x2 * ((uint64_t) x6 * x16) + ((uint64_t) x8 * x14 + (0x2 * ((uint64_t) x10 * x12) + (0x2 * ((uint64_t) x12 * x10) + ((uint64_t) x14 * x8 + (0x2 * ((uint64_t) x16 * x6) + 0x2 * ((uint64_t) x15 * x4)))))))) +ℤ (0x2 * (0x2 * ((uint64_t) x4 * x15) + (0x2 * ((uint64_t) x6 * x16) + ((uint64_t) x8 * x14 + (0x2 * ((uint64_t) x10 * x12) + (0x2 * ((uint64_t) x12 * x10) + ((uint64_t) x14 * x8 + (0x2 * ((uint64_t) x16 * x6) + 0x2 * ((uint64_t) x15 * x4)))))))) +ℤ 0x10 *ℤ (0x2 * ((uint64_t) x4 * x15) + (0x2 * ((uint64_t) x6 * x16) + ((uint64_t) x8 * x14 + (0x2 * ((uint64_t) x10 * x12) + (0x2 * ((uint64_t) x12 * x10) + ((uint64_t) x14 * x8 + (0x2 * ((uint64_t) x16 * x6) + 0x2 * ((uint64_t) x15 * x4))))))))));
- uint64_t x26 = x25 >> 0x1d;
- uint32_t x27 = x25 &ℤ 0x1fffffff;
- ℤ x28 = x26 +ℤ x24;
- uint64_t x29 = x28 >> 0x1c;
- uint32_t x30 = x28 &ℤ 0xfffffff;
- ℤ x31 = x29 +ℤ x23;
- uint64_t x32 = x31 >> 0x1c;
- uint32_t x33 = x31 &ℤ 0xfffffff;
- ℤ x34 = x32 +ℤ x22;
- uint64_t x35 = x34 >> 0x1d;
- uint32_t x36 = x34 &ℤ 0x1fffffff;
- uint64_t x37 = x35 + x21;
- uint64_t x38 = x37 >> 0x1c;
- uint32_t x39 = (uint32_t) x37 & 0xfffffff;
- uint64_t x40 = x38 + x20;
- uint64_t x41 = x40 >> 0x1c;
- uint32_t x42 = (uint32_t) x40 & 0xfffffff;
- uint64_t x43 = x41 + x19;
- uint64_t x44 = x43 >> 0x1d;
- uint32_t x45 = (uint32_t) x43 & 0x1fffffff;
- uint64_t x46 = x44 + x18;
- uint64_t x47 = x46 >> 0x1c;
- uint32_t x48 = (uint32_t) x46 & 0xfffffff;
- uint64_t x49 = x47 + x17;
- uint64_t x50 = x49 >> 0x1c;
- uint32_t x51 = (uint32_t) x49 & 0xfffffff;
- uint64_t x52 = x27 + (x50 + (0x2 * x50 + 0x10 * x50));
- uint32_t x53 = (uint32_t) (x52 >> 0x1d);
- uint32_t x54 = (uint32_t) x52 & 0x1fffffff;
- uint32_t x55 = x53 + x30;
- uint32_t x56 = x55 >> 0x1c;
- uint32_t x57 = x55 & 0xfffffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ uint64_t x17 = (((uint64_t)x2 * x15) + ((0x2 * ((uint64_t)x4 * x16)) + (((uint64_t)x6 * x14) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + (((uint64_t)x14 * x6) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x15 * x2)))))))));
+ uint64_t x18 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + (((uint64_t)x6 * x12) + (((uint64_t)x8 * x10) + (((uint64_t)x10 * x8) + (((uint64_t)x12 * x6) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (((uint64_t)x15 * x15) + ((0x2 * ((uint64_t)x15 * x15)) + (0x10 * ((uint64_t)x15 * x15)))));
+ uint64_t x19 = ((((uint64_t)x2 * x14) + ((0x2 * ((uint64_t)x4 * x12)) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + ((0x2 * ((uint64_t)x12 * x4)) + ((uint64_t)x14 * x2))))))) + (((0x2 * ((uint64_t)x16 * x15)) + (0x2 * ((uint64_t)x15 * x16))) + ((0x2 * ((0x2 * ((uint64_t)x16 * x15)) + (0x2 * ((uint64_t)x15 * x16)))) + (0x10 * ((0x2 * ((uint64_t)x16 * x15)) + (0x2 * ((uint64_t)x15 * x16)))))));
+ uint64_t x20 = ((((uint64_t)x2 * x12) + ((0x2 * ((uint64_t)x4 * x10)) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + ((0x2 * ((uint64_t)x10 * x4)) + ((uint64_t)x12 * x2)))))) + ((((uint64_t)x14 * x15) + ((0x2 * ((uint64_t)x16 * x16)) + ((uint64_t)x15 * x14))) + ((0x2 * (((uint64_t)x14 * x15) + ((0x2 * ((uint64_t)x16 * x16)) + ((uint64_t)x15 * x14)))) + (0x10 * (((uint64_t)x14 * x15) + ((0x2 * ((uint64_t)x16 * x16)) + ((uint64_t)x15 * x14)))))));
+ uint64_t x21 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + ((((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12)))) + ((0x2 * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))) + (0x10 * (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))))));
+ ℤ x22 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) +ℤ (((0x2 * ((uint64_t)x10 * x15)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + (0x2 * ((uint64_t)x15 * x10)))))) +ℤ ((0x2 * ((0x2 * ((uint64_t)x10 * x15)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + (0x2 * ((uint64_t)x15 * x10))))))) +ℤ (0x10 * ((0x2 * ((uint64_t)x10 * x15)) + ((0x2 * ((uint64_t)x12 * x16)) + (((uint64_t)x14 * x14) + ((0x2 * ((uint64_t)x16 * x12)) + (0x2 * ((uint64_t)x15 * x10))))))))));
+ ℤ x23 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) +ℤ ((((uint64_t)x8 * x15) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + ((uint64_t)x15 * x8)))))) +ℤ ((0x2 * (((uint64_t)x8 * x15) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + ((uint64_t)x15 * x8))))))) +ℤ (0x10 * (((uint64_t)x8 * x15) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + ((uint64_t)x15 * x8))))))))));
+ ℤ x24 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) +ℤ ((((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6))))))) +ℤ ((0x2 * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))) + (0x10 * (((uint64_t)x6 * x15) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + ((uint64_t)x15 * x6)))))))))));
+ ℤ x25 = (((uint64_t)x2 * x2) +ℤ (((0x2 * ((uint64_t)x4 * x15)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + (0x2 * ((uint64_t)x15 * x4))))))))) +ℤ ((0x2 * ((0x2 * ((uint64_t)x4 * x15)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + (0x2 * ((uint64_t)x15 * x4)))))))))) +ℤ (0x10 *ℤ ((0x2 * ((uint64_t)x4 * x15)) + ((0x2 * ((uint64_t)x6 * x16)) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + ((0x2 * ((uint64_t)x16 * x6)) + (0x2 * ((uint64_t)x15 * x4)))))))))))));
+ uint64_t x26 = (x17 >> 0x1c);
+ uint32_t x27 = ((uint32_t)x17 & 0xfffffff);
+ uint64_t x28 = ((0x10000000 * x26) + x27);
+ uint64_t x29 = (x28 >> 0x1c);
+ uint32_t x30 = ((uint32_t)x28 & 0xfffffff);
+ uint64_t x31 = ((0x10000000 * x29) + x30);
+ uint64_t x32 = (x31 >> 0x1c);
+ uint32_t x33 = ((uint32_t)x31 & 0xfffffff);
+ uint64_t x34 = ((0x10000000 * x32) + x33);
+ uint64_t x35 = (x34 >> 0x1c);
+ uint32_t x36 = ((uint32_t)x34 & 0xfffffff);
+ ℤ x37 = (x25 +ℤ (x35 + ((0x2 * x35) + (0x10 * x35))));
+ uint64_t x38 = (x37 >> 0x1d);
+ uint32_t x39 = (x37 & 0x1fffffff);
+ ℤ x40 = (x38 +ℤ x24);
+ uint64_t x41 = (x40 >> 0x1c);
+ uint32_t x42 = (x40 & 0xfffffff);
+ ℤ x43 = (x41 +ℤ x23);
+ uint64_t x44 = (x43 >> 0x1c);
+ uint32_t x45 = (x43 & 0xfffffff);
+ ℤ x46 = (x44 +ℤ x22);
+ uint64_t x47 = (x46 >> 0x1d);
+ uint32_t x48 = (x46 & 0x1fffffff);
+ uint64_t x49 = (x47 + x21);
+ uint64_t x50 = (x49 >> 0x1c);
+ uint32_t x51 = ((uint32_t)x49 & 0xfffffff);
+ uint64_t x52 = (x50 + x20);
+ uint64_t x53 = (x52 >> 0x1c);
+ uint32_t x54 = ((uint32_t)x52 & 0xfffffff);
+ uint64_t x55 = (x53 + x19);
+ uint64_t x56 = (x55 >> 0x1d);
+ uint32_t x57 = ((uint32_t)x55 & 0x1fffffff);
+ uint64_t x58 = (x56 + x18);
+ uint64_t x59 = (x58 >> 0x1c);
+ uint32_t x60 = ((uint32_t)x58 & 0xfffffff);
+ uint64_t x61 = (x59 + x36);
+ uint32_t x62 = (uint32_t) (x61 >> 0x1c);
+ uint32_t x63 = ((uint32_t)x61 & 0xfffffff);
+ uint32_t x64 = (x39 + (x62 + ((0x2 * x62) + (0x10 * x62))));
+ uint32_t x65 = (x64 >> 0x1d);
+ uint32_t x66 = (x64 & 0x1fffffff);
+ uint32_t x67 = (x66 >> 0x1d);
+ uint32_t x68 = (x66 & 0x1fffffff);
+ uint32_t x69 = (x68 >> 0x1d);
+ uint32_t x70 = (x68 & 0x1fffffff);
+ return (Return x63, Return x60, Return x57, Return x54, Return x51, Return x48, Return x45, (x69 + (x67 + (x65 + x42))), Return x70))
x
: 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_2e255m2e4m2e1m1/freezeDisplay.log b/src/Specific/solinas32_2e255m2e4m2e1m1/freezeDisplay.log
index 6bceed2df..f92d018a1 100644
--- a/src/Specific/solinas32_2e255m2e4m2e1m1/freezeDisplay.log
+++ b/src/Specific/solinas32_2e255m2e4m2e1m1/freezeDisplay.log
@@ -12,23 +12,23 @@ Interp-η
uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0xfffffff);
uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0xfffffff);
uint32_t x44 = (uint32_t)cmovznz(x43, 0x0, 0xffffffff);
- uint32_t x45 = x44 & 0x1fffffed;
+ uint32_t x45 = (x44 & 0x1fffffed);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 29 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint32_t x49 = x44 & 0xfffffff;
+ uint32_t x49 = (x44 & 0xfffffff);
uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint32_t x53 = x44 & 0xfffffff;
+ uint32_t x53 = (x44 & 0xfffffff);
uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint32_t x57 = x44 & 0x1fffffff;
+ uint32_t x57 = (x44 & 0x1fffffff);
uint32_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 29 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint32_t x61 = x44 & 0xfffffff;
+ uint32_t x61 = (x44 & 0xfffffff);
uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint32_t x65 = x44 & 0xfffffff;
+ uint32_t x65 = (x44 & 0xfffffff);
uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint32_t x69 = x44 & 0x1fffffff;
+ uint32_t x69 = (x44 & 0x1fffffff);
uint32_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 29 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint32_t x73 = x44 & 0xfffffff;
+ uint32_t x73 = (x44 & 0xfffffff);
uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint32_t x77 = x44 & 0xfffffff;
+ uint32_t x77 = (x44 & 0xfffffff);
uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
(Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
diff --git a/src/Specific/solinas64_2e369m25/femulDisplay.log b/src/Specific/solinas64_2e369m25/femulDisplay.log
index 2411a99b4..7914bb499 100644
--- a/src/Specific/solinas64_2e369m25/femulDisplay.log
+++ b/src/Specific/solinas64_2e369m25/femulDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- uint128_t x32 = (uint128_t) x5 * x30 + (0x2 * ((uint128_t) x7 * x31) + (0x2 * ((uint128_t) x9 * x29) + (0x2 * ((uint128_t) x11 * x27) + (0x2 * ((uint128_t) x13 * x25) + (0x2 * ((uint128_t) x15 * x23) + (0x2 * ((uint128_t) x17 * x21) + (uint128_t) x16 * x19))))));
- uint128_t x33 = (uint128_t) x5 * x31 + (0x2 * ((uint128_t) x7 * x29) + (0x2 * ((uint128_t) x9 * x27) + (0x2 * ((uint128_t) x11 * x25) + (0x2 * ((uint128_t) x13 * x23) + (0x2 * ((uint128_t) x15 * x21) + (uint128_t) x17 * x19))))) + 0x19 * ((uint128_t) x16 * x30);
- uint128_t x34 = (uint128_t) x5 * x29 + (0x2 * ((uint128_t) x7 * x27) + (0x2 * ((uint128_t) x9 * x25) + (0x2 * ((uint128_t) x11 * x23) + (0x2 * ((uint128_t) x13 * x21) + (uint128_t) x15 * x19)))) + 0x19 * ((uint128_t) x17 * x30 + (uint128_t) x16 * x31);
- uint128_t x35 = (uint128_t) x5 * x27 + (0x2 * ((uint128_t) x7 * x25) + (0x2 * ((uint128_t) x9 * x23) + (0x2 * ((uint128_t) x11 * x21) + (uint128_t) x13 * x19))) + 0x19 * ((uint128_t) x15 * x30 + ((uint128_t) x17 * x31 + (uint128_t) x16 * x29));
- uint128_t x36 = (uint128_t) x5 * x25 + (0x2 * ((uint128_t) x7 * x23) + (0x2 * ((uint128_t) x9 * x21) + (uint128_t) x11 * x19)) + 0x19 * ((uint128_t) x13 * x30 + ((uint128_t) x15 * x31 + ((uint128_t) x17 * x29 + (uint128_t) x16 * x27)));
- uint128_t x37 = (uint128_t) x5 * x23 + (0x2 * ((uint128_t) x7 * x21) + (uint128_t) x9 * x19) + 0x19 * ((uint128_t) x11 * x30 + ((uint128_t) x13 * x31 + ((uint128_t) x15 * x29 + ((uint128_t) x17 * x27 + (uint128_t) x16 * x25))));
- uint128_t x38 = (uint128_t) x5 * x21 + (uint128_t) x7 * x19 + 0x19 * ((uint128_t) x9 * x30 + ((uint128_t) x11 * x31 + ((uint128_t) x13 * x29 + ((uint128_t) x15 * x27 + ((uint128_t) x17 * x25 + (uint128_t) x16 * x23)))));
- uint128_t x39 = (uint128_t) x5 * x19 + 0x19 * (0x2 * ((uint128_t) x7 * x30) + (0x2 * ((uint128_t) x9 * x31) + (0x2 * ((uint128_t) x11 * x29) + (0x2 * ((uint128_t) x13 * x27) + (0x2 * ((uint128_t) x15 * x25) + (0x2 * ((uint128_t) x17 * x23) + 0x2 * ((uint128_t) x16 * x21)))))));
+ uint128_t x32 = (((uint128_t)x5 * x30) + ((0x2 * ((uint128_t)x7 * x31)) + ((0x2 * ((uint128_t)x9 * x29)) + ((0x2 * ((uint128_t)x11 * x27)) + ((0x2 * ((uint128_t)x13 * x25)) + ((0x2 * ((uint128_t)x15 * x23)) + ((0x2 * ((uint128_t)x17 * x21)) + ((uint128_t)x16 * x19))))))));
+ uint128_t x33 = ((((uint128_t)x5 * x31) + ((0x2 * ((uint128_t)x7 * x29)) + ((0x2 * ((uint128_t)x9 * x27)) + ((0x2 * ((uint128_t)x11 * x25)) + ((0x2 * ((uint128_t)x13 * x23)) + ((0x2 * ((uint128_t)x15 * x21)) + ((uint128_t)x17 * x19))))))) + (0x19 * ((uint128_t)x16 * x30)));
+ uint128_t x34 = ((((uint128_t)x5 * x29) + ((0x2 * ((uint128_t)x7 * x27)) + ((0x2 * ((uint128_t)x9 * x25)) + ((0x2 * ((uint128_t)x11 * x23)) + ((0x2 * ((uint128_t)x13 * x21)) + ((uint128_t)x15 * x19)))))) + (0x19 * (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))));
+ uint128_t x35 = ((((uint128_t)x5 * x27) + ((0x2 * ((uint128_t)x7 * x25)) + ((0x2 * ((uint128_t)x9 * x23)) + ((0x2 * ((uint128_t)x11 * x21)) + ((uint128_t)x13 * x19))))) + (0x19 * (((uint128_t)x15 * x30) + (((uint128_t)x17 * x31) + ((uint128_t)x16 * x29)))));
+ uint128_t x36 = ((((uint128_t)x5 * x25) + ((0x2 * ((uint128_t)x7 * x23)) + ((0x2 * ((uint128_t)x9 * x21)) + ((uint128_t)x11 * x19)))) + (0x19 * (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27))))));
+ uint128_t x37 = ((((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((uint128_t)x9 * x19))) + (0x19 * (((uint128_t)x11 * x30) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + (((uint128_t)x17 * x27) + ((uint128_t)x16 * x25)))))));
+ uint128_t x38 = ((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (0x19 * (((uint128_t)x9 * x30) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + ((uint128_t)x16 * x23))))))));
+ uint128_t x39 = (((uint128_t)x5 * x19) + (0x19 * ((0x2 * ((uint128_t)x7 * x30)) + ((0x2 * ((uint128_t)x9 * x31)) + ((0x2 * ((uint128_t)x11 * x29)) + ((0x2 * ((uint128_t)x13 * x27)) + ((0x2 * ((uint128_t)x15 * x25)) + ((0x2 * ((uint128_t)x17 * x23)) + (0x2 * ((uint128_t)x16 * x21))))))))));
uint64_t x40 = (uint64_t) (x39 >> 0x2f);
- uint64_t x41 = (uint64_t) x39 & 0x7fffffffffff;
- uint128_t x42 = x40 + x38;
+ uint64_t x41 = ((uint64_t)x39 & 0x7fffffffffff);
+ uint128_t x42 = (x40 + x38);
uint64_t x43 = (uint64_t) (x42 >> 0x2e);
- uint64_t x44 = (uint64_t) x42 & 0x3fffffffffff;
- uint128_t x45 = x43 + x37;
+ uint64_t x44 = ((uint64_t)x42 & 0x3fffffffffff);
+ uint128_t x45 = (x43 + x37);
uint64_t x46 = (uint64_t) (x45 >> 0x2e);
- uint64_t x47 = (uint64_t) x45 & 0x3fffffffffff;
- uint128_t x48 = x46 + x36;
+ uint64_t x47 = ((uint64_t)x45 & 0x3fffffffffff);
+ uint128_t x48 = (x46 + x36);
uint64_t x49 = (uint64_t) (x48 >> 0x2e);
- uint64_t x50 = (uint64_t) x48 & 0x3fffffffffff;
- uint128_t x51 = x49 + x35;
+ uint64_t x50 = ((uint64_t)x48 & 0x3fffffffffff);
+ uint128_t x51 = (x49 + x35);
uint64_t x52 = (uint64_t) (x51 >> 0x2e);
- uint64_t x53 = (uint64_t) x51 & 0x3fffffffffff;
- uint128_t x54 = x52 + x34;
+ uint64_t x53 = ((uint64_t)x51 & 0x3fffffffffff);
+ uint128_t x54 = (x52 + x34);
uint64_t x55 = (uint64_t) (x54 >> 0x2e);
- uint64_t x56 = (uint64_t) x54 & 0x3fffffffffff;
- uint128_t x57 = x55 + x33;
+ uint64_t x56 = ((uint64_t)x54 & 0x3fffffffffff);
+ uint128_t x57 = (x55 + x33);
uint64_t x58 = (uint64_t) (x57 >> 0x2e);
- uint64_t x59 = (uint64_t) x57 & 0x3fffffffffff;
- uint128_t x60 = x58 + x32;
+ uint64_t x59 = ((uint64_t)x57 & 0x3fffffffffff);
+ uint128_t x60 = (x58 + x32);
uint64_t x61 = (uint64_t) (x60 >> 0x2e);
- uint64_t x62 = (uint64_t) x60 & 0x3fffffffffff;
- uint64_t x63 = x41 + 0x19 * x61;
- uint64_t x64 = x63 >> 0x2f;
- uint64_t x65 = x63 & 0x7fffffffffff;
- uint64_t x66 = x64 + x44;
- uint64_t x67 = x66 >> 0x2e;
- uint64_t x68 = x66 & 0x3fffffffffff;
- return (Return x62, Return x59, Return x56, Return x53, Return x50, x67 + x47, Return x68, Return x65))
+ uint64_t x62 = ((uint64_t)x60 & 0x3fffffffffff);
+ uint64_t x63 = (x41 + (0x19 * x61));
+ uint64_t x64 = (x63 >> 0x2f);
+ uint64_t x65 = (x63 & 0x7fffffffffff);
+ uint64_t x66 = (x64 + x44);
+ uint64_t x67 = (x66 >> 0x2e);
+ uint64_t x68 = (x66 & 0x3fffffffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(x, x0)%core
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e369m25/fesquareDisplay.log b/src/Specific/solinas64_2e369m25/fesquareDisplay.log
index c29105ddf..c27dfaf7f 100644
--- a/src/Specific/solinas64_2e369m25/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e369m25/fesquareDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x15 = (uint128_t) x2 * x13 + (0x2 * ((uint128_t) x4 * x14) + (0x2 * ((uint128_t) x6 * x12) + (0x2 * ((uint128_t) x8 * x10) + (0x2 * ((uint128_t) x10 * x8) + (0x2 * ((uint128_t) x12 * x6) + (0x2 * ((uint128_t) x14 * x4) + (uint128_t) x13 * x2))))));
- uint128_t x16 = (uint128_t) x2 * x14 + (0x2 * ((uint128_t) x4 * x12) + (0x2 * ((uint128_t) x6 * x10) + (0x2 * ((uint128_t) x8 * x8) + (0x2 * ((uint128_t) x10 * x6) + (0x2 * ((uint128_t) x12 * x4) + (uint128_t) x14 * x2))))) + 0x19 * ((uint128_t) x13 * x13);
- uint128_t x17 = (uint128_t) x2 * x12 + (0x2 * ((uint128_t) x4 * x10) + (0x2 * ((uint128_t) x6 * x8) + (0x2 * ((uint128_t) x8 * x6) + (0x2 * ((uint128_t) x10 * x4) + (uint128_t) x12 * x2)))) + 0x19 * ((uint128_t) x14 * x13 + (uint128_t) x13 * x14);
- uint128_t x18 = (uint128_t) x2 * x10 + (0x2 * ((uint128_t) x4 * x8) + (0x2 * ((uint128_t) x6 * x6) + (0x2 * ((uint128_t) x8 * x4) + (uint128_t) x10 * x2))) + 0x19 * ((uint128_t) x12 * x13 + ((uint128_t) x14 * x14 + (uint128_t) x13 * x12));
- uint128_t x19 = (uint128_t) x2 * x8 + (0x2 * ((uint128_t) x4 * x6) + (0x2 * ((uint128_t) x6 * x4) + (uint128_t) x8 * x2)) + 0x19 * ((uint128_t) x10 * x13 + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + (uint128_t) x13 * x10)));
- uint128_t x20 = (uint128_t) x2 * x6 + (0x2 * ((uint128_t) x4 * x4) + (uint128_t) x6 * x2) + 0x19 * ((uint128_t) x8 * x13 + ((uint128_t) x10 * x14 + ((uint128_t) x12 * x12 + ((uint128_t) x14 * x10 + (uint128_t) x13 * x8))));
- uint128_t x21 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x19 * ((uint128_t) x6 * x13 + ((uint128_t) x8 * x14 + ((uint128_t) x10 * x12 + ((uint128_t) x12 * x10 + ((uint128_t) x14 * x8 + (uint128_t) x13 * x6)))));
- uint128_t x22 = (uint128_t) x2 * x2 + 0x19 * (0x2 * ((uint128_t) x4 * x13) + (0x2 * ((uint128_t) x6 * x14) + (0x2 * ((uint128_t) x8 * x12) + (0x2 * ((uint128_t) x10 * x10) + (0x2 * ((uint128_t) x12 * x8) + (0x2 * ((uint128_t) x14 * x6) + 0x2 * ((uint128_t) x13 * x4)))))));
+ uint128_t x15 = (((uint128_t)x2 * x13) + ((0x2 * ((uint128_t)x4 * x14)) + ((0x2 * ((uint128_t)x6 * x12)) + ((0x2 * ((uint128_t)x8 * x10)) + ((0x2 * ((uint128_t)x10 * x8)) + ((0x2 * ((uint128_t)x12 * x6)) + ((0x2 * ((uint128_t)x14 * x4)) + ((uint128_t)x13 * x2))))))));
+ uint128_t x16 = ((((uint128_t)x2 * x14) + ((0x2 * ((uint128_t)x4 * x12)) + ((0x2 * ((uint128_t)x6 * x10)) + ((0x2 * ((uint128_t)x8 * x8)) + ((0x2 * ((uint128_t)x10 * x6)) + ((0x2 * ((uint128_t)x12 * x4)) + ((uint128_t)x14 * x2))))))) + (0x19 * ((uint128_t)x13 * x13)));
+ uint128_t x17 = ((((uint128_t)x2 * x12) + ((0x2 * ((uint128_t)x4 * x10)) + ((0x2 * ((uint128_t)x6 * x8)) + ((0x2 * ((uint128_t)x8 * x6)) + ((0x2 * ((uint128_t)x10 * x4)) + ((uint128_t)x12 * x2)))))) + (0x19 * (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))));
+ uint128_t x18 = ((((uint128_t)x2 * x10) + ((0x2 * ((uint128_t)x4 * x8)) + ((0x2 * ((uint128_t)x6 * x6)) + ((0x2 * ((uint128_t)x8 * x4)) + ((uint128_t)x10 * x2))))) + (0x19 * (((uint128_t)x12 * x13) + (((uint128_t)x14 * x14) + ((uint128_t)x13 * x12)))));
+ uint128_t x19 = ((((uint128_t)x2 * x8) + ((0x2 * ((uint128_t)x4 * x6)) + ((0x2 * ((uint128_t)x6 * x4)) + ((uint128_t)x8 * x2)))) + (0x19 * (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10))))));
+ uint128_t x20 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x19 * (((uint128_t)x8 * x13) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + (((uint128_t)x14 * x10) + ((uint128_t)x13 * x8)))))));
+ uint128_t x21 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x19 * (((uint128_t)x6 * x13) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + ((uint128_t)x13 * x6))))))));
+ uint128_t x22 = (((uint128_t)x2 * x2) + (0x19 * ((0x2 * ((uint128_t)x4 * x13)) + ((0x2 * ((uint128_t)x6 * x14)) + ((0x2 * ((uint128_t)x8 * x12)) + ((0x2 * ((uint128_t)x10 * x10)) + ((0x2 * ((uint128_t)x12 * x8)) + ((0x2 * ((uint128_t)x14 * x6)) + (0x2 * ((uint128_t)x13 * x4))))))))));
uint64_t x23 = (uint64_t) (x22 >> 0x2f);
- uint64_t x24 = (uint64_t) x22 & 0x7fffffffffff;
- uint128_t x25 = x23 + x21;
+ uint64_t x24 = ((uint64_t)x22 & 0x7fffffffffff);
+ uint128_t x25 = (x23 + x21);
uint64_t x26 = (uint64_t) (x25 >> 0x2e);
- uint64_t x27 = (uint64_t) x25 & 0x3fffffffffff;
- uint128_t x28 = x26 + x20;
+ uint64_t x27 = ((uint64_t)x25 & 0x3fffffffffff);
+ uint128_t x28 = (x26 + x20);
uint64_t x29 = (uint64_t) (x28 >> 0x2e);
- uint64_t x30 = (uint64_t) x28 & 0x3fffffffffff;
- uint128_t x31 = x29 + x19;
+ uint64_t x30 = ((uint64_t)x28 & 0x3fffffffffff);
+ uint128_t x31 = (x29 + x19);
uint64_t x32 = (uint64_t) (x31 >> 0x2e);
- uint64_t x33 = (uint64_t) x31 & 0x3fffffffffff;
- uint128_t x34 = x32 + x18;
+ uint64_t x33 = ((uint64_t)x31 & 0x3fffffffffff);
+ uint128_t x34 = (x32 + x18);
uint64_t x35 = (uint64_t) (x34 >> 0x2e);
- uint64_t x36 = (uint64_t) x34 & 0x3fffffffffff;
- uint128_t x37 = x35 + x17;
+ uint64_t x36 = ((uint64_t)x34 & 0x3fffffffffff);
+ uint128_t x37 = (x35 + x17);
uint64_t x38 = (uint64_t) (x37 >> 0x2e);
- uint64_t x39 = (uint64_t) x37 & 0x3fffffffffff;
- uint128_t x40 = x38 + x16;
+ uint64_t x39 = ((uint64_t)x37 & 0x3fffffffffff);
+ uint128_t x40 = (x38 + x16);
uint64_t x41 = (uint64_t) (x40 >> 0x2e);
- uint64_t x42 = (uint64_t) x40 & 0x3fffffffffff;
- uint128_t x43 = x41 + x15;
+ uint64_t x42 = ((uint64_t)x40 & 0x3fffffffffff);
+ uint128_t x43 = (x41 + x15);
uint64_t x44 = (uint64_t) (x43 >> 0x2e);
- uint64_t x45 = (uint64_t) x43 & 0x3fffffffffff;
- uint64_t x46 = x24 + 0x19 * x44;
- uint64_t x47 = x46 >> 0x2f;
- uint64_t x48 = x46 & 0x7fffffffffff;
- uint64_t x49 = x47 + x27;
- uint64_t x50 = x49 >> 0x2e;
- uint64_t x51 = x49 & 0x3fffffffffff;
- return (Return x45, Return x42, Return x39, Return x36, Return x33, x50 + x30, Return x51, Return x48))
+ uint64_t x45 = ((uint64_t)x43 & 0x3fffffffffff);
+ uint64_t x46 = (x24 + (0x19 * x44));
+ uint64_t x47 = (x46 >> 0x2f);
+ uint64_t x48 = (x46 & 0x7fffffffffff);
+ uint64_t x49 = (x47 + x27);
+ uint64_t x50 = (x49 >> 0x2e);
+ uint64_t x51 = (x49 & 0x3fffffffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e369m25/freezeDisplay.log b/src/Specific/solinas64_2e369m25/freezeDisplay.log
index f3427063b..52a4c8379 100644
--- a/src/Specific/solinas64_2e369m25/freezeDisplay.log
+++ b/src/Specific/solinas64_2e369m25/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0x3fffffffffff);
uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0x3fffffffffff);
uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
- uint64_t x40 = x39 & 0x7fffffffffe7;
+ uint64_t x40 = (x39 & 0x7fffffffffe7);
uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
- uint64_t x44 = x39 & 0x3fffffffffff;
+ uint64_t x44 = (x39 & 0x3fffffffffff);
uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint64_t x48 = x39 & 0x3fffffffffff;
+ uint64_t x48 = (x39 & 0x3fffffffffff);
uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint64_t x52 = x39 & 0x3fffffffffff;
+ uint64_t x52 = (x39 & 0x3fffffffffff);
uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint64_t x56 = x39 & 0x3fffffffffff;
+ uint64_t x56 = (x39 & 0x3fffffffffff);
uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint64_t x60 = x39 & 0x3fffffffffff;
+ uint64_t x60 = (x39 & 0x3fffffffffff);
uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint64_t x64 = x39 & 0x3fffffffffff;
+ uint64_t x64 = (x39 & 0x3fffffffffff);
uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint64_t x68 = x39 & 0x3fffffffffff;
+ uint64_t x68 = (x39 & 0x3fffffffffff);
uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/freezeDisplay.log b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/freezeDisplay.log
index 4c8be970a..394835316 100644
--- a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/freezeDisplay.log
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/freezeDisplay.log
@@ -11,20 +11,20 @@ Interp-η
uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffffffffff);
uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xffffffffffff);
uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
- uint64_t x40 = x39 & 0xffffffff;
+ uint64_t x40 = (x39 & 0xffffffff);
uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
uint64_t x45, uint8_t x46 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, 0x0);
- uint64_t x47 = x39 & 0xfffeffffffff;
+ uint64_t x47 = (x39 & 0xfffeffffffff);
uint64_t x49, uint8_t x50 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x46, Return x22, Return x47);
- uint64_t x51 = x39 & 0xffffffffffff;
+ uint64_t x51 = (x39 & 0xffffffffffff);
uint64_t x53, uint8_t x54 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x25, Return x51);
- uint64_t x55 = x39 & 0xffffffffffff;
+ uint64_t x55 = (x39 & 0xffffffffffff);
uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x54, Return x28, Return x55);
- uint64_t x59 = x39 & 0xffffffffffff;
+ uint64_t x59 = (x39 & 0xffffffffffff);
uint64_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x31, Return x59);
- uint64_t x63 = x39 & 0xffffffffffff;
+ uint64_t x63 = (x39 & 0xffffffffffff);
uint64_t x65, uint8_t x66 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x62, Return x34, Return x63);
- uint64_t x67 = x39 & 0xffffffffffff;
+ uint64_t x67 = (x39 & 0xffffffffffff);
uint64_t x69, uint8_t _ = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x66, Return x37, Return x67);
(Return x69, Return x65, Return x61, Return x57, Return x53, Return x49, Return x45, Return x42))
x
diff --git a/src/Specific/solinas64_2e384m317/femulDisplay.log b/src/Specific/solinas64_2e384m317/femulDisplay.log
index 4730fb88a..a9357bb1e 100644
--- a/src/Specific/solinas64_2e384m317/femulDisplay.log
+++ b/src/Specific/solinas64_2e384m317/femulDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- uint128_t x32 = (uint128_t) x5 * x30 + ((uint128_t) x7 * x31 + ((uint128_t) x9 * x29 + ((uint128_t) x11 * x27 + ((uint128_t) x13 * x25 + ((uint128_t) x15 * x23 + ((uint128_t) x17 * x21 + (uint128_t) x16 * x19))))));
- uint128_t x33 = (uint128_t) x5 * x31 + ((uint128_t) x7 * x29 + ((uint128_t) x9 * x27 + ((uint128_t) x11 * x25 + ((uint128_t) x13 * x23 + ((uint128_t) x15 * x21 + (uint128_t) x17 * x19))))) + 0x13d * ((uint128_t) x16 * x30);
- uint128_t x34 = (uint128_t) x5 * x29 + ((uint128_t) x7 * x27 + ((uint128_t) x9 * x25 + ((uint128_t) x11 * x23 + ((uint128_t) x13 * x21 + (uint128_t) x15 * x19)))) + 0x13d * ((uint128_t) x17 * x30 + (uint128_t) x16 * x31);
- uint128_t x35 = (uint128_t) x5 * x27 + ((uint128_t) x7 * x25 + ((uint128_t) x9 * x23 + ((uint128_t) x11 * x21 + (uint128_t) x13 * x19))) + 0x13d * ((uint128_t) x15 * x30 + ((uint128_t) x17 * x31 + (uint128_t) x16 * x29));
- uint128_t x36 = (uint128_t) x5 * x25 + ((uint128_t) x7 * x23 + ((uint128_t) x9 * x21 + (uint128_t) x11 * x19)) + 0x13d * ((uint128_t) x13 * x30 + ((uint128_t) x15 * x31 + ((uint128_t) x17 * x29 + (uint128_t) x16 * x27)));
- uint128_t x37 = (uint128_t) x5 * x23 + ((uint128_t) x7 * x21 + (uint128_t) x9 * x19) + 0x13d * ((uint128_t) x11 * x30 + ((uint128_t) x13 * x31 + ((uint128_t) x15 * x29 + ((uint128_t) x17 * x27 + (uint128_t) x16 * x25))));
- uint128_t x38 = (uint128_t) x5 * x21 + (uint128_t) x7 * x19 + 0x13d * ((uint128_t) x9 * x30 + ((uint128_t) x11 * x31 + ((uint128_t) x13 * x29 + ((uint128_t) x15 * x27 + ((uint128_t) x17 * x25 + (uint128_t) x16 * x23)))));
- uint128_t x39 = (uint128_t) x5 * x19 + 0x13d * ((uint128_t) x7 * x30 + ((uint128_t) x9 * x31 + ((uint128_t) x11 * x29 + ((uint128_t) x13 * x27 + ((uint128_t) x15 * x25 + ((uint128_t) x17 * x23 + (uint128_t) x16 * x21))))));
+ uint128_t x32 = (((uint128_t)x5 * x30) + (((uint128_t)x7 * x31) + (((uint128_t)x9 * x29) + (((uint128_t)x11 * x27) + (((uint128_t)x13 * x25) + (((uint128_t)x15 * x23) + (((uint128_t)x17 * x21) + ((uint128_t)x16 * x19))))))));
+ uint128_t x33 = ((((uint128_t)x5 * x31) + (((uint128_t)x7 * x29) + (((uint128_t)x9 * x27) + (((uint128_t)x11 * x25) + (((uint128_t)x13 * x23) + (((uint128_t)x15 * x21) + ((uint128_t)x17 * x19))))))) + (0x13d * ((uint128_t)x16 * x30)));
+ uint128_t x34 = ((((uint128_t)x5 * x29) + (((uint128_t)x7 * x27) + (((uint128_t)x9 * x25) + (((uint128_t)x11 * x23) + (((uint128_t)x13 * x21) + ((uint128_t)x15 * x19)))))) + (0x13d * (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))));
+ uint128_t x35 = ((((uint128_t)x5 * x27) + (((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + (((uint128_t)x11 * x21) + ((uint128_t)x13 * x19))))) + (0x13d * (((uint128_t)x15 * x30) + (((uint128_t)x17 * x31) + ((uint128_t)x16 * x29)))));
+ uint128_t x36 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))) + (0x13d * (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27))))));
+ uint128_t x37 = ((((uint128_t)x5 * x23) + (((uint128_t)x7 * x21) + ((uint128_t)x9 * x19))) + (0x13d * (((uint128_t)x11 * x30) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + (((uint128_t)x17 * x27) + ((uint128_t)x16 * x25)))))));
+ uint128_t x38 = ((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (0x13d * (((uint128_t)x9 * x30) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + ((uint128_t)x16 * x23))))))));
+ uint128_t x39 = (((uint128_t)x5 * x19) + (0x13d * (((uint128_t)x7 * x30) + (((uint128_t)x9 * x31) + (((uint128_t)x11 * x29) + (((uint128_t)x13 * x27) + (((uint128_t)x15 * x25) + (((uint128_t)x17 * x23) + ((uint128_t)x16 * x21)))))))));
uint64_t x40 = (uint64_t) (x39 >> 0x30);
- uint64_t x41 = (uint64_t) x39 & 0xffffffffffff;
- uint128_t x42 = x40 + x38;
+ uint64_t x41 = ((uint64_t)x39 & 0xffffffffffff);
+ uint128_t x42 = (x40 + x38);
uint64_t x43 = (uint64_t) (x42 >> 0x30);
- uint64_t x44 = (uint64_t) x42 & 0xffffffffffff;
- uint128_t x45 = x43 + x37;
+ uint64_t x44 = ((uint64_t)x42 & 0xffffffffffff);
+ uint128_t x45 = (x43 + x37);
uint64_t x46 = (uint64_t) (x45 >> 0x30);
- uint64_t x47 = (uint64_t) x45 & 0xffffffffffff;
- uint128_t x48 = x46 + x36;
+ uint64_t x47 = ((uint64_t)x45 & 0xffffffffffff);
+ uint128_t x48 = (x46 + x36);
uint64_t x49 = (uint64_t) (x48 >> 0x30);
- uint64_t x50 = (uint64_t) x48 & 0xffffffffffff;
- uint128_t x51 = x49 + x35;
+ uint64_t x50 = ((uint64_t)x48 & 0xffffffffffff);
+ uint128_t x51 = (x49 + x35);
uint64_t x52 = (uint64_t) (x51 >> 0x30);
- uint64_t x53 = (uint64_t) x51 & 0xffffffffffff;
- uint128_t x54 = x52 + x34;
+ uint64_t x53 = ((uint64_t)x51 & 0xffffffffffff);
+ uint128_t x54 = (x52 + x34);
uint64_t x55 = (uint64_t) (x54 >> 0x30);
- uint64_t x56 = (uint64_t) x54 & 0xffffffffffff;
- uint128_t x57 = x55 + x33;
+ uint64_t x56 = ((uint64_t)x54 & 0xffffffffffff);
+ uint128_t x57 = (x55 + x33);
uint64_t x58 = (uint64_t) (x57 >> 0x30);
- uint64_t x59 = (uint64_t) x57 & 0xffffffffffff;
- uint128_t x60 = x58 + x32;
+ uint64_t x59 = ((uint64_t)x57 & 0xffffffffffff);
+ uint128_t x60 = (x58 + x32);
uint64_t x61 = (uint64_t) (x60 >> 0x30);
- uint64_t x62 = (uint64_t) x60 & 0xffffffffffff;
- uint64_t x63 = x41 + 0x13d * x61;
- uint64_t x64 = x63 >> 0x30;
- uint64_t x65 = x63 & 0xffffffffffff;
- uint64_t x66 = x64 + x44;
- uint64_t x67 = x66 >> 0x30;
- uint64_t x68 = x66 & 0xffffffffffff;
- return (Return x62, Return x59, Return x56, Return x53, Return x50, x67 + x47, Return x68, Return x65))
+ uint64_t x62 = ((uint64_t)x60 & 0xffffffffffff);
+ uint64_t x63 = (x41 + (0x13d * x61));
+ uint64_t x64 = (x63 >> 0x30);
+ uint64_t x65 = (x63 & 0xffffffffffff);
+ uint64_t x66 = (x64 + x44);
+ uint64_t x67 = (x66 >> 0x30);
+ uint64_t x68 = (x66 & 0xffffffffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(x, x0)%core
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m317/fesquareDisplay.log b/src/Specific/solinas64_2e384m317/fesquareDisplay.log
index fa5c40707..25c7fd4d2 100644
--- a/src/Specific/solinas64_2e384m317/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e384m317/fesquareDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x15 = (uint128_t) x2 * x13 + ((uint128_t) x4 * x14 + ((uint128_t) x6 * x12 + ((uint128_t) x8 * x10 + ((uint128_t) x10 * x8 + ((uint128_t) x12 * x6 + ((uint128_t) x14 * x4 + (uint128_t) x13 * x2))))));
- uint128_t x16 = (uint128_t) x2 * x14 + ((uint128_t) x4 * x12 + ((uint128_t) x6 * x10 + ((uint128_t) x8 * x8 + ((uint128_t) x10 * x6 + ((uint128_t) x12 * x4 + (uint128_t) x14 * x2))))) + 0x13d * ((uint128_t) x13 * x13);
- uint128_t x17 = (uint128_t) x2 * x12 + ((uint128_t) x4 * x10 + ((uint128_t) x6 * x8 + ((uint128_t) x8 * x6 + ((uint128_t) x10 * x4 + (uint128_t) x12 * x2)))) + 0x13d * ((uint128_t) x14 * x13 + (uint128_t) x13 * x14);
- uint128_t x18 = (uint128_t) x2 * x10 + ((uint128_t) x4 * x8 + ((uint128_t) x6 * x6 + ((uint128_t) x8 * x4 + (uint128_t) x10 * x2))) + 0x13d * ((uint128_t) x12 * x13 + ((uint128_t) x14 * x14 + (uint128_t) x13 * x12));
- uint128_t x19 = (uint128_t) x2 * x8 + ((uint128_t) x4 * x6 + ((uint128_t) x6 * x4 + (uint128_t) x8 * x2)) + 0x13d * ((uint128_t) x10 * x13 + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + (uint128_t) x13 * x10)));
- uint128_t x20 = (uint128_t) x2 * x6 + ((uint128_t) x4 * x4 + (uint128_t) x6 * x2) + 0x13d * ((uint128_t) x8 * x13 + ((uint128_t) x10 * x14 + ((uint128_t) x12 * x12 + ((uint128_t) x14 * x10 + (uint128_t) x13 * x8))));
- uint128_t x21 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x13d * ((uint128_t) x6 * x13 + ((uint128_t) x8 * x14 + ((uint128_t) x10 * x12 + ((uint128_t) x12 * x10 + ((uint128_t) x14 * x8 + (uint128_t) x13 * x6)))));
- uint128_t x22 = (uint128_t) x2 * x2 + 0x13d * ((uint128_t) x4 * x13 + ((uint128_t) x6 * x14 + ((uint128_t) x8 * x12 + ((uint128_t) x10 * x10 + ((uint128_t) x12 * x8 + ((uint128_t) x14 * x6 + (uint128_t) x13 * x4))))));
+ uint128_t x15 = (((uint128_t)x2 * x13) + (((uint128_t)x4 * x14) + (((uint128_t)x6 * x12) + (((uint128_t)x8 * x10) + (((uint128_t)x10 * x8) + (((uint128_t)x12 * x6) + (((uint128_t)x14 * x4) + ((uint128_t)x13 * x2))))))));
+ uint128_t x16 = ((((uint128_t)x2 * x14) + (((uint128_t)x4 * x12) + (((uint128_t)x6 * x10) + (((uint128_t)x8 * x8) + (((uint128_t)x10 * x6) + (((uint128_t)x12 * x4) + ((uint128_t)x14 * x2))))))) + (0x13d * ((uint128_t)x13 * x13)));
+ uint128_t x17 = ((((uint128_t)x2 * x12) + (((uint128_t)x4 * x10) + (((uint128_t)x6 * x8) + (((uint128_t)x8 * x6) + (((uint128_t)x10 * x4) + ((uint128_t)x12 * x2)))))) + (0x13d * (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))));
+ uint128_t x18 = ((((uint128_t)x2 * x10) + (((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + (((uint128_t)x8 * x4) + ((uint128_t)x10 * x2))))) + (0x13d * (((uint128_t)x12 * x13) + (((uint128_t)x14 * x14) + ((uint128_t)x13 * x12)))));
+ uint128_t x19 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (0x13d * (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10))))));
+ uint128_t x20 = ((((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))) + (0x13d * (((uint128_t)x8 * x13) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + (((uint128_t)x14 * x10) + ((uint128_t)x13 * x8)))))));
+ uint128_t x21 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x13d * (((uint128_t)x6 * x13) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + ((uint128_t)x13 * x6))))))));
+ uint128_t x22 = (((uint128_t)x2 * x2) + (0x13d * (((uint128_t)x4 * x13) + (((uint128_t)x6 * x14) + (((uint128_t)x8 * x12) + (((uint128_t)x10 * x10) + (((uint128_t)x12 * x8) + (((uint128_t)x14 * x6) + ((uint128_t)x13 * x4)))))))));
uint64_t x23 = (uint64_t) (x22 >> 0x30);
- uint64_t x24 = (uint64_t) x22 & 0xffffffffffff;
- uint128_t x25 = x23 + x21;
+ uint64_t x24 = ((uint64_t)x22 & 0xffffffffffff);
+ uint128_t x25 = (x23 + x21);
uint64_t x26 = (uint64_t) (x25 >> 0x30);
- uint64_t x27 = (uint64_t) x25 & 0xffffffffffff;
- uint128_t x28 = x26 + x20;
+ uint64_t x27 = ((uint64_t)x25 & 0xffffffffffff);
+ uint128_t x28 = (x26 + x20);
uint64_t x29 = (uint64_t) (x28 >> 0x30);
- uint64_t x30 = (uint64_t) x28 & 0xffffffffffff;
- uint128_t x31 = x29 + x19;
+ uint64_t x30 = ((uint64_t)x28 & 0xffffffffffff);
+ uint128_t x31 = (x29 + x19);
uint64_t x32 = (uint64_t) (x31 >> 0x30);
- uint64_t x33 = (uint64_t) x31 & 0xffffffffffff;
- uint128_t x34 = x32 + x18;
+ uint64_t x33 = ((uint64_t)x31 & 0xffffffffffff);
+ uint128_t x34 = (x32 + x18);
uint64_t x35 = (uint64_t) (x34 >> 0x30);
- uint64_t x36 = (uint64_t) x34 & 0xffffffffffff;
- uint128_t x37 = x35 + x17;
+ uint64_t x36 = ((uint64_t)x34 & 0xffffffffffff);
+ uint128_t x37 = (x35 + x17);
uint64_t x38 = (uint64_t) (x37 >> 0x30);
- uint64_t x39 = (uint64_t) x37 & 0xffffffffffff;
- uint128_t x40 = x38 + x16;
+ uint64_t x39 = ((uint64_t)x37 & 0xffffffffffff);
+ uint128_t x40 = (x38 + x16);
uint64_t x41 = (uint64_t) (x40 >> 0x30);
- uint64_t x42 = (uint64_t) x40 & 0xffffffffffff;
- uint128_t x43 = x41 + x15;
+ uint64_t x42 = ((uint64_t)x40 & 0xffffffffffff);
+ uint128_t x43 = (x41 + x15);
uint64_t x44 = (uint64_t) (x43 >> 0x30);
- uint64_t x45 = (uint64_t) x43 & 0xffffffffffff;
- uint64_t x46 = x24 + 0x13d * x44;
- uint64_t x47 = x46 >> 0x30;
- uint64_t x48 = x46 & 0xffffffffffff;
- uint64_t x49 = x47 + x27;
- uint64_t x50 = x49 >> 0x30;
- uint64_t x51 = x49 & 0xffffffffffff;
- return (Return x45, Return x42, Return x39, Return x36, Return x33, x50 + x30, Return x51, Return x48))
+ uint64_t x45 = ((uint64_t)x43 & 0xffffffffffff);
+ uint64_t x46 = (x24 + (0x13d * x44));
+ uint64_t x47 = (x46 >> 0x30);
+ uint64_t x48 = (x46 & 0xffffffffffff);
+ uint64_t x49 = (x47 + x27);
+ uint64_t x50 = (x49 >> 0x30);
+ uint64_t x51 = (x49 & 0xffffffffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m317/freezeDisplay.log b/src/Specific/solinas64_2e384m317/freezeDisplay.log
index d9651a88f..9c49548af 100644
--- a/src/Specific/solinas64_2e384m317/freezeDisplay.log
+++ b/src/Specific/solinas64_2e384m317/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffffffffff);
uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xffffffffffff);
uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
- uint64_t x40 = x39 & 0xfffffffffec3;
+ uint64_t x40 = (x39 & 0xfffffffffec3);
uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
- uint64_t x44 = x39 & 0xffffffffffff;
+ uint64_t x44 = (x39 & 0xffffffffffff);
uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint64_t x48 = x39 & 0xffffffffffff;
+ uint64_t x48 = (x39 & 0xffffffffffff);
uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint64_t x52 = x39 & 0xffffffffffff;
+ uint64_t x52 = (x39 & 0xffffffffffff);
uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint64_t x56 = x39 & 0xffffffffffff;
+ uint64_t x56 = (x39 & 0xffffffffffff);
uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint64_t x60 = x39 & 0xffffffffffff;
+ uint64_t x60 = (x39 & 0xffffffffffff);
uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint64_t x64 = x39 & 0xffffffffffff;
+ uint64_t x64 = (x39 & 0xffffffffffff);
uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint64_t x68 = x39 & 0xffffffffffff;
+ uint64_t x68 = (x39 & 0xffffffffffff);
uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas64_2e384m5x2e368m1/freezeDisplay.log b/src/Specific/solinas64_2e384m5x2e368m1/freezeDisplay.log
new file mode 100644
index 000000000..f4a0013b4
--- /dev/null
+++ b/src/Specific/solinas64_2e384m5x2e368m1/freezeDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0xffffffffffff);
+ uint64_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x17, Return x4, 0xffffffffffff);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x6, 0xffffffffffff);
+ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x8, 0xffffffffffff);
+ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x10, 0xffffffffffff);
+ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x12, 0xffffffffffff);
+ uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffffffffff);
+ uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xfffaffffffff);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffff);
+ uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint64_t x44 = (x39 & 0xffffffffffff);
+ uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint64_t x48 = (x39 & 0xffffffffffff);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint64_t x52 = (x39 & 0xffffffffffff);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint64_t x56 = (x39 & 0xffffffffffff);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint64_t x60 = (x39 & 0xffffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint64_t x64 = (x39 & 0xffffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint64_t x68 = (x39 & 0xfffaffffffff);
+ uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m79x2e376m1/freezeDisplay.log b/src/Specific/solinas64_2e384m79x2e376m1/freezeDisplay.log
new file mode 100644
index 000000000..f5a3262f3
--- /dev/null
+++ b/src/Specific/solinas64_2e384m79x2e376m1/freezeDisplay.log
@@ -0,0 +1,32 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0xffffffffffff);
+ uint64_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x17, Return x4, 0xffffffffffff);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x6, 0xffffffffffff);
+ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x8, 0xffffffffffff);
+ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x10, 0xffffffffffff);
+ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x12, 0xffffffffffff);
+ uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffffffffff);
+ uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xb0ffffffffff);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffff);
+ uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint64_t x44 = (x39 & 0xffffffffffff);
+ uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint64_t x48 = (x39 & 0xffffffffffff);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint64_t x52 = (x39 & 0xffffffffffff);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint64_t x56 = (x39 & 0xffffffffffff);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint64_t x60 = (x39 & 0xffffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint64_t x64 = (x39 & 0xffffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint64_t x68 = (x39 & 0xb0ffffffffff);
+ uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e401m31/femulDisplay.log b/src/Specific/solinas64_2e401m31/femulDisplay.log
index fb94b8cd7..f2fe04251 100644
--- a/src/Specific/solinas64_2e401m31/femulDisplay.log
+++ b/src/Specific/solinas64_2e401m31/femulDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- uint128_t x32 = (uint128_t) x5 * x30 + (0x2 * ((uint128_t) x7 * x31) + (0x2 * ((uint128_t) x9 * x29) + (0x2 * ((uint128_t) x11 * x27) + (0x2 * ((uint128_t) x13 * x25) + (0x2 * ((uint128_t) x15 * x23) + (0x2 * ((uint128_t) x17 * x21) + (uint128_t) x16 * x19))))));
- uint128_t x33 = (uint128_t) x5 * x31 + (0x2 * ((uint128_t) x7 * x29) + (0x2 * ((uint128_t) x9 * x27) + (0x2 * ((uint128_t) x11 * x25) + (0x2 * ((uint128_t) x13 * x23) + (0x2 * ((uint128_t) x15 * x21) + (uint128_t) x17 * x19))))) + 0x1f * ((uint128_t) x16 * x30);
- uint128_t x34 = (uint128_t) x5 * x29 + (0x2 * ((uint128_t) x7 * x27) + (0x2 * ((uint128_t) x9 * x25) + (0x2 * ((uint128_t) x11 * x23) + (0x2 * ((uint128_t) x13 * x21) + (uint128_t) x15 * x19)))) + 0x1f * ((uint128_t) x17 * x30 + (uint128_t) x16 * x31);
- uint128_t x35 = (uint128_t) x5 * x27 + (0x2 * ((uint128_t) x7 * x25) + (0x2 * ((uint128_t) x9 * x23) + (0x2 * ((uint128_t) x11 * x21) + (uint128_t) x13 * x19))) + 0x1f * ((uint128_t) x15 * x30 + ((uint128_t) x17 * x31 + (uint128_t) x16 * x29));
- uint128_t x36 = (uint128_t) x5 * x25 + (0x2 * ((uint128_t) x7 * x23) + (0x2 * ((uint128_t) x9 * x21) + (uint128_t) x11 * x19)) + 0x1f * ((uint128_t) x13 * x30 + ((uint128_t) x15 * x31 + ((uint128_t) x17 * x29 + (uint128_t) x16 * x27)));
- uint128_t x37 = (uint128_t) x5 * x23 + (0x2 * ((uint128_t) x7 * x21) + (uint128_t) x9 * x19) + 0x1f * ((uint128_t) x11 * x30 + ((uint128_t) x13 * x31 + ((uint128_t) x15 * x29 + ((uint128_t) x17 * x27 + (uint128_t) x16 * x25))));
- uint128_t x38 = (uint128_t) x5 * x21 + (uint128_t) x7 * x19 + 0x1f * ((uint128_t) x9 * x30 + ((uint128_t) x11 * x31 + ((uint128_t) x13 * x29 + ((uint128_t) x15 * x27 + ((uint128_t) x17 * x25 + (uint128_t) x16 * x23)))));
- uint128_t x39 = (uint128_t) x5 * x19 + 0x1f * (0x2 * ((uint128_t) x7 * x30) + (0x2 * ((uint128_t) x9 * x31) + (0x2 * ((uint128_t) x11 * x29) + (0x2 * ((uint128_t) x13 * x27) + (0x2 * ((uint128_t) x15 * x25) + (0x2 * ((uint128_t) x17 * x23) + 0x2 * ((uint128_t) x16 * x21)))))));
+ uint128_t x32 = (((uint128_t)x5 * x30) + ((0x2 * ((uint128_t)x7 * x31)) + ((0x2 * ((uint128_t)x9 * x29)) + ((0x2 * ((uint128_t)x11 * x27)) + ((0x2 * ((uint128_t)x13 * x25)) + ((0x2 * ((uint128_t)x15 * x23)) + ((0x2 * ((uint128_t)x17 * x21)) + ((uint128_t)x16 * x19))))))));
+ uint128_t x33 = ((((uint128_t)x5 * x31) + ((0x2 * ((uint128_t)x7 * x29)) + ((0x2 * ((uint128_t)x9 * x27)) + ((0x2 * ((uint128_t)x11 * x25)) + ((0x2 * ((uint128_t)x13 * x23)) + ((0x2 * ((uint128_t)x15 * x21)) + ((uint128_t)x17 * x19))))))) + (0x1f * ((uint128_t)x16 * x30)));
+ uint128_t x34 = ((((uint128_t)x5 * x29) + ((0x2 * ((uint128_t)x7 * x27)) + ((0x2 * ((uint128_t)x9 * x25)) + ((0x2 * ((uint128_t)x11 * x23)) + ((0x2 * ((uint128_t)x13 * x21)) + ((uint128_t)x15 * x19)))))) + (0x1f * (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))));
+ uint128_t x35 = ((((uint128_t)x5 * x27) + ((0x2 * ((uint128_t)x7 * x25)) + ((0x2 * ((uint128_t)x9 * x23)) + ((0x2 * ((uint128_t)x11 * x21)) + ((uint128_t)x13 * x19))))) + (0x1f * (((uint128_t)x15 * x30) + (((uint128_t)x17 * x31) + ((uint128_t)x16 * x29)))));
+ uint128_t x36 = ((((uint128_t)x5 * x25) + ((0x2 * ((uint128_t)x7 * x23)) + ((0x2 * ((uint128_t)x9 * x21)) + ((uint128_t)x11 * x19)))) + (0x1f * (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27))))));
+ uint128_t x37 = ((((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((uint128_t)x9 * x19))) + (0x1f * (((uint128_t)x11 * x30) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + (((uint128_t)x17 * x27) + ((uint128_t)x16 * x25)))))));
+ uint128_t x38 = ((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (0x1f * (((uint128_t)x9 * x30) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + ((uint128_t)x16 * x23))))))));
+ uint128_t x39 = (((uint128_t)x5 * x19) + (0x1f * ((0x2 * ((uint128_t)x7 * x30)) + ((0x2 * ((uint128_t)x9 * x31)) + ((0x2 * ((uint128_t)x11 * x29)) + ((0x2 * ((uint128_t)x13 * x27)) + ((0x2 * ((uint128_t)x15 * x25)) + ((0x2 * ((uint128_t)x17 * x23)) + (0x2 * ((uint128_t)x16 * x21))))))))));
uint64_t x40 = (uint64_t) (x39 >> 0x33);
- uint64_t x41 = (uint64_t) x39 & 0x7ffffffffffff;
- uint128_t x42 = x40 + x38;
+ uint64_t x41 = ((uint64_t)x39 & 0x7ffffffffffff);
+ uint128_t x42 = (x40 + x38);
uint64_t x43 = (uint64_t) (x42 >> 0x32);
- uint64_t x44 = (uint64_t) x42 & 0x3ffffffffffff;
- uint128_t x45 = x43 + x37;
+ uint64_t x44 = ((uint64_t)x42 & 0x3ffffffffffff);
+ uint128_t x45 = (x43 + x37);
uint64_t x46 = (uint64_t) (x45 >> 0x32);
- uint64_t x47 = (uint64_t) x45 & 0x3ffffffffffff;
- uint128_t x48 = x46 + x36;
+ uint64_t x47 = ((uint64_t)x45 & 0x3ffffffffffff);
+ uint128_t x48 = (x46 + x36);
uint64_t x49 = (uint64_t) (x48 >> 0x32);
- uint64_t x50 = (uint64_t) x48 & 0x3ffffffffffff;
- uint128_t x51 = x49 + x35;
+ uint64_t x50 = ((uint64_t)x48 & 0x3ffffffffffff);
+ uint128_t x51 = (x49 + x35);
uint64_t x52 = (uint64_t) (x51 >> 0x32);
- uint64_t x53 = (uint64_t) x51 & 0x3ffffffffffff;
- uint128_t x54 = x52 + x34;
+ uint64_t x53 = ((uint64_t)x51 & 0x3ffffffffffff);
+ uint128_t x54 = (x52 + x34);
uint64_t x55 = (uint64_t) (x54 >> 0x32);
- uint64_t x56 = (uint64_t) x54 & 0x3ffffffffffff;
- uint128_t x57 = x55 + x33;
+ uint64_t x56 = ((uint64_t)x54 & 0x3ffffffffffff);
+ uint128_t x57 = (x55 + x33);
uint64_t x58 = (uint64_t) (x57 >> 0x32);
- uint64_t x59 = (uint64_t) x57 & 0x3ffffffffffff;
- uint128_t x60 = x58 + x32;
+ uint64_t x59 = ((uint64_t)x57 & 0x3ffffffffffff);
+ uint128_t x60 = (x58 + x32);
uint64_t x61 = (uint64_t) (x60 >> 0x32);
- uint64_t x62 = (uint64_t) x60 & 0x3ffffffffffff;
- uint64_t x63 = x41 + 0x1f * x61;
- uint64_t x64 = x63 >> 0x33;
- uint64_t x65 = x63 & 0x7ffffffffffff;
- uint64_t x66 = x64 + x44;
- uint64_t x67 = x66 >> 0x32;
- uint64_t x68 = x66 & 0x3ffffffffffff;
- return (Return x62, Return x59, Return x56, Return x53, Return x50, x67 + x47, Return x68, Return x65))
+ uint64_t x62 = ((uint64_t)x60 & 0x3ffffffffffff);
+ uint64_t x63 = (x41 + (0x1f * x61));
+ uint64_t x64 = (x63 >> 0x33);
+ uint64_t x65 = (x63 & 0x7ffffffffffff);
+ uint64_t x66 = (x64 + x44);
+ uint64_t x67 = (x66 >> 0x32);
+ uint64_t x68 = (x66 & 0x3ffffffffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(x, x0)%core
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e401m31/fesquareDisplay.log b/src/Specific/solinas64_2e401m31/fesquareDisplay.log
index a569b94e9..60c16004d 100644
--- a/src/Specific/solinas64_2e401m31/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e401m31/fesquareDisplay.log
@@ -2,43 +2,43 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x15 = (uint128_t) x2 * x13 + (0x2 * ((uint128_t) x4 * x14) + (0x2 * ((uint128_t) x6 * x12) + (0x2 * ((uint128_t) x8 * x10) + (0x2 * ((uint128_t) x10 * x8) + (0x2 * ((uint128_t) x12 * x6) + (0x2 * ((uint128_t) x14 * x4) + (uint128_t) x13 * x2))))));
- uint128_t x16 = (uint128_t) x2 * x14 + (0x2 * ((uint128_t) x4 * x12) + (0x2 * ((uint128_t) x6 * x10) + (0x2 * ((uint128_t) x8 * x8) + (0x2 * ((uint128_t) x10 * x6) + (0x2 * ((uint128_t) x12 * x4) + (uint128_t) x14 * x2))))) + 0x1f * ((uint128_t) x13 * x13);
- uint128_t x17 = (uint128_t) x2 * x12 + (0x2 * ((uint128_t) x4 * x10) + (0x2 * ((uint128_t) x6 * x8) + (0x2 * ((uint128_t) x8 * x6) + (0x2 * ((uint128_t) x10 * x4) + (uint128_t) x12 * x2)))) + 0x1f * ((uint128_t) x14 * x13 + (uint128_t) x13 * x14);
- uint128_t x18 = (uint128_t) x2 * x10 + (0x2 * ((uint128_t) x4 * x8) + (0x2 * ((uint128_t) x6 * x6) + (0x2 * ((uint128_t) x8 * x4) + (uint128_t) x10 * x2))) + 0x1f * ((uint128_t) x12 * x13 + ((uint128_t) x14 * x14 + (uint128_t) x13 * x12));
- uint128_t x19 = (uint128_t) x2 * x8 + (0x2 * ((uint128_t) x4 * x6) + (0x2 * ((uint128_t) x6 * x4) + (uint128_t) x8 * x2)) + 0x1f * ((uint128_t) x10 * x13 + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + (uint128_t) x13 * x10)));
- uint128_t x20 = (uint128_t) x2 * x6 + (0x2 * ((uint128_t) x4 * x4) + (uint128_t) x6 * x2) + 0x1f * ((uint128_t) x8 * x13 + ((uint128_t) x10 * x14 + ((uint128_t) x12 * x12 + ((uint128_t) x14 * x10 + (uint128_t) x13 * x8))));
- uint128_t x21 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x1f * ((uint128_t) x6 * x13 + ((uint128_t) x8 * x14 + ((uint128_t) x10 * x12 + ((uint128_t) x12 * x10 + ((uint128_t) x14 * x8 + (uint128_t) x13 * x6)))));
- uint128_t x22 = (uint128_t) x2 * x2 + 0x1f * (0x2 * ((uint128_t) x4 * x13) + (0x2 * ((uint128_t) x6 * x14) + (0x2 * ((uint128_t) x8 * x12) + (0x2 * ((uint128_t) x10 * x10) + (0x2 * ((uint128_t) x12 * x8) + (0x2 * ((uint128_t) x14 * x6) + 0x2 * ((uint128_t) x13 * x4)))))));
+ uint128_t x15 = (((uint128_t)x2 * x13) + ((0x2 * ((uint128_t)x4 * x14)) + ((0x2 * ((uint128_t)x6 * x12)) + ((0x2 * ((uint128_t)x8 * x10)) + ((0x2 * ((uint128_t)x10 * x8)) + ((0x2 * ((uint128_t)x12 * x6)) + ((0x2 * ((uint128_t)x14 * x4)) + ((uint128_t)x13 * x2))))))));
+ uint128_t x16 = ((((uint128_t)x2 * x14) + ((0x2 * ((uint128_t)x4 * x12)) + ((0x2 * ((uint128_t)x6 * x10)) + ((0x2 * ((uint128_t)x8 * x8)) + ((0x2 * ((uint128_t)x10 * x6)) + ((0x2 * ((uint128_t)x12 * x4)) + ((uint128_t)x14 * x2))))))) + (0x1f * ((uint128_t)x13 * x13)));
+ uint128_t x17 = ((((uint128_t)x2 * x12) + ((0x2 * ((uint128_t)x4 * x10)) + ((0x2 * ((uint128_t)x6 * x8)) + ((0x2 * ((uint128_t)x8 * x6)) + ((0x2 * ((uint128_t)x10 * x4)) + ((uint128_t)x12 * x2)))))) + (0x1f * (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))));
+ uint128_t x18 = ((((uint128_t)x2 * x10) + ((0x2 * ((uint128_t)x4 * x8)) + ((0x2 * ((uint128_t)x6 * x6)) + ((0x2 * ((uint128_t)x8 * x4)) + ((uint128_t)x10 * x2))))) + (0x1f * (((uint128_t)x12 * x13) + (((uint128_t)x14 * x14) + ((uint128_t)x13 * x12)))));
+ uint128_t x19 = ((((uint128_t)x2 * x8) + ((0x2 * ((uint128_t)x4 * x6)) + ((0x2 * ((uint128_t)x6 * x4)) + ((uint128_t)x8 * x2)))) + (0x1f * (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10))))));
+ uint128_t x20 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x1f * (((uint128_t)x8 * x13) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + (((uint128_t)x14 * x10) + ((uint128_t)x13 * x8)))))));
+ uint128_t x21 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x1f * (((uint128_t)x6 * x13) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + ((uint128_t)x13 * x6))))))));
+ uint128_t x22 = (((uint128_t)x2 * x2) + (0x1f * ((0x2 * ((uint128_t)x4 * x13)) + ((0x2 * ((uint128_t)x6 * x14)) + ((0x2 * ((uint128_t)x8 * x12)) + ((0x2 * ((uint128_t)x10 * x10)) + ((0x2 * ((uint128_t)x12 * x8)) + ((0x2 * ((uint128_t)x14 * x6)) + (0x2 * ((uint128_t)x13 * x4))))))))));
uint64_t x23 = (uint64_t) (x22 >> 0x33);
- uint64_t x24 = (uint64_t) x22 & 0x7ffffffffffff;
- uint128_t x25 = x23 + x21;
+ uint64_t x24 = ((uint64_t)x22 & 0x7ffffffffffff);
+ uint128_t x25 = (x23 + x21);
uint64_t x26 = (uint64_t) (x25 >> 0x32);
- uint64_t x27 = (uint64_t) x25 & 0x3ffffffffffff;
- uint128_t x28 = x26 + x20;
+ uint64_t x27 = ((uint64_t)x25 & 0x3ffffffffffff);
+ uint128_t x28 = (x26 + x20);
uint64_t x29 = (uint64_t) (x28 >> 0x32);
- uint64_t x30 = (uint64_t) x28 & 0x3ffffffffffff;
- uint128_t x31 = x29 + x19;
+ uint64_t x30 = ((uint64_t)x28 & 0x3ffffffffffff);
+ uint128_t x31 = (x29 + x19);
uint64_t x32 = (uint64_t) (x31 >> 0x32);
- uint64_t x33 = (uint64_t) x31 & 0x3ffffffffffff;
- uint128_t x34 = x32 + x18;
+ uint64_t x33 = ((uint64_t)x31 & 0x3ffffffffffff);
+ uint128_t x34 = (x32 + x18);
uint64_t x35 = (uint64_t) (x34 >> 0x32);
- uint64_t x36 = (uint64_t) x34 & 0x3ffffffffffff;
- uint128_t x37 = x35 + x17;
+ uint64_t x36 = ((uint64_t)x34 & 0x3ffffffffffff);
+ uint128_t x37 = (x35 + x17);
uint64_t x38 = (uint64_t) (x37 >> 0x32);
- uint64_t x39 = (uint64_t) x37 & 0x3ffffffffffff;
- uint128_t x40 = x38 + x16;
+ uint64_t x39 = ((uint64_t)x37 & 0x3ffffffffffff);
+ uint128_t x40 = (x38 + x16);
uint64_t x41 = (uint64_t) (x40 >> 0x32);
- uint64_t x42 = (uint64_t) x40 & 0x3ffffffffffff;
- uint128_t x43 = x41 + x15;
+ uint64_t x42 = ((uint64_t)x40 & 0x3ffffffffffff);
+ uint128_t x43 = (x41 + x15);
uint64_t x44 = (uint64_t) (x43 >> 0x32);
- uint64_t x45 = (uint64_t) x43 & 0x3ffffffffffff;
- uint64_t x46 = x24 + 0x1f * x44;
- uint64_t x47 = x46 >> 0x33;
- uint64_t x48 = x46 & 0x7ffffffffffff;
- uint64_t x49 = x47 + x27;
- uint64_t x50 = x49 >> 0x32;
- uint64_t x51 = x49 & 0x3ffffffffffff;
- return (Return x45, Return x42, Return x39, Return x36, Return x33, x50 + x30, Return x51, Return x48))
+ uint64_t x45 = ((uint64_t)x43 & 0x3ffffffffffff);
+ uint64_t x46 = (x24 + (0x1f * x44));
+ uint64_t x47 = (x46 >> 0x33);
+ uint64_t x48 = (x46 & 0x7ffffffffffff);
+ uint64_t x49 = (x47 + x27);
+ uint64_t x50 = (x49 >> 0x32);
+ uint64_t x51 = (x49 & 0x3ffffffffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e401m31/freezeDisplay.log b/src/Specific/solinas64_2e401m31/freezeDisplay.log
index 1859158c9..d1baed290 100644
--- a/src/Specific/solinas64_2e401m31/freezeDisplay.log
+++ b/src/Specific/solinas64_2e401m31/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0x3ffffffffffff);
uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0x3ffffffffffff);
uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
- uint64_t x40 = x39 & 0x7ffffffffffe1;
+ uint64_t x40 = (x39 & 0x7ffffffffffe1);
uint64_t x42, uint8_t x43 = addcarryx_u51(0x0, x16, x40);
- uint64_t x44 = x39 & 0x3ffffffffffff;
+ uint64_t x44 = (x39 & 0x3ffffffffffff);
uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint64_t x48 = x39 & 0x3ffffffffffff;
+ uint64_t x48 = (x39 & 0x3ffffffffffff);
uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint64_t x52 = x39 & 0x3ffffffffffff;
+ uint64_t x52 = (x39 & 0x3ffffffffffff);
uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint64_t x56 = x39 & 0x3ffffffffffff;
+ uint64_t x56 = (x39 & 0x3ffffffffffff);
uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint64_t x60 = x39 & 0x3ffffffffffff;
+ uint64_t x60 = (x39 & 0x3ffffffffffff);
uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint64_t x64 = x39 & 0x3ffffffffffff;
+ uint64_t x64 = (x39 & 0x3ffffffffffff);
uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint64_t x68 = x39 & 0x3ffffffffffff;
+ uint64_t x68 = (x39 & 0x3ffffffffffff);
uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas64_2e414m17/femulDisplay.log b/src/Specific/solinas64_2e414m17/femulDisplay.log
index e217ee359..0a1c91fcd 100644
--- a/src/Specific/solinas64_2e414m17/femulDisplay.log
+++ b/src/Specific/solinas64_2e414m17/femulDisplay.log
@@ -2,47 +2,47 @@
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,
- uint128_t x36 = (uint128_t) x5 * x34 + ((uint128_t) x7 * x35 + ((uint128_t) x9 * x33 + ((uint128_t) x11 * x31 + ((uint128_t) x13 * x29 + ((uint128_t) x15 * x27 + ((uint128_t) x17 * x25 + ((uint128_t) x19 * x23 + (uint128_t) x18 * x21)))))));
- uint128_t x37 = (uint128_t) x5 * x35 + ((uint128_t) x7 * x33 + ((uint128_t) x9 * x31 + ((uint128_t) x11 * x29 + ((uint128_t) x13 * x27 + ((uint128_t) x15 * x25 + ((uint128_t) x17 * x23 + (uint128_t) x19 * x21)))))) + 0x11 * ((uint128_t) x18 * x34);
- uint128_t x38 = (uint128_t) x5 * x33 + ((uint128_t) x7 * x31 + ((uint128_t) x9 * x29 + ((uint128_t) x11 * x27 + ((uint128_t) x13 * x25 + ((uint128_t) x15 * x23 + (uint128_t) x17 * x21))))) + 0x11 * ((uint128_t) x19 * x34 + (uint128_t) x18 * x35);
- uint128_t x39 = (uint128_t) x5 * x31 + ((uint128_t) x7 * x29 + ((uint128_t) x9 * x27 + ((uint128_t) x11 * x25 + ((uint128_t) x13 * x23 + (uint128_t) x15 * x21)))) + 0x11 * ((uint128_t) x17 * x34 + ((uint128_t) x19 * x35 + (uint128_t) x18 * x33));
- uint128_t x40 = (uint128_t) x5 * x29 + ((uint128_t) x7 * x27 + ((uint128_t) x9 * x25 + ((uint128_t) x11 * x23 + (uint128_t) x13 * x21))) + 0x11 * ((uint128_t) x15 * x34 + ((uint128_t) x17 * x35 + ((uint128_t) x19 * x33 + (uint128_t) x18 * x31)));
- uint128_t x41 = (uint128_t) x5 * x27 + ((uint128_t) x7 * x25 + ((uint128_t) x9 * x23 + (uint128_t) x11 * x21)) + 0x11 * ((uint128_t) x13 * x34 + ((uint128_t) x15 * x35 + ((uint128_t) x17 * x33 + ((uint128_t) x19 * x31 + (uint128_t) x18 * x29))));
- uint128_t x42 = (uint128_t) x5 * x25 + ((uint128_t) x7 * x23 + (uint128_t) x9 * x21) + 0x11 * ((uint128_t) x11 * x34 + ((uint128_t) x13 * x35 + ((uint128_t) x15 * x33 + ((uint128_t) x17 * x31 + ((uint128_t) x19 * x29 + (uint128_t) x18 * x27)))));
- uint128_t x43 = (uint128_t) x5 * x23 + (uint128_t) x7 * x21 + 0x11 * ((uint128_t) x9 * x34 + ((uint128_t) x11 * x35 + ((uint128_t) x13 * x33 + ((uint128_t) x15 * x31 + ((uint128_t) x17 * x29 + ((uint128_t) x19 * x27 + (uint128_t) x18 * x25))))));
- uint128_t x44 = (uint128_t) x5 * x21 + 0x11 * ((uint128_t) x7 * x34 + ((uint128_t) x9 * x35 + ((uint128_t) x11 * x33 + ((uint128_t) x13 * x31 + ((uint128_t) x15 * x29 + ((uint128_t) x17 * x27 + ((uint128_t) x19 * x25 + (uint128_t) x18 * x23)))))));
+ uint128_t x36 = (((uint128_t)x5 * x34) + (((uint128_t)x7 * x35) + (((uint128_t)x9 * x33) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + (((uint128_t)x19 * x23) + ((uint128_t)x18 * x21)))))))));
+ uint128_t x37 = ((((uint128_t)x5 * x35) + (((uint128_t)x7 * x33) + (((uint128_t)x9 * x31) + (((uint128_t)x11 * x29) + (((uint128_t)x13 * x27) + (((uint128_t)x15 * x25) + (((uint128_t)x17 * x23) + ((uint128_t)x19 * x21)))))))) + (0x11 * ((uint128_t)x18 * x34)));
+ uint128_t x38 = ((((uint128_t)x5 * x33) + (((uint128_t)x7 * x31) + (((uint128_t)x9 * x29) + (((uint128_t)x11 * x27) + (((uint128_t)x13 * x25) + (((uint128_t)x15 * x23) + ((uint128_t)x17 * x21))))))) + (0x11 * (((uint128_t)x19 * x34) + ((uint128_t)x18 * x35))));
+ uint128_t x39 = ((((uint128_t)x5 * x31) + (((uint128_t)x7 * x29) + (((uint128_t)x9 * x27) + (((uint128_t)x11 * x25) + (((uint128_t)x13 * x23) + ((uint128_t)x15 * x21)))))) + (0x11 * (((uint128_t)x17 * x34) + (((uint128_t)x19 * x35) + ((uint128_t)x18 * x33)))));
+ uint128_t x40 = ((((uint128_t)x5 * x29) + (((uint128_t)x7 * x27) + (((uint128_t)x9 * x25) + (((uint128_t)x11 * x23) + ((uint128_t)x13 * x21))))) + (0x11 * (((uint128_t)x15 * x34) + (((uint128_t)x17 * x35) + (((uint128_t)x19 * x33) + ((uint128_t)x18 * x31))))));
+ uint128_t x41 = ((((uint128_t)x5 * x27) + (((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21)))) + (0x11 * (((uint128_t)x13 * x34) + (((uint128_t)x15 * x35) + (((uint128_t)x17 * x33) + (((uint128_t)x19 * x31) + ((uint128_t)x18 * x29)))))));
+ uint128_t x42 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + ((uint128_t)x9 * x21))) + (0x11 * (((uint128_t)x11 * x34) + (((uint128_t)x13 * x35) + (((uint128_t)x15 * x33) + (((uint128_t)x17 * x31) + (((uint128_t)x19 * x29) + ((uint128_t)x18 * x27))))))));
+ uint128_t x43 = ((((uint128_t)x5 * x23) + ((uint128_t)x7 * x21)) + (0x11 * (((uint128_t)x9 * x34) + (((uint128_t)x11 * x35) + (((uint128_t)x13 * x33) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + (((uint128_t)x19 * x27) + ((uint128_t)x18 * x25)))))))));
+ uint128_t x44 = (((uint128_t)x5 * x21) + (0x11 * (((uint128_t)x7 * x34) + (((uint128_t)x9 * x35) + (((uint128_t)x11 * x33) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + (((uint128_t)x17 * x27) + (((uint128_t)x19 * x25) + ((uint128_t)x18 * x23))))))))));
uint64_t x45 = (uint64_t) (x44 >> 0x2e);
- uint64_t x46 = (uint64_t) x44 & 0x3fffffffffff;
- uint128_t x47 = x45 + x43;
+ uint64_t x46 = ((uint64_t)x44 & 0x3fffffffffff);
+ uint128_t x47 = (x45 + x43);
uint64_t x48 = (uint64_t) (x47 >> 0x2e);
- uint64_t x49 = (uint64_t) x47 & 0x3fffffffffff;
- uint128_t x50 = x48 + x42;
+ uint64_t x49 = ((uint64_t)x47 & 0x3fffffffffff);
+ uint128_t x50 = (x48 + x42);
uint64_t x51 = (uint64_t) (x50 >> 0x2e);
- uint64_t x52 = (uint64_t) x50 & 0x3fffffffffff;
- uint128_t x53 = x51 + x41;
+ uint64_t x52 = ((uint64_t)x50 & 0x3fffffffffff);
+ uint128_t x53 = (x51 + x41);
uint64_t x54 = (uint64_t) (x53 >> 0x2e);
- uint64_t x55 = (uint64_t) x53 & 0x3fffffffffff;
- uint128_t x56 = x54 + x40;
+ uint64_t x55 = ((uint64_t)x53 & 0x3fffffffffff);
+ uint128_t x56 = (x54 + x40);
uint64_t x57 = (uint64_t) (x56 >> 0x2e);
- uint64_t x58 = (uint64_t) x56 & 0x3fffffffffff;
- uint128_t x59 = x57 + x39;
+ uint64_t x58 = ((uint64_t)x56 & 0x3fffffffffff);
+ uint128_t x59 = (x57 + x39);
uint64_t x60 = (uint64_t) (x59 >> 0x2e);
- uint64_t x61 = (uint64_t) x59 & 0x3fffffffffff;
- uint128_t x62 = x60 + x38;
+ uint64_t x61 = ((uint64_t)x59 & 0x3fffffffffff);
+ uint128_t x62 = (x60 + x38);
uint64_t x63 = (uint64_t) (x62 >> 0x2e);
- uint64_t x64 = (uint64_t) x62 & 0x3fffffffffff;
- uint128_t x65 = x63 + x37;
+ uint64_t x64 = ((uint64_t)x62 & 0x3fffffffffff);
+ uint128_t x65 = (x63 + x37);
uint64_t x66 = (uint64_t) (x65 >> 0x2e);
- uint64_t x67 = (uint64_t) x65 & 0x3fffffffffff;
- uint128_t x68 = x66 + x36;
+ uint64_t x67 = ((uint64_t)x65 & 0x3fffffffffff);
+ uint128_t x68 = (x66 + x36);
uint64_t x69 = (uint64_t) (x68 >> 0x2e);
- uint64_t x70 = (uint64_t) x68 & 0x3fffffffffff;
- uint64_t x71 = x46 + 0x11 * x69;
- uint64_t x72 = x71 >> 0x2e;
- uint64_t x73 = x71 & 0x3fffffffffff;
- uint64_t x74 = x72 + x49;
- uint64_t x75 = x74 >> 0x2e;
- uint64_t x76 = x74 & 0x3fffffffffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ uint64_t x70 = ((uint64_t)x68 & 0x3fffffffffff);
+ uint64_t x71 = (x46 + (0x11 * x69));
+ uint64_t x72 = (x71 >> 0x2e);
+ uint64_t x73 = (x71 & 0x3fffffffffff);
+ uint64_t x74 = (x72 + x49);
+ uint64_t x75 = (x74 >> 0x2e);
+ uint64_t x76 = (x74 & 0x3fffffffffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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_2e414m17/fesquareDisplay.log b/src/Specific/solinas64_2e414m17/fesquareDisplay.log
index 002276f78..add6dcff0 100644
--- a/src/Specific/solinas64_2e414m17/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e414m17/fesquareDisplay.log
@@ -2,47 +2,47 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x17 = (uint128_t) x2 * x15 + ((uint128_t) x4 * x16 + ((uint128_t) x6 * x14 + ((uint128_t) x8 * x12 + ((uint128_t) x10 * x10 + ((uint128_t) x12 * x8 + ((uint128_t) x14 * x6 + ((uint128_t) x16 * x4 + (uint128_t) x15 * x2)))))));
- uint128_t x18 = (uint128_t) x2 * x16 + ((uint128_t) x4 * x14 + ((uint128_t) x6 * x12 + ((uint128_t) x8 * x10 + ((uint128_t) x10 * x8 + ((uint128_t) x12 * x6 + ((uint128_t) x14 * x4 + (uint128_t) x16 * x2)))))) + 0x11 * ((uint128_t) x15 * x15);
- uint128_t x19 = (uint128_t) x2 * x14 + ((uint128_t) x4 * x12 + ((uint128_t) x6 * x10 + ((uint128_t) x8 * x8 + ((uint128_t) x10 * x6 + ((uint128_t) x12 * x4 + (uint128_t) x14 * x2))))) + 0x11 * ((uint128_t) x16 * x15 + (uint128_t) x15 * x16);
- uint128_t x20 = (uint128_t) x2 * x12 + ((uint128_t) x4 * x10 + ((uint128_t) x6 * x8 + ((uint128_t) x8 * x6 + ((uint128_t) x10 * x4 + (uint128_t) x12 * x2)))) + 0x11 * ((uint128_t) x14 * x15 + ((uint128_t) x16 * x16 + (uint128_t) x15 * x14));
- uint128_t x21 = (uint128_t) x2 * x10 + ((uint128_t) x4 * x8 + ((uint128_t) x6 * x6 + ((uint128_t) x8 * x4 + (uint128_t) x10 * x2))) + 0x11 * ((uint128_t) x12 * x15 + ((uint128_t) x14 * x16 + ((uint128_t) x16 * x14 + (uint128_t) x15 * x12)));
- uint128_t x22 = (uint128_t) x2 * x8 + ((uint128_t) x4 * x6 + ((uint128_t) x6 * x4 + (uint128_t) x8 * x2)) + 0x11 * ((uint128_t) x10 * x15 + ((uint128_t) x12 * x16 + ((uint128_t) x14 * x14 + ((uint128_t) x16 * x12 + (uint128_t) x15 * x10))));
- uint128_t x23 = (uint128_t) x2 * x6 + ((uint128_t) x4 * x4 + (uint128_t) x6 * x2) + 0x11 * ((uint128_t) x8 * x15 + ((uint128_t) x10 * x16 + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + ((uint128_t) x16 * x10 + (uint128_t) x15 * x8)))));
- uint128_t x24 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x11 * ((uint128_t) x6 * x15 + ((uint128_t) x8 * x16 + ((uint128_t) x10 * x14 + ((uint128_t) x12 * x12 + ((uint128_t) x14 * x10 + ((uint128_t) x16 * x8 + (uint128_t) x15 * x6))))));
- uint128_t x25 = (uint128_t) x2 * x2 + 0x11 * ((uint128_t) x4 * x15 + ((uint128_t) x6 * x16 + ((uint128_t) x8 * x14 + ((uint128_t) x10 * x12 + ((uint128_t) x12 * x10 + ((uint128_t) x14 * x8 + ((uint128_t) x16 * x6 + (uint128_t) x15 * x4)))))));
+ uint128_t x17 = (((uint128_t)x2 * x15) + (((uint128_t)x4 * x16) + (((uint128_t)x6 * x14) + (((uint128_t)x8 * x12) + (((uint128_t)x10 * x10) + (((uint128_t)x12 * x8) + (((uint128_t)x14 * x6) + (((uint128_t)x16 * x4) + ((uint128_t)x15 * x2)))))))));
+ uint128_t x18 = ((((uint128_t)x2 * x16) + (((uint128_t)x4 * x14) + (((uint128_t)x6 * x12) + (((uint128_t)x8 * x10) + (((uint128_t)x10 * x8) + (((uint128_t)x12 * x6) + (((uint128_t)x14 * x4) + ((uint128_t)x16 * x2)))))))) + (0x11 * ((uint128_t)x15 * x15)));
+ uint128_t x19 = ((((uint128_t)x2 * x14) + (((uint128_t)x4 * x12) + (((uint128_t)x6 * x10) + (((uint128_t)x8 * x8) + (((uint128_t)x10 * x6) + (((uint128_t)x12 * x4) + ((uint128_t)x14 * x2))))))) + (0x11 * (((uint128_t)x16 * x15) + ((uint128_t)x15 * x16))));
+ uint128_t x20 = ((((uint128_t)x2 * x12) + (((uint128_t)x4 * x10) + (((uint128_t)x6 * x8) + (((uint128_t)x8 * x6) + (((uint128_t)x10 * x4) + ((uint128_t)x12 * x2)))))) + (0x11 * (((uint128_t)x14 * x15) + (((uint128_t)x16 * x16) + ((uint128_t)x15 * x14)))));
+ uint128_t x21 = ((((uint128_t)x2 * x10) + (((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + (((uint128_t)x8 * x4) + ((uint128_t)x10 * x2))))) + (0x11 * (((uint128_t)x12 * x15) + (((uint128_t)x14 * x16) + (((uint128_t)x16 * x14) + ((uint128_t)x15 * x12))))));
+ uint128_t x22 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (0x11 * (((uint128_t)x10 * x15) + (((uint128_t)x12 * x16) + (((uint128_t)x14 * x14) + (((uint128_t)x16 * x12) + ((uint128_t)x15 * x10)))))));
+ uint128_t x23 = ((((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))) + (0x11 * (((uint128_t)x8 * x15) + (((uint128_t)x10 * x16) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + (((uint128_t)x16 * x10) + ((uint128_t)x15 * x8))))))));
+ uint128_t x24 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x11 * (((uint128_t)x6 * x15) + (((uint128_t)x8 * x16) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + (((uint128_t)x14 * x10) + (((uint128_t)x16 * x8) + ((uint128_t)x15 * x6)))))))));
+ uint128_t x25 = (((uint128_t)x2 * x2) + (0x11 * (((uint128_t)x4 * x15) + (((uint128_t)x6 * x16) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + (((uint128_t)x16 * x6) + ((uint128_t)x15 * x4))))))))));
uint64_t x26 = (uint64_t) (x25 >> 0x2e);
- uint64_t x27 = (uint64_t) x25 & 0x3fffffffffff;
- uint128_t x28 = x26 + x24;
+ uint64_t x27 = ((uint64_t)x25 & 0x3fffffffffff);
+ uint128_t x28 = (x26 + x24);
uint64_t x29 = (uint64_t) (x28 >> 0x2e);
- uint64_t x30 = (uint64_t) x28 & 0x3fffffffffff;
- uint128_t x31 = x29 + x23;
+ uint64_t x30 = ((uint64_t)x28 & 0x3fffffffffff);
+ uint128_t x31 = (x29 + x23);
uint64_t x32 = (uint64_t) (x31 >> 0x2e);
- uint64_t x33 = (uint64_t) x31 & 0x3fffffffffff;
- uint128_t x34 = x32 + x22;
+ uint64_t x33 = ((uint64_t)x31 & 0x3fffffffffff);
+ uint128_t x34 = (x32 + x22);
uint64_t x35 = (uint64_t) (x34 >> 0x2e);
- uint64_t x36 = (uint64_t) x34 & 0x3fffffffffff;
- uint128_t x37 = x35 + x21;
+ uint64_t x36 = ((uint64_t)x34 & 0x3fffffffffff);
+ uint128_t x37 = (x35 + x21);
uint64_t x38 = (uint64_t) (x37 >> 0x2e);
- uint64_t x39 = (uint64_t) x37 & 0x3fffffffffff;
- uint128_t x40 = x38 + x20;
+ uint64_t x39 = ((uint64_t)x37 & 0x3fffffffffff);
+ uint128_t x40 = (x38 + x20);
uint64_t x41 = (uint64_t) (x40 >> 0x2e);
- uint64_t x42 = (uint64_t) x40 & 0x3fffffffffff;
- uint128_t x43 = x41 + x19;
+ uint64_t x42 = ((uint64_t)x40 & 0x3fffffffffff);
+ uint128_t x43 = (x41 + x19);
uint64_t x44 = (uint64_t) (x43 >> 0x2e);
- uint64_t x45 = (uint64_t) x43 & 0x3fffffffffff;
- uint128_t x46 = x44 + x18;
+ uint64_t x45 = ((uint64_t)x43 & 0x3fffffffffff);
+ uint128_t x46 = (x44 + x18);
uint64_t x47 = (uint64_t) (x46 >> 0x2e);
- uint64_t x48 = (uint64_t) x46 & 0x3fffffffffff;
- uint128_t x49 = x47 + x17;
+ uint64_t x48 = ((uint64_t)x46 & 0x3fffffffffff);
+ uint128_t x49 = (x47 + x17);
uint64_t x50 = (uint64_t) (x49 >> 0x2e);
- uint64_t x51 = (uint64_t) x49 & 0x3fffffffffff;
- uint64_t x52 = x27 + 0x11 * x50;
- uint64_t x53 = x52 >> 0x2e;
- uint64_t x54 = x52 & 0x3fffffffffff;
- uint64_t x55 = x53 + x30;
- uint64_t x56 = x55 >> 0x2e;
- uint64_t x57 = x55 & 0x3fffffffffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ uint64_t x51 = ((uint64_t)x49 & 0x3fffffffffff);
+ uint64_t x52 = (x27 + (0x11 * x50));
+ uint64_t x53 = (x52 >> 0x2e);
+ uint64_t x54 = (x52 & 0x3fffffffffff);
+ uint64_t x55 = (x53 + x30);
+ uint64_t x56 = (x55 >> 0x2e);
+ uint64_t x57 = (x55 & 0x3fffffffffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
: 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_2e414m17/freezeDisplay.log b/src/Specific/solinas64_2e414m17/freezeDisplay.log
index 817d3bbf1..e0a2a97c5 100644
--- a/src/Specific/solinas64_2e414m17/freezeDisplay.log
+++ b/src/Specific/solinas64_2e414m17/freezeDisplay.log
@@ -12,23 +12,23 @@ Interp-η
uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0x3fffffffffff);
uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0x3fffffffffff);
uint64_t x44 = (uint64_t)cmovznz(x43, 0x0, 0xffffffffffffffffL);
- uint64_t x45 = x44 & 0x3fffffffffef;
+ uint64_t x45 = (x44 & 0x3fffffffffef);
uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint64_t x49 = x44 & 0x3fffffffffff;
+ uint64_t x49 = (x44 & 0x3fffffffffff);
uint64_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint64_t x53 = x44 & 0x3fffffffffff;
+ uint64_t x53 = (x44 & 0x3fffffffffff);
uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint64_t x57 = x44 & 0x3fffffffffff;
+ uint64_t x57 = (x44 & 0x3fffffffffff);
uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint64_t x61 = x44 & 0x3fffffffffff;
+ uint64_t x61 = (x44 & 0x3fffffffffff);
uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint64_t x65 = x44 & 0x3fffffffffff;
+ uint64_t x65 = (x44 & 0x3fffffffffff);
uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint64_t x69 = x44 & 0x3fffffffffff;
+ uint64_t x69 = (x44 & 0x3fffffffffff);
uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint64_t x73 = x44 & 0x3fffffffffff;
+ uint64_t x73 = (x44 & 0x3fffffffffff);
uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint64_t x77 = x44 & 0x3fffffffffff;
+ uint64_t x77 = (x44 & 0x3fffffffffff);
uint64_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
(Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
diff --git a/src/Specific/solinas64_2e416m2e208m1/femulDisplay.log b/src/Specific/solinas64_2e416m2e208m1/femulDisplay.log
new file mode 100644
index 000000000..b80ae858e
--- /dev/null
+++ b/src/Specific/solinas64_2e416m2e208m1/femulDisplay.log
@@ -0,0 +1,61 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint128_t x32 = (((uint128_t)(x11 + x16) * (x25 + x30)) - ((uint128_t)x11 * x25));
+ uint128_t x33 = ((((uint128_t)(x9 + x17) * (x25 + x30)) + ((uint128_t)(x11 + x16) * (x23 + x31))) - (((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)));
+ uint128_t x34 = ((((uint128_t)(x7 + x15) * (x25 + x30)) + (((uint128_t)(x9 + x17) * (x23 + x31)) + ((uint128_t)(x11 + x16) * (x21 + x29)))) - (((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21))));
+ uint128_t x35 = ((((uint128_t)(x5 + x13) * (x25 + x30)) + (((uint128_t)(x7 + x15) * (x23 + x31)) + (((uint128_t)(x9 + x17) * (x21 + x29)) + ((uint128_t)(x11 + x16) * (x19 + x27))))) - (((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))));
+ uint128_t x36 = ((((uint128_t)(x5 + x13) * (x23 + x31)) + (((uint128_t)(x7 + x15) * (x21 + x29)) + ((uint128_t)(x9 + x17) * (x19 + x27)))) - (((uint128_t)x5 * x23) + (((uint128_t)x7 * x21) + ((uint128_t)x9 * x19))));
+ uint128_t x37 = ((((uint128_t)(x5 + x13) * (x21 + x29)) + ((uint128_t)(x7 + x15) * (x19 + x27))) - (((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)));
+ uint128_t x38 = (((uint128_t)(x5 + x13) * (x19 + x27)) - ((uint128_t)x5 * x19));
+ uint128_t x39 = (((((uint128_t)x11 * x25) + ((uint128_t)x16 * x30)) + x36) + x32);
+ uint128_t x40 = ((((((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)) + (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))) + x37) + x33);
+ uint128_t x41 = ((((((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21))) + (((uint128_t)x15 * x30) + (((uint128_t)x17 * x31) + ((uint128_t)x16 * x29)))) + x38) + x34);
+ uint128_t x42 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))) + (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27)))));
+ uint128_t x43 = (((((uint128_t)x5 * x23) + (((uint128_t)x7 * x21) + ((uint128_t)x9 * x19))) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + ((uint128_t)x17 * x27)))) + x32);
+ uint128_t x44 = (((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (((uint128_t)x13 * x29) + ((uint128_t)x15 * x27))) + x33);
+ uint128_t x45 = ((((uint128_t)x5 * x19) + ((uint128_t)x13 * x27)) + x34);
+ uint64_t x46 = (uint64_t) (x42 >> 0x34);
+ uint64_t x47 = ((uint64_t)x42 & 0xfffffffffffff);
+ uint64_t x48 = (uint64_t) (x35 >> 0x34);
+ uint64_t x49 = ((uint64_t)x35 & 0xfffffffffffff);
+ uint128_t x50 = (((uint128_t)0x10000000000000 * x48) + x49);
+ uint64_t x51 = (uint64_t) (x50 >> 0x34);
+ uint64_t x52 = ((uint64_t)x50 & 0xfffffffffffff);
+ uint128_t x53 = ((x46 + x41) + x51);
+ uint64_t x54 = (uint64_t) (x53 >> 0x34);
+ uint64_t x55 = ((uint64_t)x53 & 0xfffffffffffff);
+ uint128_t x56 = (x45 + x51);
+ uint64_t x57 = (uint64_t) (x56 >> 0x34);
+ uint64_t x58 = ((uint64_t)x56 & 0xfffffffffffff);
+ uint128_t x59 = (x54 + x40);
+ uint64_t x60 = (uint64_t) (x59 >> 0x34);
+ uint64_t x61 = ((uint64_t)x59 & 0xfffffffffffff);
+ uint128_t x62 = (x57 + x44);
+ uint64_t x63 = (uint64_t) (x62 >> 0x34);
+ uint64_t x64 = ((uint64_t)x62 & 0xfffffffffffff);
+ uint128_t x65 = (x60 + x39);
+ uint64_t x66 = (uint64_t) (x65 >> 0x34);
+ uint64_t x67 = ((uint64_t)x65 & 0xfffffffffffff);
+ uint128_t x68 = (x63 + x43);
+ uint64_t x69 = (uint64_t) (x68 >> 0x34);
+ uint64_t x70 = ((uint64_t)x68 & 0xfffffffffffff);
+ uint64_t x71 = (x66 + x52);
+ uint64_t x72 = (x71 >> 0x34);
+ uint64_t x73 = (x71 & 0xfffffffffffff);
+ uint64_t x74 = (x69 + x47);
+ uint64_t x75 = (x74 >> 0x34);
+ uint64_t x76 = (x74 & 0xfffffffffffff);
+ uint64_t x77 = ((0x10000000000000 * x72) + x73);
+ uint64_t x78 = (x77 >> 0x34);
+ uint64_t x79 = (x77 & 0xfffffffffffff);
+ uint64_t x80 = ((x75 + x55) + x78);
+ uint64_t x81 = (x80 >> 0x34);
+ uint64_t x82 = (x80 & 0xfffffffffffff);
+ uint64_t x83 = (x58 + x78);
+ uint64_t x84 = (x83 >> 0x34);
+ uint64_t x85 = (x83 & 0xfffffffffffff);
+ return (Return x79, Return x67, (x81 + x61), Return x82, Return x76, Return x70, (x84 + x64), Return x85))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e416m2e208m1/fesquareDisplay.log b/src/Specific/solinas64_2e416m2e208m1/fesquareDisplay.log
new file mode 100644
index 000000000..104992b7a
--- /dev/null
+++ b/src/Specific/solinas64_2e416m2e208m1/fesquareDisplay.log
@@ -0,0 +1,61 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x15 = (((uint128_t)(x8 + x13) * (x8 + x13)) - ((uint128_t)x8 * x8));
+ uint128_t x16 = ((((uint128_t)(x6 + x14) * (x8 + x13)) + ((uint128_t)(x8 + x13) * (x6 + x14))) - (((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)));
+ uint128_t x17 = ((((uint128_t)(x4 + x12) * (x8 + x13)) + (((uint128_t)(x6 + x14) * (x6 + x14)) + ((uint128_t)(x8 + x13) * (x4 + x12)))) - (((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + ((uint128_t)x8 * x4))));
+ uint128_t x18 = ((((uint128_t)(x2 + x10) * (x8 + x13)) + (((uint128_t)(x4 + x12) * (x6 + x14)) + (((uint128_t)(x6 + x14) * (x4 + x12)) + ((uint128_t)(x8 + x13) * (x2 + x10))))) - (((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))));
+ uint128_t x19 = ((((uint128_t)(x2 + x10) * (x6 + x14)) + (((uint128_t)(x4 + x12) * (x4 + x12)) + ((uint128_t)(x6 + x14) * (x2 + x10)))) - (((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))));
+ uint128_t x20 = ((((uint128_t)(x2 + x10) * (x4 + x12)) + ((uint128_t)(x4 + x12) * (x2 + x10))) - (((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)));
+ uint128_t x21 = (((uint128_t)(x2 + x10) * (x2 + x10)) - ((uint128_t)x2 * x2));
+ uint128_t x22 = (((((uint128_t)x8 * x8) + ((uint128_t)x13 * x13)) + x19) + x15);
+ uint128_t x23 = ((((((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)) + (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))) + x20) + x16);
+ uint128_t x24 = ((((((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + ((uint128_t)x8 * x4))) + (((uint128_t)x12 * x13) + (((uint128_t)x14 * x14) + ((uint128_t)x13 * x12)))) + x21) + x17);
+ uint128_t x25 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10)))));
+ uint128_t x26 = (((((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + ((uint128_t)x14 * x10)))) + x15);
+ uint128_t x27 = (((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (((uint128_t)x10 * x12) + ((uint128_t)x12 * x10))) + x16);
+ uint128_t x28 = ((((uint128_t)x2 * x2) + ((uint128_t)x10 * x10)) + x17);
+ uint64_t x29 = (uint64_t) (x25 >> 0x34);
+ uint64_t x30 = ((uint64_t)x25 & 0xfffffffffffff);
+ uint64_t x31 = (uint64_t) (x18 >> 0x34);
+ uint64_t x32 = ((uint64_t)x18 & 0xfffffffffffff);
+ uint128_t x33 = (((uint128_t)0x10000000000000 * x31) + x32);
+ uint64_t x34 = (uint64_t) (x33 >> 0x34);
+ uint64_t x35 = ((uint64_t)x33 & 0xfffffffffffff);
+ uint128_t x36 = ((x29 + x24) + x34);
+ uint64_t x37 = (uint64_t) (x36 >> 0x34);
+ uint64_t x38 = ((uint64_t)x36 & 0xfffffffffffff);
+ uint128_t x39 = (x28 + x34);
+ uint64_t x40 = (uint64_t) (x39 >> 0x34);
+ uint64_t x41 = ((uint64_t)x39 & 0xfffffffffffff);
+ uint128_t x42 = (x37 + x23);
+ uint64_t x43 = (uint64_t) (x42 >> 0x34);
+ uint64_t x44 = ((uint64_t)x42 & 0xfffffffffffff);
+ uint128_t x45 = (x40 + x27);
+ uint64_t x46 = (uint64_t) (x45 >> 0x34);
+ uint64_t x47 = ((uint64_t)x45 & 0xfffffffffffff);
+ uint128_t x48 = (x43 + x22);
+ uint64_t x49 = (uint64_t) (x48 >> 0x34);
+ uint64_t x50 = ((uint64_t)x48 & 0xfffffffffffff);
+ uint128_t x51 = (x46 + x26);
+ uint64_t x52 = (uint64_t) (x51 >> 0x34);
+ uint64_t x53 = ((uint64_t)x51 & 0xfffffffffffff);
+ uint64_t x54 = (x49 + x35);
+ uint64_t x55 = (x54 >> 0x34);
+ uint64_t x56 = (x54 & 0xfffffffffffff);
+ uint64_t x57 = (x52 + x30);
+ uint64_t x58 = (x57 >> 0x34);
+ uint64_t x59 = (x57 & 0xfffffffffffff);
+ uint64_t x60 = ((0x10000000000000 * x55) + x56);
+ uint64_t x61 = (x60 >> 0x34);
+ uint64_t x62 = (x60 & 0xfffffffffffff);
+ uint64_t x63 = ((x58 + x38) + x61);
+ uint64_t x64 = (x63 >> 0x34);
+ uint64_t x65 = (x63 & 0xfffffffffffff);
+ uint64_t x66 = (x41 + x61);
+ uint64_t x67 = (x66 >> 0x34);
+ uint64_t x68 = (x66 & 0xfffffffffffff);
+ return (Return x62, Return x50, (x64 + x44), Return x65, Return x59, Return x53, (x67 + x47), Return x68))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e416m2e208m1/freezeDisplay.log b/src/Specific/solinas64_2e416m2e208m1/freezeDisplay.log
index b52ac8ae3..7ee94c920 100644
--- a/src/Specific/solinas64_2e416m2e208m1/freezeDisplay.log
+++ b/src/Specific/solinas64_2e416m2e208m1/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xfffffffffffff);
uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xfffffffffffff);
uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
- uint64_t x40 = x39 & 0xfffffffffffff;
+ uint64_t x40 = (x39 & 0xfffffffffffff);
uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
- uint64_t x44 = x39 & 0xfffffffffffff;
+ uint64_t x44 = (x39 & 0xfffffffffffff);
uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint64_t x48 = x39 & 0xfffffffffffff;
+ uint64_t x48 = (x39 & 0xfffffffffffff);
uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint64_t x52 = x39 & 0xfffffffffffff;
+ uint64_t x52 = (x39 & 0xfffffffffffff);
uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint64_t x56 = x39 & 0xffffffffffffe;
+ uint64_t x56 = (x39 & 0xffffffffffffe);
uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint64_t x60 = x39 & 0xfffffffffffff;
+ uint64_t x60 = (x39 & 0xfffffffffffff);
uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint64_t x64 = x39 & 0xfffffffffffff;
+ uint64_t x64 = (x39 & 0xfffffffffffff);
uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint64_t x68 = x39 & 0xfffffffffffff;
+ uint64_t x68 = (x39 & 0xfffffffffffff);
uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas64_2e444m17/femulDisplay.log b/src/Specific/solinas64_2e444m17/femulDisplay.log
index c325764cf..a8e925cea 100644
--- a/src/Specific/solinas64_2e444m17/femulDisplay.log
+++ b/src/Specific/solinas64_2e444m17/femulDisplay.log
@@ -1,48 +1,44 @@
-λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
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,
- uint128_t x36 = (uint128_t) x5 * x34 + (0x2 * ((uint128_t) x7 * x35) + ((uint128_t) x9 * x33 + ((uint128_t) x11 * x31 + (0x2 * ((uint128_t) x13 * x29) + ((uint128_t) x15 * x27 + ((uint128_t) x17 * x25 + (0x2 * ((uint128_t) x19 * x23) + (uint128_t) x18 * x21)))))));
- uint128_t x37 = (uint128_t) x5 * x35 + ((uint128_t) x7 * x33 + ((uint128_t) x9 * x31 + ((uint128_t) x11 * x29 + ((uint128_t) x13 * x27 + ((uint128_t) x15 * x25 + ((uint128_t) x17 * x23 + (uint128_t) x19 * x21)))))) + 0x11 * ((uint128_t) x18 * x34);
- uint128_t x38 = (uint128_t) x5 * x33 + (0x2 * ((uint128_t) x7 * x31) + (0x2 * ((uint128_t) x9 * x29) + ((uint128_t) x11 * x27 + (0x2 * ((uint128_t) x13 * x25) + (0x2 * ((uint128_t) x15 * x23) + (uint128_t) x17 * x21))))) + 0x11 * (0x2 * ((uint128_t) x19 * x34) + 0x2 * ((uint128_t) x18 * x35));
- uint128_t x39 = (uint128_t) x5 * x31 + (0x2 * ((uint128_t) x7 * x29) + ((uint128_t) x9 * x27 + ((uint128_t) x11 * x25 + (0x2 * ((uint128_t) x13 * x23) + (uint128_t) x15 * x21)))) + 0x11 * ((uint128_t) x17 * x34 + (0x2 * ((uint128_t) x19 * x35) + (uint128_t) x18 * x33));
- uint128_t x40 = (uint128_t) x5 * x29 + ((uint128_t) x7 * x27 + ((uint128_t) x9 * x25 + ((uint128_t) x11 * x23 + (uint128_t) x13 * x21))) + 0x11 * ((uint128_t) x15 * x34 + ((uint128_t) x17 * x35 + ((uint128_t) x19 * x33 + (uint128_t) x18 * x31)));
- uint128_t x41 = (uint128_t) x5 * x27 + (0x2 * ((uint128_t) x7 * x25) + (0x2 * ((uint128_t) x9 * x23) + (uint128_t) x11 * x21)) + 0x11 * (0x2 * ((uint128_t) x13 * x34) + (0x2 * ((uint128_t) x15 * x35) + ((uint128_t) x17 * x33 + (0x2 * ((uint128_t) x19 * x31) + 0x2 * ((uint128_t) x18 * x29)))));
- uint128_t x42 = (uint128_t) x5 * x25 + (0x2 * ((uint128_t) x7 * x23) + (uint128_t) x9 * x21) + 0x11 * ((uint128_t) x11 * x34 + (0x2 * ((uint128_t) x13 * x35) + ((uint128_t) x15 * x33 + ((uint128_t) x17 * x31 + (0x2 * ((uint128_t) x19 * x29) + (uint128_t) x18 * x27)))));
- uint128_t x43 = (uint128_t) x5 * x23 + (uint128_t) x7 * x21 + 0x11 * ((uint128_t) x9 * x34 + ((uint128_t) x11 * x35 + ((uint128_t) x13 * x33 + ((uint128_t) x15 * x31 + ((uint128_t) x17 * x29 + ((uint128_t) x19 * x27 + (uint128_t) x18 * x25))))));
- uint128_t x44 = (uint128_t) x5 * x21 + 0x11 * (0x2 * ((uint128_t) x7 * x34) + (0x2 * ((uint128_t) x9 * x35) + ((uint128_t) x11 * x33 + (0x2 * ((uint128_t) x13 * x31) + (0x2 * ((uint128_t) x15 * x29) + ((uint128_t) x17 * x27 + (0x2 * ((uint128_t) x19 * x25) + 0x2 * ((uint128_t) x18 * x23))))))));
- uint64_t x45 = (uint64_t) (x44 >> 0x32);
- uint64_t x46 = (uint64_t) x44 & 0x3ffffffffffff;
- uint128_t x47 = x45 + x43;
- uint64_t x48 = (uint64_t) (x47 >> 0x31);
- uint64_t x49 = (uint64_t) x47 & 0x1ffffffffffff;
- uint128_t x50 = x48 + x42;
- uint64_t x51 = (uint64_t) (x50 >> 0x31);
- uint64_t x52 = (uint64_t) x50 & 0x1ffffffffffff;
- uint128_t x53 = x51 + x41;
- uint64_t x54 = (uint64_t) (x53 >> 0x32);
- uint64_t x55 = (uint64_t) x53 & 0x3ffffffffffff;
- uint128_t x56 = x54 + x40;
- uint64_t x57 = (uint64_t) (x56 >> 0x31);
- uint64_t x58 = (uint64_t) x56 & 0x1ffffffffffff;
- uint128_t x59 = x57 + x39;
- uint64_t x60 = (uint64_t) (x59 >> 0x31);
- uint64_t x61 = (uint64_t) x59 & 0x1ffffffffffff;
- uint128_t x62 = x60 + x38;
- uint64_t x63 = (uint64_t) (x62 >> 0x32);
- uint64_t x64 = (uint64_t) x62 & 0x3ffffffffffff;
- uint128_t x65 = x63 + x37;
- uint64_t x66 = (uint64_t) (x65 >> 0x31);
- uint64_t x67 = (uint64_t) x65 & 0x1ffffffffffff;
- uint128_t x68 = x66 + x36;
- uint64_t x69 = (uint64_t) (x68 >> 0x31);
- uint64_t x70 = (uint64_t) x68 & 0x1ffffffffffff;
- uint64_t x71 = x46 + 0x11 * x69;
- uint64_t x72 = x71 >> 0x32;
- uint64_t x73 = x71 & 0x3ffffffffffff;
- uint64_t x74 = x72 + x49;
- uint64_t x75 = x74 >> 0x31;
- uint64_t x76 = x74 & 0x1ffffffffffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint128_t x32 = (((uint128_t)x5 * x30) + (((uint128_t)x7 * x31) + (((uint128_t)x9 * x29) + (((uint128_t)x11 * x27) + (((uint128_t)x13 * x25) + (((uint128_t)x15 * x23) + (((uint128_t)x17 * x21) + ((uint128_t)x16 * x19))))))));
+ uint128_t x33 = ((((uint128_t)x5 * x31) + ((0x2 * ((uint128_t)x7 * x29)) + (((uint128_t)x9 * x27) + ((0x2 * ((uint128_t)x11 * x25)) + (((uint128_t)x13 * x23) + ((0x2 * ((uint128_t)x15 * x21)) + ((uint128_t)x17 * x19))))))) + (0x11 * (0x2 * ((uint128_t)x16 * x30))));
+ uint128_t x34 = ((((uint128_t)x5 * x29) + (((uint128_t)x7 * x27) + (((uint128_t)x9 * x25) + (((uint128_t)x11 * x23) + (((uint128_t)x13 * x21) + ((uint128_t)x15 * x19)))))) + (0x11 * (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))));
+ uint128_t x35 = ((((uint128_t)x5 * x27) + ((0x2 * ((uint128_t)x7 * x25)) + (((uint128_t)x9 * x23) + ((0x2 * ((uint128_t)x11 * x21)) + ((uint128_t)x13 * x19))))) + (0x11 * ((0x2 * ((uint128_t)x15 * x30)) + (((uint128_t)x17 * x31) + (0x2 * ((uint128_t)x16 * x29))))));
+ uint128_t x36 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))) + (0x11 * (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27))))));
+ uint128_t x37 = ((((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((uint128_t)x9 * x19))) + (0x11 * ((0x2 * ((uint128_t)x11 * x30)) + (((uint128_t)x13 * x31) + ((0x2 * ((uint128_t)x15 * x29)) + (((uint128_t)x17 * x27) + (0x2 * ((uint128_t)x16 * x25))))))));
+ uint128_t x38 = ((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (0x11 * (((uint128_t)x9 * x30) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + ((uint128_t)x16 * x23))))))));
+ uint128_t x39 = (((uint128_t)x5 * x19) + (0x11 * ((0x2 * ((uint128_t)x7 * x30)) + (((uint128_t)x9 * x31) + ((0x2 * ((uint128_t)x11 * x29)) + (((uint128_t)x13 * x27) + ((0x2 * ((uint128_t)x15 * x25)) + (((uint128_t)x17 * x23) + (0x2 * ((uint128_t)x16 * x21))))))))));
+ uint64_t x40 = (uint64_t) (x39 >> 0x38);
+ uint64_t x41 = ((uint64_t)x39 & 0xffffffffffffff);
+ uint128_t x42 = (x40 + x38);
+ uint64_t x43 = (uint64_t) (x42 >> 0x37);
+ uint64_t x44 = ((uint64_t)x42 & 0x7fffffffffffff);
+ uint128_t x45 = (x43 + x37);
+ uint64_t x46 = (uint64_t) (x45 >> 0x38);
+ uint64_t x47 = ((uint64_t)x45 & 0xffffffffffffff);
+ uint128_t x48 = (x46 + x36);
+ uint64_t x49 = (uint64_t) (x48 >> 0x37);
+ uint64_t x50 = ((uint64_t)x48 & 0x7fffffffffffff);
+ uint128_t x51 = (x49 + x35);
+ uint64_t x52 = (uint64_t) (x51 >> 0x38);
+ uint64_t x53 = ((uint64_t)x51 & 0xffffffffffffff);
+ uint128_t x54 = (x52 + x34);
+ uint64_t x55 = (uint64_t) (x54 >> 0x37);
+ uint64_t x56 = ((uint64_t)x54 & 0x7fffffffffffff);
+ uint128_t x57 = (x55 + x33);
+ uint64_t x58 = (uint64_t) (x57 >> 0x38);
+ uint64_t x59 = ((uint64_t)x57 & 0xffffffffffffff);
+ uint128_t x60 = (x58 + x32);
+ uint64_t x61 = (uint64_t) (x60 >> 0x37);
+ uint64_t x62 = ((uint64_t)x60 & 0x7fffffffffffff);
+ uint64_t x63 = (x41 + (0x11 * x61));
+ uint64_t x64 = (x63 >> 0x38);
+ uint64_t x65 = (x63 & 0xffffffffffffff);
+ uint64_t x66 = (x64 + x44);
+ uint64_t x67 = (x66 >> 0x37);
+ uint64_t x68 = (x66 & 0x7fffffffffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e444m17/fesquareDisplay.log b/src/Specific/solinas64_2e444m17/fesquareDisplay.log
index 21b07fd5e..59dbd76f2 100644
--- a/src/Specific/solinas64_2e444m17/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e444m17/fesquareDisplay.log
@@ -1,48 +1,44 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x17 = (uint128_t) x2 * x15 + (0x2 * ((uint128_t) x4 * x16) + ((uint128_t) x6 * x14 + ((uint128_t) x8 * x12 + (0x2 * ((uint128_t) x10 * x10) + ((uint128_t) x12 * x8 + ((uint128_t) x14 * x6 + (0x2 * ((uint128_t) x16 * x4) + (uint128_t) x15 * x2)))))));
- uint128_t x18 = (uint128_t) x2 * x16 + ((uint128_t) x4 * x14 + ((uint128_t) x6 * x12 + ((uint128_t) x8 * x10 + ((uint128_t) x10 * x8 + ((uint128_t) x12 * x6 + ((uint128_t) x14 * x4 + (uint128_t) x16 * x2)))))) + 0x11 * ((uint128_t) x15 * x15);
- uint128_t x19 = (uint128_t) x2 * x14 + (0x2 * ((uint128_t) x4 * x12) + (0x2 * ((uint128_t) x6 * x10) + ((uint128_t) x8 * x8 + (0x2 * ((uint128_t) x10 * x6) + (0x2 * ((uint128_t) x12 * x4) + (uint128_t) x14 * x2))))) + 0x11 * (0x2 * ((uint128_t) x16 * x15) + 0x2 * ((uint128_t) x15 * x16));
- uint128_t x20 = (uint128_t) x2 * x12 + (0x2 * ((uint128_t) x4 * x10) + ((uint128_t) x6 * x8 + ((uint128_t) x8 * x6 + (0x2 * ((uint128_t) x10 * x4) + (uint128_t) x12 * x2)))) + 0x11 * ((uint128_t) x14 * x15 + (0x2 * ((uint128_t) x16 * x16) + (uint128_t) x15 * x14));
- uint128_t x21 = (uint128_t) x2 * x10 + ((uint128_t) x4 * x8 + ((uint128_t) x6 * x6 + ((uint128_t) x8 * x4 + (uint128_t) x10 * x2))) + 0x11 * ((uint128_t) x12 * x15 + ((uint128_t) x14 * x16 + ((uint128_t) x16 * x14 + (uint128_t) x15 * x12)));
- uint128_t x22 = (uint128_t) x2 * x8 + (0x2 * ((uint128_t) x4 * x6) + (0x2 * ((uint128_t) x6 * x4) + (uint128_t) x8 * x2)) + 0x11 * (0x2 * ((uint128_t) x10 * x15) + (0x2 * ((uint128_t) x12 * x16) + ((uint128_t) x14 * x14 + (0x2 * ((uint128_t) x16 * x12) + 0x2 * ((uint128_t) x15 * x10)))));
- uint128_t x23 = (uint128_t) x2 * x6 + (0x2 * ((uint128_t) x4 * x4) + (uint128_t) x6 * x2) + 0x11 * ((uint128_t) x8 * x15 + (0x2 * ((uint128_t) x10 * x16) + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + (0x2 * ((uint128_t) x16 * x10) + (uint128_t) x15 * x8)))));
- uint128_t x24 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x11 * ((uint128_t) x6 * x15 + ((uint128_t) x8 * x16 + ((uint128_t) x10 * x14 + ((uint128_t) x12 * x12 + ((uint128_t) x14 * x10 + ((uint128_t) x16 * x8 + (uint128_t) x15 * x6))))));
- uint128_t x25 = (uint128_t) x2 * x2 + 0x11 * (0x2 * ((uint128_t) x4 * x15) + (0x2 * ((uint128_t) x6 * x16) + ((uint128_t) x8 * x14 + (0x2 * ((uint128_t) x10 * x12) + (0x2 * ((uint128_t) x12 * x10) + ((uint128_t) x14 * x8 + (0x2 * ((uint128_t) x16 * x6) + 0x2 * ((uint128_t) x15 * x4))))))));
- uint64_t x26 = (uint64_t) (x25 >> 0x32);
- uint64_t x27 = (uint64_t) x25 & 0x3ffffffffffff;
- uint128_t x28 = x26 + x24;
- uint64_t x29 = (uint64_t) (x28 >> 0x31);
- uint64_t x30 = (uint64_t) x28 & 0x1ffffffffffff;
- uint128_t x31 = x29 + x23;
- uint64_t x32 = (uint64_t) (x31 >> 0x31);
- uint64_t x33 = (uint64_t) x31 & 0x1ffffffffffff;
- uint128_t x34 = x32 + x22;
- uint64_t x35 = (uint64_t) (x34 >> 0x32);
- uint64_t x36 = (uint64_t) x34 & 0x3ffffffffffff;
- uint128_t x37 = x35 + x21;
- uint64_t x38 = (uint64_t) (x37 >> 0x31);
- uint64_t x39 = (uint64_t) x37 & 0x1ffffffffffff;
- uint128_t x40 = x38 + x20;
- uint64_t x41 = (uint64_t) (x40 >> 0x31);
- uint64_t x42 = (uint64_t) x40 & 0x1ffffffffffff;
- uint128_t x43 = x41 + x19;
- uint64_t x44 = (uint64_t) (x43 >> 0x32);
- uint64_t x45 = (uint64_t) x43 & 0x3ffffffffffff;
- uint128_t x46 = x44 + x18;
- uint64_t x47 = (uint64_t) (x46 >> 0x31);
- uint64_t x48 = (uint64_t) x46 & 0x1ffffffffffff;
- uint128_t x49 = x47 + x17;
- uint64_t x50 = (uint64_t) (x49 >> 0x31);
- uint64_t x51 = (uint64_t) x49 & 0x1ffffffffffff;
- uint64_t x52 = x27 + 0x11 * x50;
- uint64_t x53 = x52 >> 0x32;
- uint64_t x54 = x52 & 0x3ffffffffffff;
- uint64_t x55 = x53 + x30;
- uint64_t x56 = x55 >> 0x31;
- uint64_t x57 = x55 & 0x1ffffffffffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x15 = (((uint128_t)x2 * x13) + (((uint128_t)x4 * x14) + (((uint128_t)x6 * x12) + (((uint128_t)x8 * x10) + (((uint128_t)x10 * x8) + (((uint128_t)x12 * x6) + (((uint128_t)x14 * x4) + ((uint128_t)x13 * x2))))))));
+ uint128_t x16 = ((((uint128_t)x2 * x14) + ((0x2 * ((uint128_t)x4 * x12)) + (((uint128_t)x6 * x10) + ((0x2 * ((uint128_t)x8 * x8)) + (((uint128_t)x10 * x6) + ((0x2 * ((uint128_t)x12 * x4)) + ((uint128_t)x14 * x2))))))) + (0x11 * (0x2 * ((uint128_t)x13 * x13))));
+ uint128_t x17 = ((((uint128_t)x2 * x12) + (((uint128_t)x4 * x10) + (((uint128_t)x6 * x8) + (((uint128_t)x8 * x6) + (((uint128_t)x10 * x4) + ((uint128_t)x12 * x2)))))) + (0x11 * (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))));
+ uint128_t x18 = ((((uint128_t)x2 * x10) + ((0x2 * ((uint128_t)x4 * x8)) + (((uint128_t)x6 * x6) + ((0x2 * ((uint128_t)x8 * x4)) + ((uint128_t)x10 * x2))))) + (0x11 * ((0x2 * ((uint128_t)x12 * x13)) + (((uint128_t)x14 * x14) + (0x2 * ((uint128_t)x13 * x12))))));
+ uint128_t x19 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (0x11 * (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10))))));
+ uint128_t x20 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x11 * ((0x2 * ((uint128_t)x8 * x13)) + (((uint128_t)x10 * x14) + ((0x2 * ((uint128_t)x12 * x12)) + (((uint128_t)x14 * x10) + (0x2 * ((uint128_t)x13 * x8))))))));
+ uint128_t x21 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x11 * (((uint128_t)x6 * x13) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + ((uint128_t)x13 * x6))))))));
+ uint128_t x22 = (((uint128_t)x2 * x2) + (0x11 * ((0x2 * ((uint128_t)x4 * x13)) + (((uint128_t)x6 * x14) + ((0x2 * ((uint128_t)x8 * x12)) + (((uint128_t)x10 * x10) + ((0x2 * ((uint128_t)x12 * x8)) + (((uint128_t)x14 * x6) + (0x2 * ((uint128_t)x13 * x4))))))))));
+ uint64_t x23 = (uint64_t) (x22 >> 0x38);
+ uint64_t x24 = ((uint64_t)x22 & 0xffffffffffffff);
+ uint128_t x25 = (x23 + x21);
+ uint64_t x26 = (uint64_t) (x25 >> 0x37);
+ uint64_t x27 = ((uint64_t)x25 & 0x7fffffffffffff);
+ uint128_t x28 = (x26 + x20);
+ uint64_t x29 = (uint64_t) (x28 >> 0x38);
+ uint64_t x30 = ((uint64_t)x28 & 0xffffffffffffff);
+ uint128_t x31 = (x29 + x19);
+ uint64_t x32 = (uint64_t) (x31 >> 0x37);
+ uint64_t x33 = ((uint64_t)x31 & 0x7fffffffffffff);
+ uint128_t x34 = (x32 + x18);
+ uint64_t x35 = (uint64_t) (x34 >> 0x38);
+ uint64_t x36 = ((uint64_t)x34 & 0xffffffffffffff);
+ uint128_t x37 = (x35 + x17);
+ uint64_t x38 = (uint64_t) (x37 >> 0x37);
+ uint64_t x39 = ((uint64_t)x37 & 0x7fffffffffffff);
+ uint128_t x40 = (x38 + x16);
+ uint64_t x41 = (uint64_t) (x40 >> 0x38);
+ uint64_t x42 = ((uint64_t)x40 & 0xffffffffffffff);
+ uint128_t x43 = (x41 + x15);
+ uint64_t x44 = (uint64_t) (x43 >> 0x37);
+ uint64_t x45 = ((uint64_t)x43 & 0x7fffffffffffff);
+ uint64_t x46 = (x24 + (0x11 * x44));
+ uint64_t x47 = (x46 >> 0x38);
+ uint64_t x48 = (x46 & 0xffffffffffffff);
+ uint64_t x49 = (x47 + x27);
+ uint64_t x50 = (x49 >> 0x37);
+ uint64_t x51 = (x49 & 0x7fffffffffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e444m17/freezeDisplay.log b/src/Specific/solinas64_2e444m17/freezeDisplay.log
index cf3ac0ed1..025251dc8 100644
--- a/src/Specific/solinas64_2e444m17/freezeDisplay.log
+++ b/src/Specific/solinas64_2e444m17/freezeDisplay.log
@@ -1,35 +1,32 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffffffffef);
- uint64_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x19, Return x4, 0x1ffffffffffff);
- uint64_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x22, Return x6, 0x1ffffffffffff);
- uint64_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x3ffffffffffff);
- uint64_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x28, Return x10, 0x1ffffffffffff);
- uint64_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x12, 0x1ffffffffffff);
- uint64_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x34, Return x14, 0x3ffffffffffff);
- uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0x1ffffffffffff);
- uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0x1ffffffffffff);
- uint64_t x44 = (uint64_t)cmovznz(x43, 0x0, 0xffffffffffffffffL);
- uint64_t x45 = x44 & 0x3ffffffffffef;
- uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint64_t x49 = x44 & 0x1ffffffffffff;
- uint64_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint64_t x53 = x44 & 0x1ffffffffffff;
- uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint64_t x57 = x44 & 0x3ffffffffffff;
- uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint64_t x61 = x44 & 0x1ffffffffffff;
- uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint64_t x65 = x44 & 0x1ffffffffffff;
- uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint64_t x69 = x44 & 0x3ffffffffffff;
- uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint64_t x73 = x44 & 0x1ffffffffffff;
- uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint64_t x77 = x44 & 0x1ffffffffffff;
- uint64_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
- (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0xffffffffffffef);
+ uint64_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x17, Return x4, 0x7fffffffffffff);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x6, 0xffffffffffffff);
+ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x8, 0x7fffffffffffff);
+ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x10, 0xffffffffffffff);
+ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x12, 0x7fffffffffffff);
+ uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffffffffffff);
+ uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0x7fffffffffffff);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xffffffffffffef);
+ uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint64_t x44 = (x39 & 0x7fffffffffffff);
+ uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint64_t x48 = (x39 & 0xffffffffffffff);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint64_t x52 = (x39 & 0x7fffffffffffff);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint64_t x56 = (x39 & 0xffffffffffffff);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint64_t x60 = (x39 & 0x7fffffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint64_t x64 = (x39 & 0xffffffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint64_t x68 = (x39 & 0x7fffffffffffff);
+ uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e448m2e224m1/femulDisplay.log b/src/Specific/solinas64_2e448m2e224m1/femulDisplay.log
new file mode 100644
index 000000000..f2d1600ca
--- /dev/null
+++ b/src/Specific/solinas64_2e448m2e224m1/femulDisplay.log
@@ -0,0 +1,61 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint128_t x32 = (((uint128_t)(x11 + x16) * (x25 + x30)) - ((uint128_t)x11 * x25));
+ uint128_t x33 = ((((uint128_t)(x9 + x17) * (x25 + x30)) + ((uint128_t)(x11 + x16) * (x23 + x31))) - (((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)));
+ uint128_t x34 = ((((uint128_t)(x7 + x15) * (x25 + x30)) + (((uint128_t)(x9 + x17) * (x23 + x31)) + ((uint128_t)(x11 + x16) * (x21 + x29)))) - (((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21))));
+ uint128_t x35 = ((((uint128_t)(x5 + x13) * (x25 + x30)) + (((uint128_t)(x7 + x15) * (x23 + x31)) + (((uint128_t)(x9 + x17) * (x21 + x29)) + ((uint128_t)(x11 + x16) * (x19 + x27))))) - (((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))));
+ uint128_t x36 = ((((uint128_t)(x5 + x13) * (x23 + x31)) + (((uint128_t)(x7 + x15) * (x21 + x29)) + ((uint128_t)(x9 + x17) * (x19 + x27)))) - (((uint128_t)x5 * x23) + (((uint128_t)x7 * x21) + ((uint128_t)x9 * x19))));
+ uint128_t x37 = ((((uint128_t)(x5 + x13) * (x21 + x29)) + ((uint128_t)(x7 + x15) * (x19 + x27))) - (((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)));
+ uint128_t x38 = (((uint128_t)(x5 + x13) * (x19 + x27)) - ((uint128_t)x5 * x19));
+ uint128_t x39 = (((((uint128_t)x11 * x25) + ((uint128_t)x16 * x30)) + x36) + x32);
+ uint128_t x40 = ((((((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)) + (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))) + x37) + x33);
+ uint128_t x41 = ((((((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21))) + (((uint128_t)x15 * x30) + (((uint128_t)x17 * x31) + ((uint128_t)x16 * x29)))) + x38) + x34);
+ uint128_t x42 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))) + (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27)))));
+ uint128_t x43 = (((((uint128_t)x5 * x23) + (((uint128_t)x7 * x21) + ((uint128_t)x9 * x19))) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + ((uint128_t)x17 * x27)))) + x32);
+ uint128_t x44 = (((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (((uint128_t)x13 * x29) + ((uint128_t)x15 * x27))) + x33);
+ uint128_t x45 = ((((uint128_t)x5 * x19) + ((uint128_t)x13 * x27)) + x34);
+ uint64_t x46 = (uint64_t) (x42 >> 0x38);
+ uint64_t x47 = ((uint64_t)x42 & 0xffffffffffffff);
+ uint64_t x48 = (uint64_t) (x35 >> 0x38);
+ uint64_t x49 = ((uint64_t)x35 & 0xffffffffffffff);
+ uint128_t x50 = (((uint128_t)0x100000000000000 * x48) + x49);
+ uint64_t x51 = (uint64_t) (x50 >> 0x38);
+ uint64_t x52 = ((uint64_t)x50 & 0xffffffffffffff);
+ uint128_t x53 = ((x46 + x41) + x51);
+ uint64_t x54 = (uint64_t) (x53 >> 0x38);
+ uint64_t x55 = ((uint64_t)x53 & 0xffffffffffffff);
+ uint128_t x56 = (x45 + x51);
+ uint64_t x57 = (uint64_t) (x56 >> 0x38);
+ uint64_t x58 = ((uint64_t)x56 & 0xffffffffffffff);
+ uint128_t x59 = (x54 + x40);
+ uint64_t x60 = (uint64_t) (x59 >> 0x38);
+ uint64_t x61 = ((uint64_t)x59 & 0xffffffffffffff);
+ uint128_t x62 = (x57 + x44);
+ uint64_t x63 = (uint64_t) (x62 >> 0x38);
+ uint64_t x64 = ((uint64_t)x62 & 0xffffffffffffff);
+ uint128_t x65 = (x60 + x39);
+ uint64_t x66 = (uint64_t) (x65 >> 0x38);
+ uint64_t x67 = ((uint64_t)x65 & 0xffffffffffffff);
+ uint128_t x68 = (x63 + x43);
+ uint64_t x69 = (uint64_t) (x68 >> 0x38);
+ uint64_t x70 = ((uint64_t)x68 & 0xffffffffffffff);
+ uint64_t x71 = (x66 + x52);
+ uint64_t x72 = (x71 >> 0x38);
+ uint64_t x73 = (x71 & 0xffffffffffffff);
+ uint64_t x74 = (x69 + x47);
+ uint64_t x75 = (x74 >> 0x38);
+ uint64_t x76 = (x74 & 0xffffffffffffff);
+ uint64_t x77 = ((0x100000000000000 * x72) + x73);
+ uint64_t x78 = (x77 >> 0x38);
+ uint64_t x79 = (x77 & 0xffffffffffffff);
+ uint64_t x80 = ((x75 + x55) + x78);
+ uint64_t x81 = (x80 >> 0x38);
+ uint64_t x82 = (x80 & 0xffffffffffffff);
+ uint64_t x83 = (x58 + x78);
+ uint64_t x84 = (x83 >> 0x38);
+ uint64_t x85 = (x83 & 0xffffffffffffff);
+ return (Return x79, Return x67, (x81 + x61), Return x82, Return x76, Return x70, (x84 + x64), Return x85))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e448m2e224m1/fesquareDisplay.log b/src/Specific/solinas64_2e448m2e224m1/fesquareDisplay.log
new file mode 100644
index 000000000..786925670
--- /dev/null
+++ b/src/Specific/solinas64_2e448m2e224m1/fesquareDisplay.log
@@ -0,0 +1,61 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x15 = (((uint128_t)(x8 + x13) * (x8 + x13)) - ((uint128_t)x8 * x8));
+ uint128_t x16 = ((((uint128_t)(x6 + x14) * (x8 + x13)) + ((uint128_t)(x8 + x13) * (x6 + x14))) - (((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)));
+ uint128_t x17 = ((((uint128_t)(x4 + x12) * (x8 + x13)) + (((uint128_t)(x6 + x14) * (x6 + x14)) + ((uint128_t)(x8 + x13) * (x4 + x12)))) - (((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + ((uint128_t)x8 * x4))));
+ uint128_t x18 = ((((uint128_t)(x2 + x10) * (x8 + x13)) + (((uint128_t)(x4 + x12) * (x6 + x14)) + (((uint128_t)(x6 + x14) * (x4 + x12)) + ((uint128_t)(x8 + x13) * (x2 + x10))))) - (((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))));
+ uint128_t x19 = ((((uint128_t)(x2 + x10) * (x6 + x14)) + (((uint128_t)(x4 + x12) * (x4 + x12)) + ((uint128_t)(x6 + x14) * (x2 + x10)))) - (((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))));
+ uint128_t x20 = ((((uint128_t)(x2 + x10) * (x4 + x12)) + ((uint128_t)(x4 + x12) * (x2 + x10))) - (((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)));
+ uint128_t x21 = (((uint128_t)(x2 + x10) * (x2 + x10)) - ((uint128_t)x2 * x2));
+ uint128_t x22 = (((((uint128_t)x8 * x8) + ((uint128_t)x13 * x13)) + x19) + x15);
+ uint128_t x23 = ((((((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)) + (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))) + x20) + x16);
+ uint128_t x24 = ((((((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + ((uint128_t)x8 * x4))) + (((uint128_t)x12 * x13) + (((uint128_t)x14 * x14) + ((uint128_t)x13 * x12)))) + x21) + x17);
+ uint128_t x25 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10)))));
+ uint128_t x26 = (((((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + ((uint128_t)x14 * x10)))) + x15);
+ uint128_t x27 = (((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (((uint128_t)x10 * x12) + ((uint128_t)x12 * x10))) + x16);
+ uint128_t x28 = ((((uint128_t)x2 * x2) + ((uint128_t)x10 * x10)) + x17);
+ uint64_t x29 = (uint64_t) (x25 >> 0x38);
+ uint64_t x30 = ((uint64_t)x25 & 0xffffffffffffff);
+ uint64_t x31 = (uint64_t) (x18 >> 0x38);
+ uint64_t x32 = ((uint64_t)x18 & 0xffffffffffffff);
+ uint128_t x33 = (((uint128_t)0x100000000000000 * x31) + x32);
+ uint64_t x34 = (uint64_t) (x33 >> 0x38);
+ uint64_t x35 = ((uint64_t)x33 & 0xffffffffffffff);
+ uint128_t x36 = ((x29 + x24) + x34);
+ uint64_t x37 = (uint64_t) (x36 >> 0x38);
+ uint64_t x38 = ((uint64_t)x36 & 0xffffffffffffff);
+ uint128_t x39 = (x28 + x34);
+ uint64_t x40 = (uint64_t) (x39 >> 0x38);
+ uint64_t x41 = ((uint64_t)x39 & 0xffffffffffffff);
+ uint128_t x42 = (x37 + x23);
+ uint64_t x43 = (uint64_t) (x42 >> 0x38);
+ uint64_t x44 = ((uint64_t)x42 & 0xffffffffffffff);
+ uint128_t x45 = (x40 + x27);
+ uint64_t x46 = (uint64_t) (x45 >> 0x38);
+ uint64_t x47 = ((uint64_t)x45 & 0xffffffffffffff);
+ uint128_t x48 = (x43 + x22);
+ uint64_t x49 = (uint64_t) (x48 >> 0x38);
+ uint64_t x50 = ((uint64_t)x48 & 0xffffffffffffff);
+ uint128_t x51 = (x46 + x26);
+ uint64_t x52 = (uint64_t) (x51 >> 0x38);
+ uint64_t x53 = ((uint64_t)x51 & 0xffffffffffffff);
+ uint64_t x54 = (x49 + x35);
+ uint64_t x55 = (x54 >> 0x38);
+ uint64_t x56 = (x54 & 0xffffffffffffff);
+ uint64_t x57 = (x52 + x30);
+ uint64_t x58 = (x57 >> 0x38);
+ uint64_t x59 = (x57 & 0xffffffffffffff);
+ uint64_t x60 = ((0x100000000000000 * x55) + x56);
+ uint64_t x61 = (x60 >> 0x38);
+ uint64_t x62 = (x60 & 0xffffffffffffff);
+ uint64_t x63 = ((x58 + x38) + x61);
+ uint64_t x64 = (x63 >> 0x38);
+ uint64_t x65 = (x63 & 0xffffffffffffff);
+ uint64_t x66 = (x41 + x61);
+ uint64_t x67 = (x66 >> 0x38);
+ uint64_t x68 = (x66 & 0xffffffffffffff);
+ return (Return x62, Return x50, (x64 + x44), Return x65, Return x59, Return x53, (x67 + x47), Return x68))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e448m2e224m1/freezeDisplay.log b/src/Specific/solinas64_2e448m2e224m1/freezeDisplay.log
index 9107c95f3..0a0474d75 100644
--- a/src/Specific/solinas64_2e448m2e224m1/freezeDisplay.log
+++ b/src/Specific/solinas64_2e448m2e224m1/freezeDisplay.log
@@ -11,21 +11,21 @@ Interp-η
uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffffffffffff);
uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xffffffffffffff);
uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
- uint64_t x40 = x39 & 0xffffffffffffff;
+ uint64_t x40 = (x39 & 0xffffffffffffff);
uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
- uint64_t x44 = x39 & 0xffffffffffffff;
+ uint64_t x44 = (x39 & 0xffffffffffffff);
uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
- uint64_t x48 = x39 & 0xffffffffffffff;
+ uint64_t x48 = (x39 & 0xffffffffffffff);
uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
- uint64_t x52 = x39 & 0xffffffffffffff;
+ uint64_t x52 = (x39 & 0xffffffffffffff);
uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
- uint64_t x56 = x39 & 0xfffffffffffffe;
+ uint64_t x56 = (x39 & 0xfffffffffffffe);
uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
- uint64_t x60 = x39 & 0xffffffffffffff;
+ uint64_t x60 = (x39 & 0xffffffffffffff);
uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
- uint64_t x64 = x39 & 0xffffffffffffff;
+ uint64_t x64 = (x39 & 0xffffffffffffff);
uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
- uint64_t x68 = x39 & 0xffffffffffffff;
+ uint64_t x68 = (x39 & 0xffffffffffffff);
uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
(Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
diff --git a/src/Specific/solinas64_2e450m2e225m1/femulDisplay.log b/src/Specific/solinas64_2e450m2e225m1/femulDisplay.log
new file mode 100644
index 000000000..70250e4ef
--- /dev/null
+++ b/src/Specific/solinas64_2e450m2e225m1/femulDisplay.log
@@ -0,0 +1,61 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint128_t x32 = (((uint128_t)(x11 + x16) * (x25 + x30)) - ((uint128_t)x11 * x25));
+ uint128_t x33 = ((((uint128_t)(x9 + x17) * (x25 + x30)) + ((uint128_t)(x11 + x16) * (x23 + x31))) - (((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)));
+ uint128_t x34 = (((0x2 * ((uint128_t)(x7 + x15) * (x25 + x30))) + ((0x2 * ((uint128_t)(x9 + x17) * (x23 + x31))) + (0x2 * ((uint128_t)(x11 + x16) * (x21 + x29))))) - ((0x2 * ((uint128_t)x7 * x25)) + ((0x2 * ((uint128_t)x9 * x23)) + (0x2 * ((uint128_t)x11 * x21)))));
+ uint128_t x35 = ((((uint128_t)(x5 + x13) * (x25 + x30)) + ((0x2 * ((uint128_t)(x7 + x15) * (x23 + x31))) + ((0x2 * ((uint128_t)(x9 + x17) * (x21 + x29))) + ((uint128_t)(x11 + x16) * (x19 + x27))))) - (((uint128_t)x5 * x25) + ((0x2 * ((uint128_t)x7 * x23)) + ((0x2 * ((uint128_t)x9 * x21)) + ((uint128_t)x11 * x19)))));
+ uint128_t x36 = ((((uint128_t)(x5 + x13) * (x23 + x31)) + ((0x2 * ((uint128_t)(x7 + x15) * (x21 + x29))) + ((uint128_t)(x9 + x17) * (x19 + x27)))) - (((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((uint128_t)x9 * x19))));
+ uint128_t x37 = ((((uint128_t)(x5 + x13) * (x21 + x29)) + ((uint128_t)(x7 + x15) * (x19 + x27))) - (((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)));
+ uint128_t x38 = (((uint128_t)(x5 + x13) * (x19 + x27)) - ((uint128_t)x5 * x19));
+ uint128_t x39 = (((((uint128_t)x11 * x25) + ((uint128_t)x16 * x30)) + x36) + x32);
+ uint128_t x40 = ((((((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)) + (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))) + x37) + x33);
+ uint128_t x41 = (((((0x2 * ((uint128_t)x7 * x25)) + ((0x2 * ((uint128_t)x9 * x23)) + (0x2 * ((uint128_t)x11 * x21)))) + ((0x2 * ((uint128_t)x15 * x30)) + ((0x2 * ((uint128_t)x17 * x31)) + (0x2 * ((uint128_t)x16 * x29))))) + x38) + x34);
+ uint128_t x42 = ((((uint128_t)x5 * x25) + ((0x2 * ((uint128_t)x7 * x23)) + ((0x2 * ((uint128_t)x9 * x21)) + ((uint128_t)x11 * x19)))) + (((uint128_t)x13 * x30) + ((0x2 * ((uint128_t)x15 * x31)) + ((0x2 * ((uint128_t)x17 * x29)) + ((uint128_t)x16 * x27)))));
+ uint128_t x43 = (((((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((uint128_t)x9 * x19))) + (((uint128_t)x13 * x31) + ((0x2 * ((uint128_t)x15 * x29)) + ((uint128_t)x17 * x27)))) + x32);
+ uint128_t x44 = (((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (((uint128_t)x13 * x29) + ((uint128_t)x15 * x27))) + x33);
+ uint128_t x45 = ((((uint128_t)x5 * x19) + ((uint128_t)x13 * x27)) + x34);
+ uint64_t x46 = (uint64_t) (x42 >> 0x38);
+ uint64_t x47 = ((uint64_t)x42 & 0xffffffffffffff);
+ uint64_t x48 = (uint64_t) (x35 >> 0x38);
+ uint64_t x49 = ((uint64_t)x35 & 0xffffffffffffff);
+ uint128_t x50 = (((uint128_t)0x100000000000000 * x48) + x49);
+ uint64_t x51 = (uint64_t) (x50 >> 0x38);
+ uint64_t x52 = ((uint64_t)x50 & 0xffffffffffffff);
+ uint128_t x53 = ((x46 + x41) + x51);
+ uint64_t x54 = (uint64_t) (x53 >> 0x39);
+ uint64_t x55 = ((uint64_t)x53 & 0x1ffffffffffffff);
+ uint128_t x56 = (x45 + x51);
+ uint64_t x57 = (uint64_t) (x56 >> 0x39);
+ uint64_t x58 = ((uint64_t)x56 & 0x1ffffffffffffff);
+ uint128_t x59 = (x54 + x40);
+ uint64_t x60 = (uint64_t) (x59 >> 0x38);
+ uint64_t x61 = ((uint64_t)x59 & 0xffffffffffffff);
+ uint128_t x62 = (x57 + x44);
+ uint64_t x63 = (uint64_t) (x62 >> 0x38);
+ uint64_t x64 = ((uint64_t)x62 & 0xffffffffffffff);
+ uint128_t x65 = (x60 + x39);
+ uint64_t x66 = (uint64_t) (x65 >> 0x38);
+ uint64_t x67 = ((uint64_t)x65 & 0xffffffffffffff);
+ uint128_t x68 = (x63 + x43);
+ uint64_t x69 = (uint64_t) (x68 >> 0x38);
+ uint64_t x70 = ((uint64_t)x68 & 0xffffffffffffff);
+ uint64_t x71 = (x66 + x52);
+ uint64_t x72 = (x71 >> 0x38);
+ uint64_t x73 = (x71 & 0xffffffffffffff);
+ uint64_t x74 = (x69 + x47);
+ uint64_t x75 = (x74 >> 0x38);
+ uint64_t x76 = (x74 & 0xffffffffffffff);
+ uint64_t x77 = ((0x100000000000000 * x72) + x73);
+ uint64_t x78 = (x77 >> 0x38);
+ uint64_t x79 = (x77 & 0xffffffffffffff);
+ uint64_t x80 = ((x75 + x55) + x78);
+ uint64_t x81 = (x80 >> 0x39);
+ uint64_t x82 = (x80 & 0x1ffffffffffffff);
+ uint64_t x83 = (x58 + x78);
+ uint64_t x84 = (x83 >> 0x39);
+ uint64_t x85 = (x83 & 0x1ffffffffffffff);
+ return (Return x79, Return x67, (x81 + x61), Return x82, Return x76, Return x70, (x84 + x64), Return x85))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e450m2e225m1/fesquareDisplay.log b/src/Specific/solinas64_2e450m2e225m1/fesquareDisplay.log
new file mode 100644
index 000000000..754f87eda
--- /dev/null
+++ b/src/Specific/solinas64_2e450m2e225m1/fesquareDisplay.log
@@ -0,0 +1,61 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x15 = (((uint128_t)(x8 + x13) * (x8 + x13)) - ((uint128_t)x8 * x8));
+ uint128_t x16 = ((((uint128_t)(x6 + x14) * (x8 + x13)) + ((uint128_t)(x8 + x13) * (x6 + x14))) - (((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)));
+ uint128_t x17 = (((0x2 * ((uint128_t)(x4 + x12) * (x8 + x13))) + ((0x2 * ((uint128_t)(x6 + x14) * (x6 + x14))) + (0x2 * ((uint128_t)(x8 + x13) * (x4 + x12))))) - ((0x2 * ((uint128_t)x4 * x8)) + ((0x2 * ((uint128_t)x6 * x6)) + (0x2 * ((uint128_t)x8 * x4)))));
+ uint128_t x18 = ((((uint128_t)(x2 + x10) * (x8 + x13)) + ((0x2 * ((uint128_t)(x4 + x12) * (x6 + x14))) + ((0x2 * ((uint128_t)(x6 + x14) * (x4 + x12))) + ((uint128_t)(x8 + x13) * (x2 + x10))))) - (((uint128_t)x2 * x8) + ((0x2 * ((uint128_t)x4 * x6)) + ((0x2 * ((uint128_t)x6 * x4)) + ((uint128_t)x8 * x2)))));
+ uint128_t x19 = ((((uint128_t)(x2 + x10) * (x6 + x14)) + ((0x2 * ((uint128_t)(x4 + x12) * (x4 + x12))) + ((uint128_t)(x6 + x14) * (x2 + x10)))) - (((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))));
+ uint128_t x20 = ((((uint128_t)(x2 + x10) * (x4 + x12)) + ((uint128_t)(x4 + x12) * (x2 + x10))) - (((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)));
+ uint128_t x21 = (((uint128_t)(x2 + x10) * (x2 + x10)) - ((uint128_t)x2 * x2));
+ uint128_t x22 = (((((uint128_t)x8 * x8) + ((uint128_t)x13 * x13)) + x19) + x15);
+ uint128_t x23 = ((((((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)) + (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))) + x20) + x16);
+ uint128_t x24 = (((((0x2 * ((uint128_t)x4 * x8)) + ((0x2 * ((uint128_t)x6 * x6)) + (0x2 * ((uint128_t)x8 * x4)))) + ((0x2 * ((uint128_t)x12 * x13)) + ((0x2 * ((uint128_t)x14 * x14)) + (0x2 * ((uint128_t)x13 * x12))))) + x21) + x17);
+ uint128_t x25 = ((((uint128_t)x2 * x8) + ((0x2 * ((uint128_t)x4 * x6)) + ((0x2 * ((uint128_t)x6 * x4)) + ((uint128_t)x8 * x2)))) + (((uint128_t)x10 * x13) + ((0x2 * ((uint128_t)x12 * x14)) + ((0x2 * ((uint128_t)x14 * x12)) + ((uint128_t)x13 * x10)))));
+ uint128_t x26 = (((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (((uint128_t)x10 * x14) + ((0x2 * ((uint128_t)x12 * x12)) + ((uint128_t)x14 * x10)))) + x15);
+ uint128_t x27 = (((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (((uint128_t)x10 * x12) + ((uint128_t)x12 * x10))) + x16);
+ uint128_t x28 = ((((uint128_t)x2 * x2) + ((uint128_t)x10 * x10)) + x17);
+ uint64_t x29 = (uint64_t) (x25 >> 0x38);
+ uint64_t x30 = ((uint64_t)x25 & 0xffffffffffffff);
+ uint64_t x31 = (uint64_t) (x18 >> 0x38);
+ uint64_t x32 = ((uint64_t)x18 & 0xffffffffffffff);
+ uint128_t x33 = (((uint128_t)0x100000000000000 * x31) + x32);
+ uint64_t x34 = (uint64_t) (x33 >> 0x38);
+ uint64_t x35 = ((uint64_t)x33 & 0xffffffffffffff);
+ uint128_t x36 = ((x29 + x24) + x34);
+ uint64_t x37 = (uint64_t) (x36 >> 0x39);
+ uint64_t x38 = ((uint64_t)x36 & 0x1ffffffffffffff);
+ uint128_t x39 = (x28 + x34);
+ uint64_t x40 = (uint64_t) (x39 >> 0x39);
+ uint64_t x41 = ((uint64_t)x39 & 0x1ffffffffffffff);
+ uint128_t x42 = (x37 + x23);
+ uint64_t x43 = (uint64_t) (x42 >> 0x38);
+ uint64_t x44 = ((uint64_t)x42 & 0xffffffffffffff);
+ uint128_t x45 = (x40 + x27);
+ uint64_t x46 = (uint64_t) (x45 >> 0x38);
+ uint64_t x47 = ((uint64_t)x45 & 0xffffffffffffff);
+ uint128_t x48 = (x43 + x22);
+ uint64_t x49 = (uint64_t) (x48 >> 0x38);
+ uint64_t x50 = ((uint64_t)x48 & 0xffffffffffffff);
+ uint128_t x51 = (x46 + x26);
+ uint64_t x52 = (uint64_t) (x51 >> 0x38);
+ uint64_t x53 = ((uint64_t)x51 & 0xffffffffffffff);
+ uint64_t x54 = (x49 + x35);
+ uint64_t x55 = (x54 >> 0x38);
+ uint64_t x56 = (x54 & 0xffffffffffffff);
+ uint64_t x57 = (x52 + x30);
+ uint64_t x58 = (x57 >> 0x38);
+ uint64_t x59 = (x57 & 0xffffffffffffff);
+ uint64_t x60 = ((0x100000000000000 * x55) + x56);
+ uint64_t x61 = (x60 >> 0x38);
+ uint64_t x62 = (x60 & 0xffffffffffffff);
+ uint64_t x63 = ((x58 + x38) + x61);
+ uint64_t x64 = (x63 >> 0x39);
+ uint64_t x65 = (x63 & 0x1ffffffffffffff);
+ uint64_t x66 = (x41 + x61);
+ uint64_t x67 = (x66 >> 0x39);
+ uint64_t x68 = (x66 & 0x1ffffffffffffff);
+ return (Return x62, Return x50, (x64 + x44), Return x65, Return x59, Return x53, (x67 + x47), Return x68))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e450m2e225m1/freezeDisplay.log b/src/Specific/solinas64_2e450m2e225m1/freezeDisplay.log
index 9f6e9b962..b9084313e 100644
--- a/src/Specific/solinas64_2e450m2e225m1/freezeDisplay.log
+++ b/src/Specific/solinas64_2e450m2e225m1/freezeDisplay.log
@@ -1,35 +1,32 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffffffffff);
- uint64_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x19, Return x4, 0x3ffffffffffff);
- uint64_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x22, Return x6, 0x3ffffffffffff);
- uint64_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x3ffffffffffff);
- uint64_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x28, Return x10, 0x3fffffdffffff);
- uint64_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x12, 0x3ffffffffffff);
- uint64_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x34, Return x14, 0x3ffffffffffff);
- uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0x3ffffffffffff);
- uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0x3ffffffffffff);
- uint64_t x44 = (uint64_t)cmovznz(x43, 0x0, 0xffffffffffffffffL);
- uint64_t x45 = x44 & 0x3ffffffffffff;
- uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint64_t x49 = x44 & 0x3ffffffffffff;
- uint64_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint64_t x53 = x44 & 0x3ffffffffffff;
- uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint64_t x57 = x44 & 0x3ffffffffffff;
- uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint64_t x61 = x44 & 0x3fffffdffffff;
- uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint64_t x65 = x44 & 0x3ffffffffffff;
- uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint64_t x69 = x44 & 0x3ffffffffffff;
- uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint64_t x73 = x44 & 0x3ffffffffffff;
- uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint64_t x77 = x44 & 0x3ffffffffffff;
- uint64_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
- (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffffffffffff);
+ uint64_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x17, Return x4, 0xffffffffffffff);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x6, 0xffffffffffffff);
+ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x8, 0xffffffffffffff);
+ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x10, 0x1fffffffffffffe);
+ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x12, 0xffffffffffffff);
+ uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xffffffffffffff);
+ uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xffffffffffffff);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0x1ffffffffffffff);
+ uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint64_t x44 = (x39 & 0xffffffffffffff);
+ uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint64_t x48 = (x39 & 0xffffffffffffff);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint64_t x52 = (x39 & 0xffffffffffffff);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint64_t x56 = (x39 & 0x1fffffffffffffe);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint64_t x60 = (x39 & 0xffffffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint64_t x64 = (x39 & 0xffffffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint64_t x68 = (x39 & 0xffffffffffffff);
+ uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e452m3/femulDisplay.log b/src/Specific/solinas64_2e452m3/femulDisplay.log
index 11443af92..dbb264596 100644
--- a/src/Specific/solinas64_2e452m3/femulDisplay.log
+++ b/src/Specific/solinas64_2e452m3/femulDisplay.log
@@ -1,52 +1,44 @@
-λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x x0 : 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,
- uint128_t x40 = (uint128_t) x5 * x38 + (0x2 * ((uint128_t) x7 * x39) + (0x2 * ((uint128_t) x9 * x37) + (0x2 * ((uint128_t) x11 * x35) + ((uint128_t) x13 * x33 + ((uint128_t) x15 * x31 + (0x2 * ((uint128_t) x17 * x29) + (0x2 * ((uint128_t) x19 * x27) + (0x2 * ((uint128_t) x21 * x25) + (uint128_t) x20 * x23))))))));
- uint128_t x41 = (uint128_t) x5 * x39 + (0x2 * ((uint128_t) x7 * x37) + (0x2 * ((uint128_t) x9 * x35) + ((uint128_t) x11 * x33 + ((uint128_t) x13 * x31 + ((uint128_t) x15 * x29 + (0x2 * ((uint128_t) x17 * x27) + (0x2 * ((uint128_t) x19 * x25) + (uint128_t) x21 * x23))))))) + 0x3 * ((uint128_t) x20 * x38);
- uint128_t x42 = (uint128_t) x5 * x37 + (0x2 * ((uint128_t) x7 * x35) + ((uint128_t) x9 * x33 + ((uint128_t) x11 * x31 + ((uint128_t) x13 * x29 + ((uint128_t) x15 * x27 + (0x2 * ((uint128_t) x17 * x25) + (uint128_t) x19 * x23)))))) + 0x3 * ((uint128_t) x21 * x38 + (uint128_t) x20 * x39);
- uint128_t x43 = (uint128_t) x5 * x35 + ((uint128_t) x7 * x33 + ((uint128_t) x9 * x31 + ((uint128_t) x11 * x29 + ((uint128_t) x13 * x27 + ((uint128_t) x15 * x25 + (uint128_t) x17 * x23))))) + 0x3 * ((uint128_t) x19 * x38 + ((uint128_t) x21 * x39 + (uint128_t) x20 * x37));
- uint128_t x44 = (uint128_t) x5 * x33 + (0x2 * ((uint128_t) x7 * x31) + (0x2 * ((uint128_t) x9 * x29) + (0x2 * ((uint128_t) x11 * x27) + (0x2 * ((uint128_t) x13 * x25) + (uint128_t) x15 * x23)))) + 0x3 * (0x2 * ((uint128_t) x17 * x38) + (0x2 * ((uint128_t) x19 * x39) + (0x2 * ((uint128_t) x21 * x37) + 0x2 * ((uint128_t) x20 * x35))));
- uint128_t x45 = (uint128_t) x5 * x31 + (0x2 * ((uint128_t) x7 * x29) + (0x2 * ((uint128_t) x9 * x27) + (0x2 * ((uint128_t) x11 * x25) + (uint128_t) x13 * x23))) + 0x3 * ((uint128_t) x15 * x38 + (0x2 * ((uint128_t) x17 * x39) + (0x2 * ((uint128_t) x19 * x37) + (0x2 * ((uint128_t) x21 * x35) + (uint128_t) x20 * x33))));
- uint128_t x46 = (uint128_t) x5 * x29 + (0x2 * ((uint128_t) x7 * x27) + (0x2 * ((uint128_t) x9 * x25) + (uint128_t) x11 * x23)) + 0x3 * ((uint128_t) x13 * x38 + ((uint128_t) x15 * x39 + (0x2 * ((uint128_t) x17 * x37) + (0x2 * ((uint128_t) x19 * x35) + ((uint128_t) x21 * x33 + (uint128_t) x20 * x31)))));
- uint128_t x47 = (uint128_t) x5 * x27 + (0x2 * ((uint128_t) x7 * x25) + (uint128_t) x9 * x23) + 0x3 * ((uint128_t) x11 * x38 + ((uint128_t) x13 * x39 + ((uint128_t) x15 * x37 + (0x2 * ((uint128_t) x17 * x35) + ((uint128_t) x19 * x33 + ((uint128_t) x21 * x31 + (uint128_t) x20 * x29))))));
- uint128_t x48 = (uint128_t) x5 * x25 + (uint128_t) x7 * x23 + 0x3 * ((uint128_t) x9 * x38 + ((uint128_t) x11 * x39 + ((uint128_t) x13 * x37 + ((uint128_t) x15 * x35 + ((uint128_t) x17 * x33 + ((uint128_t) x19 * x31 + ((uint128_t) x21 * x29 + (uint128_t) x20 * x27)))))));
- uint128_t x49 = (uint128_t) x5 * x23 + 0x3 * (0x2 * ((uint128_t) x7 * x38) + (0x2 * ((uint128_t) x9 * x39) + (0x2 * ((uint128_t) x11 * x37) + (0x2 * ((uint128_t) x13 * x35) + ((uint128_t) x15 * x33 + (0x2 * ((uint128_t) x17 * x31) + (0x2 * ((uint128_t) x19 * x29) + (0x2 * ((uint128_t) x21 * x27) + 0x2 * ((uint128_t) x20 * x25)))))))));
- uint64_t x50 = (uint64_t) (x49 >> 0x2e);
- uint64_t x51 = (uint64_t) x49 & 0x3fffffffffff;
- uint128_t x52 = x50 + x48;
- uint64_t x53 = (uint64_t) (x52 >> 0x2d);
- uint64_t x54 = (uint64_t) x52 & 0x1fffffffffff;
- uint128_t x55 = x53 + x47;
- uint64_t x56 = (uint64_t) (x55 >> 0x2d);
- uint64_t x57 = (uint64_t) x55 & 0x1fffffffffff;
- uint128_t x58 = x56 + x46;
- uint64_t x59 = (uint64_t) (x58 >> 0x2d);
- uint64_t x60 = (uint64_t) x58 & 0x1fffffffffff;
- uint128_t x61 = x59 + x45;
- uint64_t x62 = (uint64_t) (x61 >> 0x2d);
- uint64_t x63 = (uint64_t) x61 & 0x1fffffffffff;
- uint128_t x64 = x62 + x44;
- uint64_t x65 = (uint64_t) (x64 >> 0x2e);
- uint64_t x66 = (uint64_t) x64 & 0x3fffffffffff;
- uint128_t x67 = x65 + x43;
- uint64_t x68 = (uint64_t) (x67 >> 0x2d);
- uint64_t x69 = (uint64_t) x67 & 0x1fffffffffff;
- uint128_t x70 = x68 + x42;
- uint64_t x71 = (uint64_t) (x70 >> 0x2d);
- uint64_t x72 = (uint64_t) x70 & 0x1fffffffffff;
- uint128_t x73 = x71 + x41;
- uint64_t x74 = (uint64_t) (x73 >> 0x2d);
- uint64_t x75 = (uint64_t) x73 & 0x1fffffffffff;
- uint128_t x76 = x74 + x40;
- uint64_t x77 = (uint64_t) (x76 >> 0x2d);
- uint64_t x78 = (uint64_t) x76 & 0x1fffffffffff;
- uint64_t x79 = x51 + 0x3 * x77;
- uint64_t x80 = x79 >> 0x2e;
- uint64_t x81 = x79 & 0x3fffffffffff;
- uint64_t x82 = x80 + x54;
- uint64_t x83 = x82 >> 0x2d;
- uint64_t x84 = x82 & 0x1fffffffffff;
- return (Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, x83 + x57, Return x84, Return x81))
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint128_t x32 = (((uint128_t)x5 * x30) + (((uint128_t)x7 * x31) + (((uint128_t)x9 * x29) + (((uint128_t)x11 * x27) + (((uint128_t)x13 * x25) + (((uint128_t)x15 * x23) + (((uint128_t)x17 * x21) + ((uint128_t)x16 * x19))))))));
+ uint128_t x33 = ((((uint128_t)x5 * x31) + ((0x2 * ((uint128_t)x7 * x29)) + (((uint128_t)x9 * x27) + ((0x2 * ((uint128_t)x11 * x25)) + (((uint128_t)x13 * x23) + ((0x2 * ((uint128_t)x15 * x21)) + ((uint128_t)x17 * x19))))))) + (0x3 * (0x2 * ((uint128_t)x16 * x30))));
+ uint128_t x34 = ((((uint128_t)x5 * x29) + (((uint128_t)x7 * x27) + (((uint128_t)x9 * x25) + (((uint128_t)x11 * x23) + (((uint128_t)x13 * x21) + ((uint128_t)x15 * x19)))))) + (0x3 * (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))));
+ uint128_t x35 = ((((uint128_t)x5 * x27) + ((0x2 * ((uint128_t)x7 * x25)) + (((uint128_t)x9 * x23) + ((0x2 * ((uint128_t)x11 * x21)) + ((uint128_t)x13 * x19))))) + (0x3 * ((0x2 * ((uint128_t)x15 * x30)) + (((uint128_t)x17 * x31) + (0x2 * ((uint128_t)x16 * x29))))));
+ uint128_t x36 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))) + (0x3 * (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27))))));
+ uint128_t x37 = ((((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((uint128_t)x9 * x19))) + (0x3 * ((0x2 * ((uint128_t)x11 * x30)) + (((uint128_t)x13 * x31) + ((0x2 * ((uint128_t)x15 * x29)) + (((uint128_t)x17 * x27) + (0x2 * ((uint128_t)x16 * x25))))))));
+ uint128_t x38 = ((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (0x3 * (((uint128_t)x9 * x30) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + ((uint128_t)x16 * x23))))))));
+ uint128_t x39 = (((uint128_t)x5 * x19) + (0x3 * ((0x2 * ((uint128_t)x7 * x30)) + (((uint128_t)x9 * x31) + ((0x2 * ((uint128_t)x11 * x29)) + (((uint128_t)x13 * x27) + ((0x2 * ((uint128_t)x15 * x25)) + (((uint128_t)x17 * x23) + (0x2 * ((uint128_t)x16 * x21))))))))));
+ uint64_t x40 = (uint64_t) (x39 >> 0x39);
+ uint64_t x41 = ((uint64_t)x39 & 0x1ffffffffffffff);
+ uint128_t x42 = (x40 + x38);
+ uint64_t x43 = (uint64_t) (x42 >> 0x38);
+ uint64_t x44 = ((uint64_t)x42 & 0xffffffffffffff);
+ uint128_t x45 = (x43 + x37);
+ uint64_t x46 = (uint64_t) (x45 >> 0x39);
+ uint64_t x47 = ((uint64_t)x45 & 0x1ffffffffffffff);
+ uint128_t x48 = (x46 + x36);
+ uint64_t x49 = (uint64_t) (x48 >> 0x38);
+ uint64_t x50 = ((uint64_t)x48 & 0xffffffffffffff);
+ uint128_t x51 = (x49 + x35);
+ uint64_t x52 = (uint64_t) (x51 >> 0x39);
+ uint64_t x53 = ((uint64_t)x51 & 0x1ffffffffffffff);
+ uint128_t x54 = (x52 + x34);
+ uint64_t x55 = (uint64_t) (x54 >> 0x38);
+ uint64_t x56 = ((uint64_t)x54 & 0xffffffffffffff);
+ uint128_t x57 = (x55 + x33);
+ uint64_t x58 = (uint64_t) (x57 >> 0x39);
+ uint64_t x59 = ((uint64_t)x57 & 0x1ffffffffffffff);
+ uint128_t x60 = (x58 + x32);
+ uint64_t x61 = (uint64_t) (x60 >> 0x38);
+ uint64_t x62 = ((uint64_t)x60 & 0xffffffffffffff);
+ uint64_t x63 = (x41 + (0x3 * x61));
+ uint64_t x64 = (x63 >> 0x39);
+ uint64_t x65 = (x63 & 0x1ffffffffffffff);
+ uint64_t x66 = (x64 + x44);
+ uint64_t x67 = (x66 >> 0x38);
+ uint64_t x68 = (x66 & 0xffffffffffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e452m3/fesquareDisplay.log b/src/Specific/solinas64_2e452m3/fesquareDisplay.log
index 388d7e543..ca50a633b 100644
--- a/src/Specific/solinas64_2e452m3/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e452m3/fesquareDisplay.log
@@ -1,52 +1,44 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x19 = (uint128_t) x2 * x17 + (0x2 * ((uint128_t) x4 * x18) + (0x2 * ((uint128_t) x6 * x16) + (0x2 * ((uint128_t) x8 * x14) + ((uint128_t) x10 * x12 + ((uint128_t) x12 * x10 + (0x2 * ((uint128_t) x14 * x8) + (0x2 * ((uint128_t) x16 * x6) + (0x2 * ((uint128_t) x18 * x4) + (uint128_t) x17 * x2))))))));
- uint128_t x20 = (uint128_t) x2 * x18 + (0x2 * ((uint128_t) x4 * x16) + (0x2 * ((uint128_t) x6 * x14) + ((uint128_t) x8 * x12 + ((uint128_t) x10 * x10 + ((uint128_t) x12 * x8 + (0x2 * ((uint128_t) x14 * x6) + (0x2 * ((uint128_t) x16 * x4) + (uint128_t) x18 * x2))))))) + 0x3 * ((uint128_t) x17 * x17);
- uint128_t x21 = (uint128_t) x2 * x16 + (0x2 * ((uint128_t) x4 * x14) + ((uint128_t) x6 * x12 + ((uint128_t) x8 * x10 + ((uint128_t) x10 * x8 + ((uint128_t) x12 * x6 + (0x2 * ((uint128_t) x14 * x4) + (uint128_t) x16 * x2)))))) + 0x3 * ((uint128_t) x18 * x17 + (uint128_t) x17 * x18);
- uint128_t x22 = (uint128_t) x2 * x14 + ((uint128_t) x4 * x12 + ((uint128_t) x6 * x10 + ((uint128_t) x8 * x8 + ((uint128_t) x10 * x6 + ((uint128_t) x12 * x4 + (uint128_t) x14 * x2))))) + 0x3 * ((uint128_t) x16 * x17 + ((uint128_t) x18 * x18 + (uint128_t) x17 * x16));
- uint128_t x23 = (uint128_t) x2 * x12 + (0x2 * ((uint128_t) x4 * x10) + (0x2 * ((uint128_t) x6 * x8) + (0x2 * ((uint128_t) x8 * x6) + (0x2 * ((uint128_t) x10 * x4) + (uint128_t) x12 * x2)))) + 0x3 * (0x2 * ((uint128_t) x14 * x17) + (0x2 * ((uint128_t) x16 * x18) + (0x2 * ((uint128_t) x18 * x16) + 0x2 * ((uint128_t) x17 * x14))));
- uint128_t x24 = (uint128_t) x2 * x10 + (0x2 * ((uint128_t) x4 * x8) + (0x2 * ((uint128_t) x6 * x6) + (0x2 * ((uint128_t) x8 * x4) + (uint128_t) x10 * x2))) + 0x3 * ((uint128_t) x12 * x17 + (0x2 * ((uint128_t) x14 * x18) + (0x2 * ((uint128_t) x16 * x16) + (0x2 * ((uint128_t) x18 * x14) + (uint128_t) x17 * x12))));
- uint128_t x25 = (uint128_t) x2 * x8 + (0x2 * ((uint128_t) x4 * x6) + (0x2 * ((uint128_t) x6 * x4) + (uint128_t) x8 * x2)) + 0x3 * ((uint128_t) x10 * x17 + ((uint128_t) x12 * x18 + (0x2 * ((uint128_t) x14 * x16) + (0x2 * ((uint128_t) x16 * x14) + ((uint128_t) x18 * x12 + (uint128_t) x17 * x10)))));
- uint128_t x26 = (uint128_t) x2 * x6 + (0x2 * ((uint128_t) x4 * x4) + (uint128_t) x6 * x2) + 0x3 * ((uint128_t) x8 * x17 + ((uint128_t) x10 * x18 + ((uint128_t) x12 * x16 + (0x2 * ((uint128_t) x14 * x14) + ((uint128_t) x16 * x12 + ((uint128_t) x18 * x10 + (uint128_t) x17 * x8))))));
- uint128_t x27 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x3 * ((uint128_t) x6 * x17 + ((uint128_t) x8 * x18 + ((uint128_t) x10 * x16 + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + ((uint128_t) x16 * x10 + ((uint128_t) x18 * x8 + (uint128_t) x17 * x6)))))));
- uint128_t x28 = (uint128_t) x2 * x2 + 0x3 * (0x2 * ((uint128_t) x4 * x17) + (0x2 * ((uint128_t) x6 * x18) + (0x2 * ((uint128_t) x8 * x16) + (0x2 * ((uint128_t) x10 * x14) + ((uint128_t) x12 * x12 + (0x2 * ((uint128_t) x14 * x10) + (0x2 * ((uint128_t) x16 * x8) + (0x2 * ((uint128_t) x18 * x6) + 0x2 * ((uint128_t) x17 * x4)))))))));
- uint64_t x29 = (uint64_t) (x28 >> 0x2e);
- uint64_t x30 = (uint64_t) x28 & 0x3fffffffffff;
- uint128_t x31 = x29 + x27;
- uint64_t x32 = (uint64_t) (x31 >> 0x2d);
- uint64_t x33 = (uint64_t) x31 & 0x1fffffffffff;
- uint128_t x34 = x32 + x26;
- uint64_t x35 = (uint64_t) (x34 >> 0x2d);
- uint64_t x36 = (uint64_t) x34 & 0x1fffffffffff;
- uint128_t x37 = x35 + x25;
- uint64_t x38 = (uint64_t) (x37 >> 0x2d);
- uint64_t x39 = (uint64_t) x37 & 0x1fffffffffff;
- uint128_t x40 = x38 + x24;
- uint64_t x41 = (uint64_t) (x40 >> 0x2d);
- uint64_t x42 = (uint64_t) x40 & 0x1fffffffffff;
- uint128_t x43 = x41 + x23;
- uint64_t x44 = (uint64_t) (x43 >> 0x2e);
- uint64_t x45 = (uint64_t) x43 & 0x3fffffffffff;
- uint128_t x46 = x44 + x22;
- uint64_t x47 = (uint64_t) (x46 >> 0x2d);
- uint64_t x48 = (uint64_t) x46 & 0x1fffffffffff;
- uint128_t x49 = x47 + x21;
- uint64_t x50 = (uint64_t) (x49 >> 0x2d);
- uint64_t x51 = (uint64_t) x49 & 0x1fffffffffff;
- uint128_t x52 = x50 + x20;
- uint64_t x53 = (uint64_t) (x52 >> 0x2d);
- uint64_t x54 = (uint64_t) x52 & 0x1fffffffffff;
- uint128_t x55 = x53 + x19;
- uint64_t x56 = (uint64_t) (x55 >> 0x2d);
- uint64_t x57 = (uint64_t) x55 & 0x1fffffffffff;
- uint64_t x58 = x30 + 0x3 * x56;
- uint64_t x59 = x58 >> 0x2e;
- uint64_t x60 = x58 & 0x3fffffffffff;
- uint64_t x61 = x59 + x33;
- uint64_t x62 = x61 >> 0x2d;
- uint64_t x63 = x61 & 0x1fffffffffff;
- return (Return x57, Return x54, Return x51, Return x48, Return x45, Return x42, Return x39, x62 + x36, Return x63, Return x60))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x15 = (((uint128_t)x2 * x13) + (((uint128_t)x4 * x14) + (((uint128_t)x6 * x12) + (((uint128_t)x8 * x10) + (((uint128_t)x10 * x8) + (((uint128_t)x12 * x6) + (((uint128_t)x14 * x4) + ((uint128_t)x13 * x2))))))));
+ uint128_t x16 = ((((uint128_t)x2 * x14) + ((0x2 * ((uint128_t)x4 * x12)) + (((uint128_t)x6 * x10) + ((0x2 * ((uint128_t)x8 * x8)) + (((uint128_t)x10 * x6) + ((0x2 * ((uint128_t)x12 * x4)) + ((uint128_t)x14 * x2))))))) + (0x3 * (0x2 * ((uint128_t)x13 * x13))));
+ uint128_t x17 = ((((uint128_t)x2 * x12) + (((uint128_t)x4 * x10) + (((uint128_t)x6 * x8) + (((uint128_t)x8 * x6) + (((uint128_t)x10 * x4) + ((uint128_t)x12 * x2)))))) + (0x3 * (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))));
+ uint128_t x18 = ((((uint128_t)x2 * x10) + ((0x2 * ((uint128_t)x4 * x8)) + (((uint128_t)x6 * x6) + ((0x2 * ((uint128_t)x8 * x4)) + ((uint128_t)x10 * x2))))) + (0x3 * ((0x2 * ((uint128_t)x12 * x13)) + (((uint128_t)x14 * x14) + (0x2 * ((uint128_t)x13 * x12))))));
+ uint128_t x19 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (0x3 * (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10))))));
+ uint128_t x20 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x3 * ((0x2 * ((uint128_t)x8 * x13)) + (((uint128_t)x10 * x14) + ((0x2 * ((uint128_t)x12 * x12)) + (((uint128_t)x14 * x10) + (0x2 * ((uint128_t)x13 * x8))))))));
+ uint128_t x21 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x3 * (((uint128_t)x6 * x13) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + ((uint128_t)x13 * x6))))))));
+ uint128_t x22 = (((uint128_t)x2 * x2) + (0x3 * ((0x2 * ((uint128_t)x4 * x13)) + (((uint128_t)x6 * x14) + ((0x2 * ((uint128_t)x8 * x12)) + (((uint128_t)x10 * x10) + ((0x2 * ((uint128_t)x12 * x8)) + (((uint128_t)x14 * x6) + (0x2 * ((uint128_t)x13 * x4))))))))));
+ uint64_t x23 = (uint64_t) (x22 >> 0x39);
+ uint64_t x24 = ((uint64_t)x22 & 0x1ffffffffffffff);
+ uint128_t x25 = (x23 + x21);
+ uint64_t x26 = (uint64_t) (x25 >> 0x38);
+ uint64_t x27 = ((uint64_t)x25 & 0xffffffffffffff);
+ uint128_t x28 = (x26 + x20);
+ uint64_t x29 = (uint64_t) (x28 >> 0x39);
+ uint64_t x30 = ((uint64_t)x28 & 0x1ffffffffffffff);
+ uint128_t x31 = (x29 + x19);
+ uint64_t x32 = (uint64_t) (x31 >> 0x38);
+ uint64_t x33 = ((uint64_t)x31 & 0xffffffffffffff);
+ uint128_t x34 = (x32 + x18);
+ uint64_t x35 = (uint64_t) (x34 >> 0x39);
+ uint64_t x36 = ((uint64_t)x34 & 0x1ffffffffffffff);
+ uint128_t x37 = (x35 + x17);
+ uint64_t x38 = (uint64_t) (x37 >> 0x38);
+ uint64_t x39 = ((uint64_t)x37 & 0xffffffffffffff);
+ uint128_t x40 = (x38 + x16);
+ uint64_t x41 = (uint64_t) (x40 >> 0x39);
+ uint64_t x42 = ((uint64_t)x40 & 0x1ffffffffffffff);
+ uint128_t x43 = (x41 + x15);
+ uint64_t x44 = (uint64_t) (x43 >> 0x38);
+ uint64_t x45 = ((uint64_t)x43 & 0xffffffffffffff);
+ uint64_t x46 = (x24 + (0x3 * x44));
+ uint64_t x47 = (x46 >> 0x39);
+ uint64_t x48 = (x46 & 0x1ffffffffffffff);
+ uint64_t x49 = (x47 + x27);
+ uint64_t x50 = (x49 >> 0x38);
+ uint64_t x51 = (x49 & 0xffffffffffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e452m3/freezeDisplay.log b/src/Specific/solinas64_2e452m3/freezeDisplay.log
index 2e945b38b..65a0d09a1 100644
--- a/src/Specific/solinas64_2e452m3/freezeDisplay.log
+++ b/src/Specific/solinas64_2e452m3/freezeDisplay.log
@@ -1,38 +1,32 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffffffffd);
- uint64_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x21, Return x4, 0x1fffffffffff);
- uint64_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x24, Return x6, 0x1fffffffffff);
- uint64_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x27, Return x8, 0x1fffffffffff);
- uint64_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x30, Return x10, 0x1fffffffffff);
- uint64_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x33, Return x12, 0x3fffffffffff);
- uint64_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x36, Return x14, 0x1fffffffffff);
- uint64_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x39, Return x16, 0x1fffffffffff);
- uint64_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x42, Return x18, 0x1fffffffffff);
- uint64_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x45, Return x17, 0x1fffffffffff);
- uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
- uint64_t x50 = x49 & 0x3ffffffffffd;
- uint64_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
- uint64_t x54 = x49 & 0x1fffffffffff;
- uint64_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
- uint64_t x58 = x49 & 0x1fffffffffff;
- uint64_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x57, Return x26, Return x58);
- uint64_t x62 = x49 & 0x1fffffffffff;
- uint64_t x64, uint8_t x65 = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x61, Return x29, Return x62);
- uint64_t x66 = x49 & 0x1fffffffffff;
- uint64_t x68, uint8_t x69 = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x65, Return x32, Return x66);
- uint64_t x70 = x49 & 0x3fffffffffff;
- uint64_t x72, uint8_t x73 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x69, Return x35, Return x70);
- uint64_t x74 = x49 & 0x1fffffffffff;
- uint64_t x76, uint8_t x77 = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x73, Return x38, Return x74);
- uint64_t x78 = x49 & 0x1fffffffffff;
- uint64_t x80, uint8_t x81 = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x77, Return x41, Return x78);
- uint64_t x82 = x49 & 0x1fffffffffff;
- uint64_t x84, uint8_t x85 = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x81, Return x44, Return x82);
- uint64_t x86 = x49 & 0x1fffffffffff;
- uint64_t x88, uint8_t _ = Op (Syntax.AddWithGetCarry 45 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x85, Return x47, Return x86);
- (Return x88, Return x84, Return x80, Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x1fffffffffffffd);
+ uint64_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x17, Return x4, 0xffffffffffffff);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x6, 0x1ffffffffffffff);
+ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x8, 0xffffffffffffff);
+ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x10, 0x1ffffffffffffff);
+ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x12, 0xffffffffffffff);
+ uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0x1ffffffffffffff);
+ uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xffffffffffffff);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0x1fffffffffffffd);
+ uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint64_t x44 = (x39 & 0xffffffffffffff);
+ uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint64_t x48 = (x39 & 0x1ffffffffffffff);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint64_t x52 = (x39 & 0xffffffffffffff);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint64_t x56 = (x39 & 0x1ffffffffffffff);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint64_t x60 = (x39 & 0xffffffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint64_t x64 = (x39 & 0x1ffffffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 57 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint64_t x68 = (x39 & 0xffffffffffffff);
+ uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 56 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e468m17/femulDisplay.log b/src/Specific/solinas64_2e468m17/femulDisplay.log
index 772b3449f..2c0aac97c 100644
--- a/src/Specific/solinas64_2e468m17/femulDisplay.log
+++ b/src/Specific/solinas64_2e468m17/femulDisplay.log
@@ -1,48 +1,44 @@
-λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
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,
- uint128_t x36 = (uint128_t) x5 * x34 + ((uint128_t) x7 * x35 + ((uint128_t) x9 * x33 + ((uint128_t) x11 * x31 + ((uint128_t) x13 * x29 + ((uint128_t) x15 * x27 + ((uint128_t) x17 * x25 + ((uint128_t) x19 * x23 + (uint128_t) x18 * x21)))))));
- uint128_t x37 = (uint128_t) x5 * x35 + ((uint128_t) x7 * x33 + ((uint128_t) x9 * x31 + ((uint128_t) x11 * x29 + ((uint128_t) x13 * x27 + ((uint128_t) x15 * x25 + ((uint128_t) x17 * x23 + (uint128_t) x19 * x21)))))) + 0x11 * ((uint128_t) x18 * x34);
- uint128_t x38 = (uint128_t) x5 * x33 + ((uint128_t) x7 * x31 + ((uint128_t) x9 * x29 + ((uint128_t) x11 * x27 + ((uint128_t) x13 * x25 + ((uint128_t) x15 * x23 + (uint128_t) x17 * x21))))) + 0x11 * ((uint128_t) x19 * x34 + (uint128_t) x18 * x35);
- uint128_t x39 = (uint128_t) x5 * x31 + ((uint128_t) x7 * x29 + ((uint128_t) x9 * x27 + ((uint128_t) x11 * x25 + ((uint128_t) x13 * x23 + (uint128_t) x15 * x21)))) + 0x11 * ((uint128_t) x17 * x34 + ((uint128_t) x19 * x35 + (uint128_t) x18 * x33));
- uint128_t x40 = (uint128_t) x5 * x29 + ((uint128_t) x7 * x27 + ((uint128_t) x9 * x25 + ((uint128_t) x11 * x23 + (uint128_t) x13 * x21))) + 0x11 * ((uint128_t) x15 * x34 + ((uint128_t) x17 * x35 + ((uint128_t) x19 * x33 + (uint128_t) x18 * x31)));
- uint128_t x41 = (uint128_t) x5 * x27 + ((uint128_t) x7 * x25 + ((uint128_t) x9 * x23 + (uint128_t) x11 * x21)) + 0x11 * ((uint128_t) x13 * x34 + ((uint128_t) x15 * x35 + ((uint128_t) x17 * x33 + ((uint128_t) x19 * x31 + (uint128_t) x18 * x29))));
- uint128_t x42 = (uint128_t) x5 * x25 + ((uint128_t) x7 * x23 + (uint128_t) x9 * x21) + 0x11 * ((uint128_t) x11 * x34 + ((uint128_t) x13 * x35 + ((uint128_t) x15 * x33 + ((uint128_t) x17 * x31 + ((uint128_t) x19 * x29 + (uint128_t) x18 * x27)))));
- uint128_t x43 = (uint128_t) x5 * x23 + (uint128_t) x7 * x21 + 0x11 * ((uint128_t) x9 * x34 + ((uint128_t) x11 * x35 + ((uint128_t) x13 * x33 + ((uint128_t) x15 * x31 + ((uint128_t) x17 * x29 + ((uint128_t) x19 * x27 + (uint128_t) x18 * x25))))));
- uint128_t x44 = (uint128_t) x5 * x21 + 0x11 * ((uint128_t) x7 * x34 + ((uint128_t) x9 * x35 + ((uint128_t) x11 * x33 + ((uint128_t) x13 * x31 + ((uint128_t) x15 * x29 + ((uint128_t) x17 * x27 + ((uint128_t) x19 * x25 + (uint128_t) x18 * x23)))))));
- uint64_t x45 = (uint64_t) (x44 >> 0x34);
- uint64_t x46 = (uint64_t) x44 & 0xfffffffffffff;
- uint128_t x47 = x45 + x43;
- uint64_t x48 = (uint64_t) (x47 >> 0x34);
- uint64_t x49 = (uint64_t) x47 & 0xfffffffffffff;
- uint128_t x50 = x48 + x42;
- uint64_t x51 = (uint64_t) (x50 >> 0x34);
- uint64_t x52 = (uint64_t) x50 & 0xfffffffffffff;
- uint128_t x53 = x51 + x41;
- uint64_t x54 = (uint64_t) (x53 >> 0x34);
- uint64_t x55 = (uint64_t) x53 & 0xfffffffffffff;
- uint128_t x56 = x54 + x40;
- uint64_t x57 = (uint64_t) (x56 >> 0x34);
- uint64_t x58 = (uint64_t) x56 & 0xfffffffffffff;
- uint128_t x59 = x57 + x39;
- uint64_t x60 = (uint64_t) (x59 >> 0x34);
- uint64_t x61 = (uint64_t) x59 & 0xfffffffffffff;
- uint128_t x62 = x60 + x38;
- uint64_t x63 = (uint64_t) (x62 >> 0x34);
- uint64_t x64 = (uint64_t) x62 & 0xfffffffffffff;
- uint128_t x65 = x63 + x37;
- uint64_t x66 = (uint64_t) (x65 >> 0x34);
- uint64_t x67 = (uint64_t) x65 & 0xfffffffffffff;
- uint128_t x68 = x66 + x36;
- uint64_t x69 = (uint64_t) (x68 >> 0x34);
- uint64_t x70 = (uint64_t) x68 & 0xfffffffffffff;
- uint64_t x71 = x46 + 0x11 * x69;
- uint64_t x72 = x71 >> 0x34;
- uint64_t x73 = x71 & 0xfffffffffffff;
- uint64_t x74 = x72 + x49;
- uint64_t x75 = x74 >> 0x34;
- uint64_t x76 = x74 & 0xfffffffffffff;
- return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, x75 + x52, Return x76, Return x73))
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint128_t x32 = (((uint128_t)x5 * x30) + (((uint128_t)x7 * x31) + (((uint128_t)x9 * x29) + (((uint128_t)x11 * x27) + (((uint128_t)x13 * x25) + (((uint128_t)x15 * x23) + (((uint128_t)x17 * x21) + ((uint128_t)x16 * x19))))))));
+ uint128_t x33 = ((((uint128_t)x5 * x31) + ((0x2 * ((uint128_t)x7 * x29)) + (((uint128_t)x9 * x27) + ((0x2 * ((uint128_t)x11 * x25)) + (((uint128_t)x13 * x23) + ((0x2 * ((uint128_t)x15 * x21)) + ((uint128_t)x17 * x19))))))) + (0x11 * (0x2 * ((uint128_t)x16 * x30))));
+ uint128_t x34 = ((((uint128_t)x5 * x29) + (((uint128_t)x7 * x27) + (((uint128_t)x9 * x25) + (((uint128_t)x11 * x23) + (((uint128_t)x13 * x21) + ((uint128_t)x15 * x19)))))) + (0x11 * (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))));
+ uint128_t x35 = ((((uint128_t)x5 * x27) + ((0x2 * ((uint128_t)x7 * x25)) + (((uint128_t)x9 * x23) + ((0x2 * ((uint128_t)x11 * x21)) + ((uint128_t)x13 * x19))))) + (0x11 * ((0x2 * ((uint128_t)x15 * x30)) + (((uint128_t)x17 * x31) + (0x2 * ((uint128_t)x16 * x29))))));
+ uint128_t x36 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))) + (0x11 * (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27))))));
+ uint128_t x37 = ((((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((uint128_t)x9 * x19))) + (0x11 * ((0x2 * ((uint128_t)x11 * x30)) + (((uint128_t)x13 * x31) + ((0x2 * ((uint128_t)x15 * x29)) + (((uint128_t)x17 * x27) + (0x2 * ((uint128_t)x16 * x25))))))));
+ uint128_t x38 = ((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (0x11 * (((uint128_t)x9 * x30) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + ((uint128_t)x16 * x23))))))));
+ uint128_t x39 = (((uint128_t)x5 * x19) + (0x11 * ((0x2 * ((uint128_t)x7 * x30)) + (((uint128_t)x9 * x31) + ((0x2 * ((uint128_t)x11 * x29)) + (((uint128_t)x13 * x27) + ((0x2 * ((uint128_t)x15 * x25)) + (((uint128_t)x17 * x23) + (0x2 * ((uint128_t)x16 * x21))))))))));
+ uint128_t x40 = (x39 >> 0x3b);
+ uint64_t x41 = ((uint64_t)x39 & 0x7ffffffffffffff);
+ uint128_t x42 = (x40 + x38);
+ uint128_t x43 = (x42 >> 0x3a);
+ uint64_t x44 = ((uint64_t)x42 & 0x3ffffffffffffff);
+ uint128_t x45 = (x43 + x37);
+ uint128_t x46 = (x45 >> 0x3b);
+ uint64_t x47 = ((uint64_t)x45 & 0x7ffffffffffffff);
+ uint128_t x48 = (x46 + x36);
+ uint128_t x49 = (x48 >> 0x3a);
+ uint64_t x50 = ((uint64_t)x48 & 0x3ffffffffffffff);
+ uint128_t x51 = (x49 + x35);
+ uint128_t x52 = (x51 >> 0x3b);
+ uint64_t x53 = ((uint64_t)x51 & 0x7ffffffffffffff);
+ uint128_t x54 = (x52 + x34);
+ uint128_t x55 = (x54 >> 0x3a);
+ uint64_t x56 = ((uint64_t)x54 & 0x3ffffffffffffff);
+ uint128_t x57 = (x55 + x33);
+ uint64_t x58 = (uint64_t) (x57 >> 0x3b);
+ uint64_t x59 = ((uint64_t)x57 & 0x7ffffffffffffff);
+ uint128_t x60 = (x58 + x32);
+ uint64_t x61 = (uint64_t) (x60 >> 0x3a);
+ uint64_t x62 = ((uint64_t)x60 & 0x3ffffffffffffff);
+ uint128_t x63 = (x41 + ((uint128_t)0x11 * x61));
+ uint64_t x64 = (uint64_t) (x63 >> 0x3b);
+ uint64_t x65 = ((uint64_t)x63 & 0x7ffffffffffffff);
+ uint64_t x66 = (x64 + x44);
+ uint64_t x67 = (x66 >> 0x3a);
+ uint64_t x68 = (x66 & 0x3ffffffffffffff);
+ return (Return x62, Return x59, Return x56, Return x53, Return x50, (x67 + x47), Return x68, Return x65))
(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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e468m17/fesquareDisplay.log b/src/Specific/solinas64_2e468m17/fesquareDisplay.log
index 30c0490bb..017b9eb6c 100644
--- a/src/Specific/solinas64_2e468m17/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e468m17/fesquareDisplay.log
@@ -1,48 +1,44 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x17 = (uint128_t) x2 * x15 + ((uint128_t) x4 * x16 + ((uint128_t) x6 * x14 + ((uint128_t) x8 * x12 + ((uint128_t) x10 * x10 + ((uint128_t) x12 * x8 + ((uint128_t) x14 * x6 + ((uint128_t) x16 * x4 + (uint128_t) x15 * x2)))))));
- uint128_t x18 = (uint128_t) x2 * x16 + ((uint128_t) x4 * x14 + ((uint128_t) x6 * x12 + ((uint128_t) x8 * x10 + ((uint128_t) x10 * x8 + ((uint128_t) x12 * x6 + ((uint128_t) x14 * x4 + (uint128_t) x16 * x2)))))) + 0x11 * ((uint128_t) x15 * x15);
- uint128_t x19 = (uint128_t) x2 * x14 + ((uint128_t) x4 * x12 + ((uint128_t) x6 * x10 + ((uint128_t) x8 * x8 + ((uint128_t) x10 * x6 + ((uint128_t) x12 * x4 + (uint128_t) x14 * x2))))) + 0x11 * ((uint128_t) x16 * x15 + (uint128_t) x15 * x16);
- uint128_t x20 = (uint128_t) x2 * x12 + ((uint128_t) x4 * x10 + ((uint128_t) x6 * x8 + ((uint128_t) x8 * x6 + ((uint128_t) x10 * x4 + (uint128_t) x12 * x2)))) + 0x11 * ((uint128_t) x14 * x15 + ((uint128_t) x16 * x16 + (uint128_t) x15 * x14));
- uint128_t x21 = (uint128_t) x2 * x10 + ((uint128_t) x4 * x8 + ((uint128_t) x6 * x6 + ((uint128_t) x8 * x4 + (uint128_t) x10 * x2))) + 0x11 * ((uint128_t) x12 * x15 + ((uint128_t) x14 * x16 + ((uint128_t) x16 * x14 + (uint128_t) x15 * x12)));
- uint128_t x22 = (uint128_t) x2 * x8 + ((uint128_t) x4 * x6 + ((uint128_t) x6 * x4 + (uint128_t) x8 * x2)) + 0x11 * ((uint128_t) x10 * x15 + ((uint128_t) x12 * x16 + ((uint128_t) x14 * x14 + ((uint128_t) x16 * x12 + (uint128_t) x15 * x10))));
- uint128_t x23 = (uint128_t) x2 * x6 + ((uint128_t) x4 * x4 + (uint128_t) x6 * x2) + 0x11 * ((uint128_t) x8 * x15 + ((uint128_t) x10 * x16 + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + ((uint128_t) x16 * x10 + (uint128_t) x15 * x8)))));
- uint128_t x24 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x11 * ((uint128_t) x6 * x15 + ((uint128_t) x8 * x16 + ((uint128_t) x10 * x14 + ((uint128_t) x12 * x12 + ((uint128_t) x14 * x10 + ((uint128_t) x16 * x8 + (uint128_t) x15 * x6))))));
- uint128_t x25 = (uint128_t) x2 * x2 + 0x11 * ((uint128_t) x4 * x15 + ((uint128_t) x6 * x16 + ((uint128_t) x8 * x14 + ((uint128_t) x10 * x12 + ((uint128_t) x12 * x10 + ((uint128_t) x14 * x8 + ((uint128_t) x16 * x6 + (uint128_t) x15 * x4)))))));
- uint64_t x26 = (uint64_t) (x25 >> 0x34);
- uint64_t x27 = (uint64_t) x25 & 0xfffffffffffff;
- uint128_t x28 = x26 + x24;
- uint64_t x29 = (uint64_t) (x28 >> 0x34);
- uint64_t x30 = (uint64_t) x28 & 0xfffffffffffff;
- uint128_t x31 = x29 + x23;
- uint64_t x32 = (uint64_t) (x31 >> 0x34);
- uint64_t x33 = (uint64_t) x31 & 0xfffffffffffff;
- uint128_t x34 = x32 + x22;
- uint64_t x35 = (uint64_t) (x34 >> 0x34);
- uint64_t x36 = (uint64_t) x34 & 0xfffffffffffff;
- uint128_t x37 = x35 + x21;
- uint64_t x38 = (uint64_t) (x37 >> 0x34);
- uint64_t x39 = (uint64_t) x37 & 0xfffffffffffff;
- uint128_t x40 = x38 + x20;
- uint64_t x41 = (uint64_t) (x40 >> 0x34);
- uint64_t x42 = (uint64_t) x40 & 0xfffffffffffff;
- uint128_t x43 = x41 + x19;
- uint64_t x44 = (uint64_t) (x43 >> 0x34);
- uint64_t x45 = (uint64_t) x43 & 0xfffffffffffff;
- uint128_t x46 = x44 + x18;
- uint64_t x47 = (uint64_t) (x46 >> 0x34);
- uint64_t x48 = (uint64_t) x46 & 0xfffffffffffff;
- uint128_t x49 = x47 + x17;
- uint64_t x50 = (uint64_t) (x49 >> 0x34);
- uint64_t x51 = (uint64_t) x49 & 0xfffffffffffff;
- uint64_t x52 = x27 + 0x11 * x50;
- uint64_t x53 = x52 >> 0x34;
- uint64_t x54 = x52 & 0xfffffffffffff;
- uint64_t x55 = x53 + x30;
- uint64_t x56 = x55 >> 0x34;
- uint64_t x57 = x55 & 0xfffffffffffff;
- return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, x56 + x33, Return x57, Return x54))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x15 = (((uint128_t)x2 * x13) + (((uint128_t)x4 * x14) + (((uint128_t)x6 * x12) + (((uint128_t)x8 * x10) + (((uint128_t)x10 * x8) + (((uint128_t)x12 * x6) + (((uint128_t)x14 * x4) + ((uint128_t)x13 * x2))))))));
+ uint128_t x16 = ((((uint128_t)x2 * x14) + ((0x2 * ((uint128_t)x4 * x12)) + (((uint128_t)x6 * x10) + ((0x2 * ((uint128_t)x8 * x8)) + (((uint128_t)x10 * x6) + ((0x2 * ((uint128_t)x12 * x4)) + ((uint128_t)x14 * x2))))))) + (0x11 * (0x2 * ((uint128_t)x13 * x13))));
+ uint128_t x17 = ((((uint128_t)x2 * x12) + (((uint128_t)x4 * x10) + (((uint128_t)x6 * x8) + (((uint128_t)x8 * x6) + (((uint128_t)x10 * x4) + ((uint128_t)x12 * x2)))))) + (0x11 * (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))));
+ uint128_t x18 = ((((uint128_t)x2 * x10) + ((0x2 * ((uint128_t)x4 * x8)) + (((uint128_t)x6 * x6) + ((0x2 * ((uint128_t)x8 * x4)) + ((uint128_t)x10 * x2))))) + (0x11 * ((0x2 * ((uint128_t)x12 * x13)) + (((uint128_t)x14 * x14) + (0x2 * ((uint128_t)x13 * x12))))));
+ uint128_t x19 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (0x11 * (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10))))));
+ uint128_t x20 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x11 * ((0x2 * ((uint128_t)x8 * x13)) + (((uint128_t)x10 * x14) + ((0x2 * ((uint128_t)x12 * x12)) + (((uint128_t)x14 * x10) + (0x2 * ((uint128_t)x13 * x8))))))));
+ uint128_t x21 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x11 * (((uint128_t)x6 * x13) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + ((uint128_t)x13 * x6))))))));
+ uint128_t x22 = (((uint128_t)x2 * x2) + (0x11 * ((0x2 * ((uint128_t)x4 * x13)) + (((uint128_t)x6 * x14) + ((0x2 * ((uint128_t)x8 * x12)) + (((uint128_t)x10 * x10) + ((0x2 * ((uint128_t)x12 * x8)) + (((uint128_t)x14 * x6) + (0x2 * ((uint128_t)x13 * x4))))))))));
+ uint128_t x23 = (x22 >> 0x3b);
+ uint64_t x24 = ((uint64_t)x22 & 0x7ffffffffffffff);
+ uint128_t x25 = (x23 + x21);
+ uint128_t x26 = (x25 >> 0x3a);
+ uint64_t x27 = ((uint64_t)x25 & 0x3ffffffffffffff);
+ uint128_t x28 = (x26 + x20);
+ uint128_t x29 = (x28 >> 0x3b);
+ uint64_t x30 = ((uint64_t)x28 & 0x7ffffffffffffff);
+ uint128_t x31 = (x29 + x19);
+ uint128_t x32 = (x31 >> 0x3a);
+ uint64_t x33 = ((uint64_t)x31 & 0x3ffffffffffffff);
+ uint128_t x34 = (x32 + x18);
+ uint128_t x35 = (x34 >> 0x3b);
+ uint64_t x36 = ((uint64_t)x34 & 0x7ffffffffffffff);
+ uint128_t x37 = (x35 + x17);
+ uint128_t x38 = (x37 >> 0x3a);
+ uint64_t x39 = ((uint64_t)x37 & 0x3ffffffffffffff);
+ uint128_t x40 = (x38 + x16);
+ uint64_t x41 = (uint64_t) (x40 >> 0x3b);
+ uint64_t x42 = ((uint64_t)x40 & 0x7ffffffffffffff);
+ uint128_t x43 = (x41 + x15);
+ uint64_t x44 = (uint64_t) (x43 >> 0x3a);
+ uint64_t x45 = ((uint64_t)x43 & 0x3ffffffffffffff);
+ uint128_t x46 = (x24 + ((uint128_t)0x11 * x44));
+ uint64_t x47 = (uint64_t) (x46 >> 0x3b);
+ uint64_t x48 = ((uint64_t)x46 & 0x7ffffffffffffff);
+ uint64_t x49 = (x47 + x27);
+ uint64_t x50 = (x49 >> 0x3a);
+ uint64_t x51 = (x49 & 0x3ffffffffffffff);
+ return (Return x45, Return x42, Return x39, Return x36, Return x33, (x50 + x30), Return x51, Return x48))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e468m17/freezeDisplay.log b/src/Specific/solinas64_2e468m17/freezeDisplay.log
index 23c7559e2..e4c29b54b 100644
--- a/src/Specific/solinas64_2e468m17/freezeDisplay.log
+++ b/src/Specific/solinas64_2e468m17/freezeDisplay.log
@@ -1,35 +1,32 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0xfffffffffffef);
- uint64_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x19, Return x4, 0xfffffffffffff);
- uint64_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x22, Return x6, 0xfffffffffffff);
- uint64_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0xfffffffffffff);
- uint64_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x28, Return x10, 0xfffffffffffff);
- uint64_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x12, 0xfffffffffffff);
- uint64_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x34, Return x14, 0xfffffffffffff);
- uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0xfffffffffffff);
- uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0xfffffffffffff);
- uint64_t x44 = (uint64_t)cmovznz(x43, 0x0, 0xffffffffffffffffL);
- uint64_t x45 = x44 & 0xfffffffffffef;
- uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint64_t x49 = x44 & 0xfffffffffffff;
- uint64_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint64_t x53 = x44 & 0xfffffffffffff;
- uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint64_t x57 = x44 & 0xfffffffffffff;
- uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint64_t x61 = x44 & 0xfffffffffffff;
- uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint64_t x65 = x44 & 0xfffffffffffff;
- uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint64_t x69 = x44 & 0xfffffffffffff;
- uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint64_t x73 = x44 & 0xfffffffffffff;
- uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint64_t x77 = x44 & 0xfffffffffffff;
- uint64_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
- (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffffffffffef);
+ uint64_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x17, Return x4, 0x3ffffffffffffff);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x6, 0x7ffffffffffffff);
+ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x8, 0x3ffffffffffffff);
+ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x10, 0x7ffffffffffffff);
+ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x12, 0x3ffffffffffffff);
+ uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0x7ffffffffffffff);
+ uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0x3ffffffffffffff);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0x7ffffffffffffef);
+ uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint64_t x44 = (x39 & 0x3ffffffffffffff);
+ uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint64_t x48 = (x39 & 0x7ffffffffffffff);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint64_t x52 = (x39 & 0x3ffffffffffffff);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint64_t x56 = (x39 & 0x7ffffffffffffff);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint64_t x60 = (x39 & 0x3ffffffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint64_t x64 = (x39 & 0x7ffffffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 59 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint64_t x68 = (x39 & 0x3ffffffffffffff);
+ uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 58 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e480m2e240m1/femulDisplay.log b/src/Specific/solinas64_2e480m2e240m1/femulDisplay.log
new file mode 100644
index 000000000..53996de7f
--- /dev/null
+++ b/src/Specific/solinas64_2e480m2e240m1/femulDisplay.log
@@ -0,0 +1,61 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
+ uint128_t x32 = (((uint128_t)(x11 + x16) * (x25 + x30)) - ((uint128_t)x11 * x25));
+ uint128_t x33 = ((((uint128_t)(x9 + x17) * (x25 + x30)) + ((uint128_t)(x11 + x16) * (x23 + x31))) - (((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)));
+ uint128_t x34 = ((((uint128_t)(x7 + x15) * (x25 + x30)) + (((uint128_t)(x9 + x17) * (x23 + x31)) + ((uint128_t)(x11 + x16) * (x21 + x29)))) - (((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21))));
+ uint128_t x35 = ((((uint128_t)(x5 + x13) * (x25 + x30)) + (((uint128_t)(x7 + x15) * (x23 + x31)) + (((uint128_t)(x9 + x17) * (x21 + x29)) + ((uint128_t)(x11 + x16) * (x19 + x27))))) - (((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))));
+ uint128_t x36 = ((((uint128_t)(x5 + x13) * (x23 + x31)) + (((uint128_t)(x7 + x15) * (x21 + x29)) + ((uint128_t)(x9 + x17) * (x19 + x27)))) - (((uint128_t)x5 * x23) + (((uint128_t)x7 * x21) + ((uint128_t)x9 * x19))));
+ uint128_t x37 = ((((uint128_t)(x5 + x13) * (x21 + x29)) + ((uint128_t)(x7 + x15) * (x19 + x27))) - (((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)));
+ uint128_t x38 = (((uint128_t)(x5 + x13) * (x19 + x27)) - ((uint128_t)x5 * x19));
+ uint128_t x39 = (((((uint128_t)x11 * x25) + ((uint128_t)x16 * x30)) + x36) + x32);
+ uint128_t x40 = ((((((uint128_t)x9 * x25) + ((uint128_t)x11 * x23)) + (((uint128_t)x17 * x30) + ((uint128_t)x16 * x31))) + x37) + x33);
+ uint128_t x41 = ((((((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21))) + (((uint128_t)x15 * x30) + (((uint128_t)x17 * x31) + ((uint128_t)x16 * x29)))) + x38) + x34);
+ uint128_t x42 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + (((uint128_t)x9 * x21) + ((uint128_t)x11 * x19)))) + (((uint128_t)x13 * x30) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + ((uint128_t)x16 * x27)))));
+ uint128_t x43 = (((((uint128_t)x5 * x23) + (((uint128_t)x7 * x21) + ((uint128_t)x9 * x19))) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + ((uint128_t)x17 * x27)))) + x32);
+ uint128_t x44 = (((((uint128_t)x5 * x21) + ((uint128_t)x7 * x19)) + (((uint128_t)x13 * x29) + ((uint128_t)x15 * x27))) + x33);
+ uint128_t x45 = ((((uint128_t)x5 * x19) + ((uint128_t)x13 * x27)) + x34);
+ uint64_t x46 = (uint64_t) (x42 >> 0x3c);
+ uint64_t x47 = ((uint64_t)x42 & 0xfffffffffffffff);
+ uint64_t x48 = (uint64_t) (x35 >> 0x3c);
+ uint64_t x49 = ((uint64_t)x35 & 0xfffffffffffffff);
+ uint128_t x50 = (((uint128_t)0x1000000000000000 * x48) + x49);
+ uint64_t x51 = (uint64_t) (x50 >> 0x3c);
+ uint64_t x52 = ((uint64_t)x50 & 0xfffffffffffffff);
+ uint128_t x53 = ((x46 + x41) + x51);
+ uint128_t x54 = (x53 >> 0x3c);
+ uint64_t x55 = ((uint64_t)x53 & 0xfffffffffffffff);
+ uint128_t x56 = (x45 + x51);
+ uint64_t x57 = (uint64_t) (x56 >> 0x3c);
+ uint64_t x58 = ((uint64_t)x56 & 0xfffffffffffffff);
+ uint128_t x59 = (x54 + x40);
+ uint128_t x60 = (x59 >> 0x3c);
+ uint64_t x61 = ((uint64_t)x59 & 0xfffffffffffffff);
+ uint128_t x62 = (x57 + x44);
+ uint64_t x63 = (uint64_t) (x62 >> 0x3c);
+ uint64_t x64 = ((uint64_t)x62 & 0xfffffffffffffff);
+ uint128_t x65 = (x60 + x39);
+ uint128_t x66 = (x65 >> 0x3c);
+ uint64_t x67 = ((uint64_t)x65 & 0xfffffffffffffff);
+ uint128_t x68 = (x63 + x43);
+ uint64_t x69 = (uint64_t) (x68 >> 0x3c);
+ uint64_t x70 = ((uint64_t)x68 & 0xfffffffffffffff);
+ uint128_t x71 = (x66 + x52);
+ uint64_t x72 = (uint64_t) (x71 >> 0x3c);
+ uint64_t x73 = ((uint64_t)x71 & 0xfffffffffffffff);
+ uint64_t x74 = (x69 + x47);
+ uint64_t x75 = (x74 >> 0x3c);
+ uint64_t x76 = (x74 & 0xfffffffffffffff);
+ uint128_t x77 = (((uint128_t)0x1000000000000000 * x72) + x73);
+ uint64_t x78 = (uint64_t) (x77 >> 0x3c);
+ uint64_t x79 = ((uint64_t)x77 & 0xfffffffffffffff);
+ uint64_t x80 = ((x75 + x55) + x78);
+ uint64_t x81 = (x80 >> 0x3c);
+ uint64_t x82 = (x80 & 0xfffffffffffffff);
+ uint64_t x83 = (x58 + x78);
+ uint64_t x84 = (x83 >> 0x3c);
+ uint64_t x85 = (x83 & 0xfffffffffffffff);
+ return (Return x79, Return x67, (x81 + x61), Return x82, Return x76, Return x70, (x84 + x64), Return x85))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e480m2e240m1/fesquareDisplay.log b/src/Specific/solinas64_2e480m2e240m1/fesquareDisplay.log
new file mode 100644
index 000000000..6ee6ce4fb
--- /dev/null
+++ b/src/Specific/solinas64_2e480m2e240m1/fesquareDisplay.log
@@ -0,0 +1,61 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x15 = (((uint128_t)(x8 + x13) * (x8 + x13)) - ((uint128_t)x8 * x8));
+ uint128_t x16 = ((((uint128_t)(x6 + x14) * (x8 + x13)) + ((uint128_t)(x8 + x13) * (x6 + x14))) - (((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)));
+ uint128_t x17 = ((((uint128_t)(x4 + x12) * (x8 + x13)) + (((uint128_t)(x6 + x14) * (x6 + x14)) + ((uint128_t)(x8 + x13) * (x4 + x12)))) - (((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + ((uint128_t)x8 * x4))));
+ uint128_t x18 = ((((uint128_t)(x2 + x10) * (x8 + x13)) + (((uint128_t)(x4 + x12) * (x6 + x14)) + (((uint128_t)(x6 + x14) * (x4 + x12)) + ((uint128_t)(x8 + x13) * (x2 + x10))))) - (((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))));
+ uint128_t x19 = ((((uint128_t)(x2 + x10) * (x6 + x14)) + (((uint128_t)(x4 + x12) * (x4 + x12)) + ((uint128_t)(x6 + x14) * (x2 + x10)))) - (((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))));
+ uint128_t x20 = ((((uint128_t)(x2 + x10) * (x4 + x12)) + ((uint128_t)(x4 + x12) * (x2 + x10))) - (((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)));
+ uint128_t x21 = (((uint128_t)(x2 + x10) * (x2 + x10)) - ((uint128_t)x2 * x2));
+ uint128_t x22 = (((((uint128_t)x8 * x8) + ((uint128_t)x13 * x13)) + x19) + x15);
+ uint128_t x23 = ((((((uint128_t)x6 * x8) + ((uint128_t)x8 * x6)) + (((uint128_t)x14 * x13) + ((uint128_t)x13 * x14))) + x20) + x16);
+ uint128_t x24 = ((((((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + ((uint128_t)x8 * x4))) + (((uint128_t)x12 * x13) + (((uint128_t)x14 * x14) + ((uint128_t)x13 * x12)))) + x21) + x17);
+ uint128_t x25 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (((uint128_t)x10 * x13) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((uint128_t)x13 * x10)))));
+ uint128_t x26 = (((((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + ((uint128_t)x14 * x10)))) + x15);
+ uint128_t x27 = (((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (((uint128_t)x10 * x12) + ((uint128_t)x12 * x10))) + x16);
+ uint128_t x28 = ((((uint128_t)x2 * x2) + ((uint128_t)x10 * x10)) + x17);
+ uint64_t x29 = (uint64_t) (x25 >> 0x3c);
+ uint64_t x30 = ((uint64_t)x25 & 0xfffffffffffffff);
+ uint64_t x31 = (uint64_t) (x18 >> 0x3c);
+ uint64_t x32 = ((uint64_t)x18 & 0xfffffffffffffff);
+ uint128_t x33 = (((uint128_t)0x1000000000000000 * x31) + x32);
+ uint64_t x34 = (uint64_t) (x33 >> 0x3c);
+ uint64_t x35 = ((uint64_t)x33 & 0xfffffffffffffff);
+ uint128_t x36 = ((x29 + x24) + x34);
+ uint128_t x37 = (x36 >> 0x3c);
+ uint64_t x38 = ((uint64_t)x36 & 0xfffffffffffffff);
+ uint128_t x39 = (x28 + x34);
+ uint64_t x40 = (uint64_t) (x39 >> 0x3c);
+ uint64_t x41 = ((uint64_t)x39 & 0xfffffffffffffff);
+ uint128_t x42 = (x37 + x23);
+ uint128_t x43 = (x42 >> 0x3c);
+ uint64_t x44 = ((uint64_t)x42 & 0xfffffffffffffff);
+ uint128_t x45 = (x40 + x27);
+ uint64_t x46 = (uint64_t) (x45 >> 0x3c);
+ uint64_t x47 = ((uint64_t)x45 & 0xfffffffffffffff);
+ uint128_t x48 = (x43 + x22);
+ uint128_t x49 = (x48 >> 0x3c);
+ uint64_t x50 = ((uint64_t)x48 & 0xfffffffffffffff);
+ uint128_t x51 = (x46 + x26);
+ uint64_t x52 = (uint64_t) (x51 >> 0x3c);
+ uint64_t x53 = ((uint64_t)x51 & 0xfffffffffffffff);
+ uint128_t x54 = (x49 + x35);
+ uint64_t x55 = (uint64_t) (x54 >> 0x3c);
+ uint64_t x56 = ((uint64_t)x54 & 0xfffffffffffffff);
+ uint64_t x57 = (x52 + x30);
+ uint64_t x58 = (x57 >> 0x3c);
+ uint64_t x59 = (x57 & 0xfffffffffffffff);
+ uint128_t x60 = (((uint128_t)0x1000000000000000 * x55) + x56);
+ uint64_t x61 = (uint64_t) (x60 >> 0x3c);
+ uint64_t x62 = ((uint64_t)x60 & 0xfffffffffffffff);
+ uint64_t x63 = ((x58 + x38) + x61);
+ uint64_t x64 = (x63 >> 0x3c);
+ uint64_t x65 = (x63 & 0xfffffffffffffff);
+ uint64_t x66 = (x41 + x61);
+ uint64_t x67 = (x66 >> 0x3c);
+ uint64_t x68 = (x66 & 0xfffffffffffffff);
+ return (Return x62, Return x50, (x64 + x44), Return x65, Return x59, Return x53, (x67 + x47), Return x68))
+x
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e480m2e240m1/freezeDisplay.log b/src/Specific/solinas64_2e480m2e240m1/freezeDisplay.log
index b2e1cb53f..eca3d9535 100644
--- a/src/Specific/solinas64_2e480m2e240m1/freezeDisplay.log
+++ b/src/Specific/solinas64_2e480m2e240m1/freezeDisplay.log
@@ -1,35 +1,32 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffffffffffff);
- uint64_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x19, Return x4, 0x1fffffffffffff);
- uint64_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x22, Return x6, 0x1fffffffffffff);
- uint64_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x3fffffffffffff);
- uint64_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x28, Return x10, 0x1ffffffbffffff);
- uint64_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x12, 0x1fffffffffffff);
- uint64_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x34, Return x14, 0x3fffffffffffff);
- uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0x1fffffffffffff);
- uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0x1fffffffffffff);
- uint64_t x44 = (uint64_t)cmovznz(x43, 0x0, 0xffffffffffffffffL);
- uint64_t x45 = x44 & 0x3fffffffffffff;
- uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
- uint64_t x49 = x44 & 0x1fffffffffffff;
- uint64_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
- uint64_t x53 = x44 & 0x1fffffffffffff;
- uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
- uint64_t x57 = x44 & 0x3fffffffffffff;
- uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
- uint64_t x61 = x44 & 0x1ffffffbffffff;
- uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
- uint64_t x65 = x44 & 0x1fffffffffffff;
- uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
- uint64_t x69 = x44 & 0x3fffffffffffff;
- uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
- uint64_t x73 = x44 & 0x1fffffffffffff;
- uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
- uint64_t x77 = x44 & 0x1fffffffffffff;
- uint64_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 53 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
- (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
+ λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0xfffffffffffffff);
+ uint64_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x17, Return x4, 0xfffffffffffffff);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x6, 0xfffffffffffffff);
+ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x8, 0xfffffffffffffff);
+ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x10, 0xffffffffffffffe);
+ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x12, 0xfffffffffffffff);
+ uint64_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x32, Return x14, 0xfffffffffffffff);
+ uint64_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x35, Return x13, 0xfffffffffffffff);
+ uint64_t x39 = (uint64_t)cmovznz(x38, 0x0, 0xffffffffffffffffL);
+ uint64_t x40 = (x39 & 0xfffffffffffffff);
+ uint64_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
+ uint64_t x44 = (x39 & 0xfffffffffffffff);
+ uint64_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
+ uint64_t x48 = (x39 & 0xfffffffffffffff);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x22, Return x48);
+ uint64_t x52 = (x39 & 0xfffffffffffffff);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x25, Return x52);
+ uint64_t x56 = (x39 & 0xffffffffffffffe);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x28, Return x56);
+ uint64_t x60 = (x39 & 0xfffffffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x31, Return x60);
+ uint64_t x64 = (x39 & 0xfffffffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x34, Return x64);
+ uint64_t x68 = (x39 & 0xfffffffffffffff);
+ uint64_t x70, uint8_t _ = Op (Syntax.AddWithGetCarry 60 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x37, Return x68);
+ (Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, Return x46, Return x42))
x
- : 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)
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e489m21/femulDisplay.log b/src/Specific/solinas64_2e489m21/femulDisplay.log
new file mode 100644
index 000000000..ba923417f
--- /dev/null
+++ b/src/Specific/solinas64_2e489m21/femulDisplay.log
@@ -0,0 +1,48 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+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,
+ uint128_t x36 = (((uint128_t)x5 * x34) + ((0x2 * ((uint128_t)x7 * x35)) + (((uint128_t)x9 * x33) + (((uint128_t)x11 * x31) + ((0x2 * ((uint128_t)x13 * x29)) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + ((0x2 * ((uint128_t)x19 * x23)) + ((uint128_t)x18 * x21)))))))));
+ uint128_t x37 = ((((uint128_t)x5 * x35) + (((uint128_t)x7 * x33) + (((uint128_t)x9 * x31) + (((uint128_t)x11 * x29) + (((uint128_t)x13 * x27) + (((uint128_t)x15 * x25) + (((uint128_t)x17 * x23) + ((uint128_t)x19 * x21)))))))) + (0x15 * ((uint128_t)x18 * x34)));
+ uint128_t x38 = ((((uint128_t)x5 * x33) + ((0x2 * ((uint128_t)x7 * x31)) + ((0x2 * ((uint128_t)x9 * x29)) + (((uint128_t)x11 * x27) + ((0x2 * ((uint128_t)x13 * x25)) + ((0x2 * ((uint128_t)x15 * x23)) + ((uint128_t)x17 * x21))))))) + (0x15 * ((0x2 * ((uint128_t)x19 * x34)) + (0x2 * ((uint128_t)x18 * x35)))));
+ uint128_t x39 = ((((uint128_t)x5 * x31) + ((0x2 * ((uint128_t)x7 * x29)) + (((uint128_t)x9 * x27) + (((uint128_t)x11 * x25) + ((0x2 * ((uint128_t)x13 * x23)) + ((uint128_t)x15 * x21)))))) + (0x15 * (((uint128_t)x17 * x34) + ((0x2 * ((uint128_t)x19 * x35)) + ((uint128_t)x18 * x33)))));
+ uint128_t x40 = ((((uint128_t)x5 * x29) + (((uint128_t)x7 * x27) + (((uint128_t)x9 * x25) + (((uint128_t)x11 * x23) + ((uint128_t)x13 * x21))))) + (0x15 * (((uint128_t)x15 * x34) + (((uint128_t)x17 * x35) + (((uint128_t)x19 * x33) + ((uint128_t)x18 * x31))))));
+ uint128_t x41 = ((((uint128_t)x5 * x27) + ((0x2 * ((uint128_t)x7 * x25)) + ((0x2 * ((uint128_t)x9 * x23)) + ((uint128_t)x11 * x21)))) + (0x15 * ((0x2 * ((uint128_t)x13 * x34)) + ((0x2 * ((uint128_t)x15 * x35)) + (((uint128_t)x17 * x33) + ((0x2 * ((uint128_t)x19 * x31)) + (0x2 * ((uint128_t)x18 * x29))))))));
+ uint128_t x42 = ((((uint128_t)x5 * x25) + ((0x2 * ((uint128_t)x7 * x23)) + ((uint128_t)x9 * x21))) + (0x15 * (((uint128_t)x11 * x34) + ((0x2 * ((uint128_t)x13 * x35)) + (((uint128_t)x15 * x33) + (((uint128_t)x17 * x31) + ((0x2 * ((uint128_t)x19 * x29)) + ((uint128_t)x18 * x27))))))));
+ uint128_t x43 = ((((uint128_t)x5 * x23) + ((uint128_t)x7 * x21)) + (0x15 * (((uint128_t)x9 * x34) + (((uint128_t)x11 * x35) + (((uint128_t)x13 * x33) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + (((uint128_t)x19 * x27) + ((uint128_t)x18 * x25)))))))));
+ uint128_t x44 = (((uint128_t)x5 * x21) + (0x15 * ((0x2 * ((uint128_t)x7 * x34)) + ((0x2 * ((uint128_t)x9 * x35)) + (((uint128_t)x11 * x33) + ((0x2 * ((uint128_t)x13 * x31)) + ((0x2 * ((uint128_t)x15 * x29)) + (((uint128_t)x17 * x27) + ((0x2 * ((uint128_t)x19 * x25)) + (0x2 * ((uint128_t)x18 * x23)))))))))));
+ uint64_t x45 = (uint64_t) (x44 >> 0x37);
+ uint64_t x46 = ((uint64_t)x44 & 0x7fffffffffffff);
+ uint128_t x47 = (x45 + x43);
+ uint64_t x48 = (uint64_t) (x47 >> 0x36);
+ uint64_t x49 = ((uint64_t)x47 & 0x3fffffffffffff);
+ uint128_t x50 = (x48 + x42);
+ uint64_t x51 = (uint64_t) (x50 >> 0x36);
+ uint64_t x52 = ((uint64_t)x50 & 0x3fffffffffffff);
+ uint128_t x53 = (x51 + x41);
+ uint64_t x54 = (uint64_t) (x53 >> 0x37);
+ uint64_t x55 = ((uint64_t)x53 & 0x7fffffffffffff);
+ uint128_t x56 = (x54 + x40);
+ uint64_t x57 = (uint64_t) (x56 >> 0x36);
+ uint64_t x58 = ((uint64_t)x56 & 0x3fffffffffffff);
+ uint128_t x59 = (x57 + x39);
+ uint64_t x60 = (uint64_t) (x59 >> 0x36);
+ uint64_t x61 = ((uint64_t)x59 & 0x3fffffffffffff);
+ uint128_t x62 = (x60 + x38);
+ uint64_t x63 = (uint64_t) (x62 >> 0x37);
+ uint64_t x64 = ((uint64_t)x62 & 0x7fffffffffffff);
+ uint128_t x65 = (x63 + x37);
+ uint64_t x66 = (uint64_t) (x65 >> 0x36);
+ uint64_t x67 = ((uint64_t)x65 & 0x3fffffffffffff);
+ uint128_t x68 = (x66 + x36);
+ uint64_t x69 = (uint64_t) (x68 >> 0x36);
+ uint64_t x70 = ((uint64_t)x68 & 0x3fffffffffffff);
+ uint64_t x71 = (x46 + (0x15 * x69));
+ uint64_t x72 = (x71 >> 0x37);
+ uint64_t x73 = (x71 & 0x7fffffffffffff);
+ uint64_t x74 = (x72 + x49);
+ uint64_t x75 = (x74 >> 0x36);
+ uint64_t x76 = (x74 & 0x3fffffffffffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
+(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/fesquareDisplay.log b/src/Specific/solinas64_2e489m21/fesquareDisplay.log
new file mode 100644
index 000000000..afa0fa631
--- /dev/null
+++ b/src/Specific/solinas64_2e489m21/fesquareDisplay.log
@@ -0,0 +1,48 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x17 = (((uint128_t)x2 * x15) + ((0x2 * ((uint128_t)x4 * x16)) + (((uint128_t)x6 * x14) + (((uint128_t)x8 * x12) + ((0x2 * ((uint128_t)x10 * x10)) + (((uint128_t)x12 * x8) + (((uint128_t)x14 * x6) + ((0x2 * ((uint128_t)x16 * x4)) + ((uint128_t)x15 * x2)))))))));
+ uint128_t x18 = ((((uint128_t)x2 * x16) + (((uint128_t)x4 * x14) + (((uint128_t)x6 * x12) + (((uint128_t)x8 * x10) + (((uint128_t)x10 * x8) + (((uint128_t)x12 * x6) + (((uint128_t)x14 * x4) + ((uint128_t)x16 * x2)))))))) + (0x15 * ((uint128_t)x15 * x15)));
+ uint128_t x19 = ((((uint128_t)x2 * x14) + ((0x2 * ((uint128_t)x4 * x12)) + ((0x2 * ((uint128_t)x6 * x10)) + (((uint128_t)x8 * x8) + ((0x2 * ((uint128_t)x10 * x6)) + ((0x2 * ((uint128_t)x12 * x4)) + ((uint128_t)x14 * x2))))))) + (0x15 * ((0x2 * ((uint128_t)x16 * x15)) + (0x2 * ((uint128_t)x15 * x16)))));
+ uint128_t x20 = ((((uint128_t)x2 * x12) + ((0x2 * ((uint128_t)x4 * x10)) + (((uint128_t)x6 * x8) + (((uint128_t)x8 * x6) + ((0x2 * ((uint128_t)x10 * x4)) + ((uint128_t)x12 * x2)))))) + (0x15 * (((uint128_t)x14 * x15) + ((0x2 * ((uint128_t)x16 * x16)) + ((uint128_t)x15 * x14)))));
+ uint128_t x21 = ((((uint128_t)x2 * x10) + (((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + (((uint128_t)x8 * x4) + ((uint128_t)x10 * x2))))) + (0x15 * (((uint128_t)x12 * x15) + (((uint128_t)x14 * x16) + (((uint128_t)x16 * x14) + ((uint128_t)x15 * x12))))));
+ uint128_t x22 = ((((uint128_t)x2 * x8) + ((0x2 * ((uint128_t)x4 * x6)) + ((0x2 * ((uint128_t)x6 * x4)) + ((uint128_t)x8 * x2)))) + (0x15 * ((0x2 * ((uint128_t)x10 * x15)) + ((0x2 * ((uint128_t)x12 * x16)) + (((uint128_t)x14 * x14) + ((0x2 * ((uint128_t)x16 * x12)) + (0x2 * ((uint128_t)x15 * x10))))))));
+ uint128_t x23 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x15 * (((uint128_t)x8 * x15) + ((0x2 * ((uint128_t)x10 * x16)) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + ((0x2 * ((uint128_t)x16 * x10)) + ((uint128_t)x15 * x8))))))));
+ uint128_t x24 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x15 * (((uint128_t)x6 * x15) + (((uint128_t)x8 * x16) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + (((uint128_t)x14 * x10) + (((uint128_t)x16 * x8) + ((uint128_t)x15 * x6)))))))));
+ uint128_t x25 = (((uint128_t)x2 * x2) + (0x15 * ((0x2 * ((uint128_t)x4 * x15)) + ((0x2 * ((uint128_t)x6 * x16)) + (((uint128_t)x8 * x14) + ((0x2 * ((uint128_t)x10 * x12)) + ((0x2 * ((uint128_t)x12 * x10)) + (((uint128_t)x14 * x8) + ((0x2 * ((uint128_t)x16 * x6)) + (0x2 * ((uint128_t)x15 * x4)))))))))));
+ uint64_t x26 = (uint64_t) (x25 >> 0x37);
+ uint64_t x27 = ((uint64_t)x25 & 0x7fffffffffffff);
+ uint128_t x28 = (x26 + x24);
+ uint64_t x29 = (uint64_t) (x28 >> 0x36);
+ uint64_t x30 = ((uint64_t)x28 & 0x3fffffffffffff);
+ uint128_t x31 = (x29 + x23);
+ uint64_t x32 = (uint64_t) (x31 >> 0x36);
+ uint64_t x33 = ((uint64_t)x31 & 0x3fffffffffffff);
+ uint128_t x34 = (x32 + x22);
+ uint64_t x35 = (uint64_t) (x34 >> 0x37);
+ uint64_t x36 = ((uint64_t)x34 & 0x7fffffffffffff);
+ uint128_t x37 = (x35 + x21);
+ uint64_t x38 = (uint64_t) (x37 >> 0x36);
+ uint64_t x39 = ((uint64_t)x37 & 0x3fffffffffffff);
+ uint128_t x40 = (x38 + x20);
+ uint64_t x41 = (uint64_t) (x40 >> 0x36);
+ uint64_t x42 = ((uint64_t)x40 & 0x3fffffffffffff);
+ uint128_t x43 = (x41 + x19);
+ uint64_t x44 = (uint64_t) (x43 >> 0x37);
+ uint64_t x45 = ((uint64_t)x43 & 0x7fffffffffffff);
+ uint128_t x46 = (x44 + x18);
+ uint64_t x47 = (uint64_t) (x46 >> 0x36);
+ uint64_t x48 = ((uint64_t)x46 & 0x3fffffffffffff);
+ uint128_t x49 = (x47 + x17);
+ uint64_t x50 = (uint64_t) (x49 >> 0x36);
+ uint64_t x51 = ((uint64_t)x49 & 0x3fffffffffffff);
+ uint64_t x52 = (x27 + (0x15 * x50));
+ uint64_t x53 = (x52 >> 0x37);
+ uint64_t x54 = (x52 & 0x7fffffffffffff);
+ uint64_t x55 = (x53 + x30);
+ uint64_t x56 = (x55 >> 0x36);
+ uint64_t x57 = (x55 & 0x3fffffffffffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
+x
+ : 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/freezeDisplay.log b/src/Specific/solinas64_2e489m21/freezeDisplay.log
new file mode 100644
index 000000000..12e65dbe5
--- /dev/null
+++ b/src/Specific/solinas64_2e489m21/freezeDisplay.log
@@ -0,0 +1,35 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffffffffffeb);
+ uint64_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x19, Return x4, 0x3fffffffffffff);
+ uint64_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x22, Return x6, 0x3fffffffffffff);
+ uint64_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x7fffffffffffff);
+ uint64_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x28, Return x10, 0x3fffffffffffff);
+ uint64_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x12, 0x3fffffffffffff);
+ uint64_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x34, Return x14, 0x7fffffffffffff);
+ uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0x3fffffffffffff);
+ uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0x3fffffffffffff);
+ uint64_t x44 = (uint64_t)cmovznz(x43, 0x0, 0xffffffffffffffffL);
+ uint64_t x45 = (x44 & 0x7fffffffffffeb);
+ uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
+ uint64_t x49 = (x44 & 0x3fffffffffffff);
+ uint64_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
+ uint64_t x53 = (x44 & 0x3fffffffffffff);
+ uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
+ uint64_t x57 = (x44 & 0x7fffffffffffff);
+ uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
+ uint64_t x61 = (x44 & 0x3fffffffffffff);
+ uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
+ uint64_t x65 = (x44 & 0x3fffffffffffff);
+ uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
+ uint64_t x69 = (x44 & 0x7fffffffffffff);
+ uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
+ uint64_t x73 = (x44 & 0x3fffffffffffff);
+ uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
+ uint64_t x77 = (x44 & 0x3fffffffffffff);
+ uint64_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
+ (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
+x
+ : 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/femulDisplay.log b/src/Specific/solinas64_2e495m31/femulDisplay.log
index d045be5fd..f497e2d71 100644
--- a/src/Specific/solinas64_2e495m31/femulDisplay.log
+++ b/src/Specific/solinas64_2e495m31/femulDisplay.log
@@ -1,52 +1,48 @@
-λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x x0 : 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,
- uint128_t x40 = (uint128_t) x5 * x38 + ((uint128_t) x7 * x39 + ((uint128_t) x9 * x37 + ((uint128_t) x11 * x35 + ((uint128_t) x13 * x33 + ((uint128_t) x15 * x31 + ((uint128_t) x17 * x29 + ((uint128_t) x19 * x27 + ((uint128_t) x21 * x25 + (uint128_t) x20 * x23))))))));
- uint128_t x41 = (uint128_t) x5 * x39 + (0x2 * ((uint128_t) x7 * x37) + ((uint128_t) x9 * x35 + (0x2 * ((uint128_t) x11 * x33) + ((uint128_t) x13 * x31 + (0x2 * ((uint128_t) x15 * x29) + ((uint128_t) x17 * x27 + (0x2 * ((uint128_t) x19 * x25) + (uint128_t) x21 * x23))))))) + 0x1f * (0x2 * ((uint128_t) x20 * x38));
- uint128_t x42 = (uint128_t) x5 * x37 + ((uint128_t) x7 * x35 + ((uint128_t) x9 * x33 + ((uint128_t) x11 * x31 + ((uint128_t) x13 * x29 + ((uint128_t) x15 * x27 + ((uint128_t) x17 * x25 + (uint128_t) x19 * x23)))))) + 0x1f * ((uint128_t) x21 * x38 + (uint128_t) x20 * x39);
- uint128_t x43 = (uint128_t) x5 * x35 + (0x2 * ((uint128_t) x7 * x33) + ((uint128_t) x9 * x31 + (0x2 * ((uint128_t) x11 * x29) + ((uint128_t) x13 * x27 + (0x2 * ((uint128_t) x15 * x25) + (uint128_t) x17 * x23))))) + 0x1f * (0x2 * ((uint128_t) x19 * x38) + ((uint128_t) x21 * x39 + 0x2 * ((uint128_t) x20 * x37)));
- uint128_t x44 = (uint128_t) x5 * x33 + ((uint128_t) x7 * x31 + ((uint128_t) x9 * x29 + ((uint128_t) x11 * x27 + ((uint128_t) x13 * x25 + (uint128_t) x15 * x23)))) + 0x1f * ((uint128_t) x17 * x38 + ((uint128_t) x19 * x39 + ((uint128_t) x21 * x37 + (uint128_t) x20 * x35)));
- uint128_t x45 = (uint128_t) x5 * x31 + (0x2 * ((uint128_t) x7 * x29) + ((uint128_t) x9 * x27 + (0x2 * ((uint128_t) x11 * x25) + (uint128_t) x13 * x23))) + 0x1f * (0x2 * ((uint128_t) x15 * x38) + ((uint128_t) x17 * x39 + (0x2 * ((uint128_t) x19 * x37) + ((uint128_t) x21 * x35 + 0x2 * ((uint128_t) x20 * x33)))));
- uint128_t x46 = (uint128_t) x5 * x29 + ((uint128_t) x7 * x27 + ((uint128_t) x9 * x25 + (uint128_t) x11 * x23)) + 0x1f * ((uint128_t) x13 * x38 + ((uint128_t) x15 * x39 + ((uint128_t) x17 * x37 + ((uint128_t) x19 * x35 + ((uint128_t) x21 * x33 + (uint128_t) x20 * x31)))));
- uint128_t x47 = (uint128_t) x5 * x27 + (0x2 * ((uint128_t) x7 * x25) + (uint128_t) x9 * x23) + 0x1f * (0x2 * ((uint128_t) x11 * x38) + ((uint128_t) x13 * x39 + (0x2 * ((uint128_t) x15 * x37) + ((uint128_t) x17 * x35 + (0x2 * ((uint128_t) x19 * x33) + ((uint128_t) x21 * x31 + 0x2 * ((uint128_t) x20 * x29)))))));
- uint128_t x48 = (uint128_t) x5 * x25 + (uint128_t) x7 * x23 + 0x1f * ((uint128_t) x9 * x38 + ((uint128_t) x11 * x39 + ((uint128_t) x13 * x37 + ((uint128_t) x15 * x35 + ((uint128_t) x17 * x33 + ((uint128_t) x19 * x31 + ((uint128_t) x21 * x29 + (uint128_t) x20 * x27)))))));
- uint128_t x49 = (uint128_t) x5 * x23 + 0x1f * (0x2 * ((uint128_t) x7 * x38) + ((uint128_t) x9 * x39 + (0x2 * ((uint128_t) x11 * x37) + ((uint128_t) x13 * x35 + (0x2 * ((uint128_t) x15 * x33) + ((uint128_t) x17 * x31 + (0x2 * ((uint128_t) x19 * x29) + ((uint128_t) x21 * x27 + 0x2 * ((uint128_t) x20 * x25)))))))));
- uint64_t x50 = (uint64_t) (x49 >> 0x32);
- uint64_t x51 = (uint64_t) x49 & 0x3ffffffffffff;
- uint128_t x52 = x50 + x48;
- uint64_t x53 = (uint64_t) (x52 >> 0x31);
- uint64_t x54 = (uint64_t) x52 & 0x1ffffffffffff;
- uint128_t x55 = x53 + x47;
- uint64_t x56 = (uint64_t) (x55 >> 0x32);
- uint64_t x57 = (uint64_t) x55 & 0x3ffffffffffff;
- uint128_t x58 = x56 + x46;
- uint64_t x59 = (uint64_t) (x58 >> 0x31);
- uint64_t x60 = (uint64_t) x58 & 0x1ffffffffffff;
- uint128_t x61 = x59 + x45;
- uint64_t x62 = (uint64_t) (x61 >> 0x32);
- uint64_t x63 = (uint64_t) x61 & 0x3ffffffffffff;
- uint128_t x64 = x62 + x44;
- uint64_t x65 = (uint64_t) (x64 >> 0x31);
- uint64_t x66 = (uint64_t) x64 & 0x1ffffffffffff;
- uint128_t x67 = x65 + x43;
- uint64_t x68 = (uint64_t) (x67 >> 0x32);
- uint64_t x69 = (uint64_t) x67 & 0x3ffffffffffff;
- uint128_t x70 = x68 + x42;
- uint64_t x71 = (uint64_t) (x70 >> 0x31);
- uint64_t x72 = (uint64_t) x70 & 0x1ffffffffffff;
- uint128_t x73 = x71 + x41;
- uint64_t x74 = (uint64_t) (x73 >> 0x32);
- uint64_t x75 = (uint64_t) x73 & 0x3ffffffffffff;
- uint128_t x76 = x74 + x40;
- uint64_t x77 = (uint64_t) (x76 >> 0x31);
- uint64_t x78 = (uint64_t) x76 & 0x1ffffffffffff;
- uint64_t x79 = x51 + 0x1f * x77;
- uint64_t x80 = x79 >> 0x32;
- uint64_t x81 = x79 & 0x3ffffffffffff;
- uint64_t x82 = x80 + x54;
- uint64_t x83 = x82 >> 0x31;
- uint64_t x84 = x82 & 0x1ffffffffffff;
- return (Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, x83 + x57, Return x84, Return x81))
+ λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
+ uint128_t x36 = (((uint128_t)x5 * x34) + (((uint128_t)x7 * x35) + (((uint128_t)x9 * x33) + (((uint128_t)x11 * x31) + (((uint128_t)x13 * x29) + (((uint128_t)x15 * x27) + (((uint128_t)x17 * x25) + (((uint128_t)x19 * x23) + ((uint128_t)x18 * x21)))))))));
+ uint128_t x37 = ((((uint128_t)x5 * x35) + (((uint128_t)x7 * x33) + (((uint128_t)x9 * x31) + (((uint128_t)x11 * x29) + (((uint128_t)x13 * x27) + (((uint128_t)x15 * x25) + (((uint128_t)x17 * x23) + ((uint128_t)x19 * x21)))))))) + (0x1f * ((uint128_t)x18 * x34)));
+ uint128_t x38 = ((((uint128_t)x5 * x33) + (((uint128_t)x7 * x31) + (((uint128_t)x9 * x29) + (((uint128_t)x11 * x27) + (((uint128_t)x13 * x25) + (((uint128_t)x15 * x23) + ((uint128_t)x17 * x21))))))) + (0x1f * (((uint128_t)x19 * x34) + ((uint128_t)x18 * x35))));
+ uint128_t x39 = ((((uint128_t)x5 * x31) + (((uint128_t)x7 * x29) + (((uint128_t)x9 * x27) + (((uint128_t)x11 * x25) + (((uint128_t)x13 * x23) + ((uint128_t)x15 * x21)))))) + (0x1f * (((uint128_t)x17 * x34) + (((uint128_t)x19 * x35) + ((uint128_t)x18 * x33)))));
+ uint128_t x40 = ((((uint128_t)x5 * x29) + (((uint128_t)x7 * x27) + (((uint128_t)x9 * x25) + (((uint128_t)x11 * x23) + ((uint128_t)x13 * x21))))) + (0x1f * (((uint128_t)x15 * x34) + (((uint128_t)x17 * x35) + (((uint128_t)x19 * x33) + ((uint128_t)x18 * x31))))));
+ uint128_t x41 = ((((uint128_t)x5 * x27) + (((uint128_t)x7 * x25) + (((uint128_t)x9 * x23) + ((uint128_t)x11 * x21)))) + (0x1f * (((uint128_t)x13 * x34) + (((uint128_t)x15 * x35) + (((uint128_t)x17 * x33) + (((uint128_t)x19 * x31) + ((uint128_t)x18 * x29)))))));
+ uint128_t x42 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + ((uint128_t)x9 * x21))) + (0x1f * (((uint128_t)x11 * x34) + (((uint128_t)x13 * x35) + (((uint128_t)x15 * x33) + (((uint128_t)x17 * x31) + (((uint128_t)x19 * x29) + ((uint128_t)x18 * x27))))))));
+ uint128_t x43 = ((((uint128_t)x5 * x23) + ((uint128_t)x7 * x21)) + (0x1f * (((uint128_t)x9 * x34) + (((uint128_t)x11 * x35) + (((uint128_t)x13 * x33) + (((uint128_t)x15 * x31) + (((uint128_t)x17 * x29) + (((uint128_t)x19 * x27) + ((uint128_t)x18 * x25)))))))));
+ uint128_t x44 = (((uint128_t)x5 * x21) + (0x1f * (((uint128_t)x7 * x34) + (((uint128_t)x9 * x35) + (((uint128_t)x11 * x33) + (((uint128_t)x13 * x31) + (((uint128_t)x15 * x29) + (((uint128_t)x17 * x27) + (((uint128_t)x19 * x25) + ((uint128_t)x18 * x23))))))))));
+ uint64_t x45 = (uint64_t) (x44 >> 0x37);
+ uint64_t x46 = ((uint64_t)x44 & 0x7fffffffffffff);
+ uint128_t x47 = (x45 + x43);
+ uint64_t x48 = (uint64_t) (x47 >> 0x37);
+ uint64_t x49 = ((uint64_t)x47 & 0x7fffffffffffff);
+ uint128_t x50 = (x48 + x42);
+ uint64_t x51 = (uint64_t) (x50 >> 0x37);
+ uint64_t x52 = ((uint64_t)x50 & 0x7fffffffffffff);
+ uint128_t x53 = (x51 + x41);
+ uint64_t x54 = (uint64_t) (x53 >> 0x37);
+ uint64_t x55 = ((uint64_t)x53 & 0x7fffffffffffff);
+ uint128_t x56 = (x54 + x40);
+ uint64_t x57 = (uint64_t) (x56 >> 0x37);
+ uint64_t x58 = ((uint64_t)x56 & 0x7fffffffffffff);
+ uint128_t x59 = (x57 + x39);
+ uint64_t x60 = (uint64_t) (x59 >> 0x37);
+ uint64_t x61 = ((uint64_t)x59 & 0x7fffffffffffff);
+ uint128_t x62 = (x60 + x38);
+ uint64_t x63 = (uint64_t) (x62 >> 0x37);
+ uint64_t x64 = ((uint64_t)x62 & 0x7fffffffffffff);
+ uint128_t x65 = (x63 + x37);
+ uint64_t x66 = (uint64_t) (x65 >> 0x37);
+ uint64_t x67 = ((uint64_t)x65 & 0x7fffffffffffff);
+ uint128_t x68 = (x66 + x36);
+ uint64_t x69 = (uint64_t) (x68 >> 0x37);
+ uint64_t x70 = ((uint64_t)x68 & 0x7fffffffffffff);
+ uint64_t x71 = (x46 + (0x1f * x69));
+ uint64_t x72 = (x71 >> 0x37);
+ uint64_t x73 = (x71 & 0x7fffffffffffff);
+ uint64_t x74 = (x72 + x49);
+ uint64_t x75 = (x74 >> 0x37);
+ uint64_t x76 = (x74 & 0x7fffffffffffff);
+ return (Return x70, Return x67, Return x64, Return x61, Return x58, Return x55, (x75 + x52), Return x76, Return x73))
(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)
+ : 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/fesquareDisplay.log b/src/Specific/solinas64_2e495m31/fesquareDisplay.log
index 8c3b890b5..15db2eab0 100644
--- a/src/Specific/solinas64_2e495m31/fesquareDisplay.log
+++ b/src/Specific/solinas64_2e495m31/fesquareDisplay.log
@@ -1,52 +1,48 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint128_t x19 = (uint128_t) x2 * x17 + ((uint128_t) x4 * x18 + ((uint128_t) x6 * x16 + ((uint128_t) x8 * x14 + ((uint128_t) x10 * x12 + ((uint128_t) x12 * x10 + ((uint128_t) x14 * x8 + ((uint128_t) x16 * x6 + ((uint128_t) x18 * x4 + (uint128_t) x17 * x2))))))));
- uint128_t x20 = (uint128_t) x2 * x18 + (0x2 * ((uint128_t) x4 * x16) + ((uint128_t) x6 * x14 + (0x2 * ((uint128_t) x8 * x12) + ((uint128_t) x10 * x10 + (0x2 * ((uint128_t) x12 * x8) + ((uint128_t) x14 * x6 + (0x2 * ((uint128_t) x16 * x4) + (uint128_t) x18 * x2))))))) + 0x1f * (0x2 * ((uint128_t) x17 * x17));
- uint128_t x21 = (uint128_t) x2 * x16 + ((uint128_t) x4 * x14 + ((uint128_t) x6 * x12 + ((uint128_t) x8 * x10 + ((uint128_t) x10 * x8 + ((uint128_t) x12 * x6 + ((uint128_t) x14 * x4 + (uint128_t) x16 * x2)))))) + 0x1f * ((uint128_t) x18 * x17 + (uint128_t) x17 * x18);
- uint128_t x22 = (uint128_t) x2 * x14 + (0x2 * ((uint128_t) x4 * x12) + ((uint128_t) x6 * x10 + (0x2 * ((uint128_t) x8 * x8) + ((uint128_t) x10 * x6 + (0x2 * ((uint128_t) x12 * x4) + (uint128_t) x14 * x2))))) + 0x1f * (0x2 * ((uint128_t) x16 * x17) + ((uint128_t) x18 * x18 + 0x2 * ((uint128_t) x17 * x16)));
- uint128_t x23 = (uint128_t) x2 * x12 + ((uint128_t) x4 * x10 + ((uint128_t) x6 * x8 + ((uint128_t) x8 * x6 + ((uint128_t) x10 * x4 + (uint128_t) x12 * x2)))) + 0x1f * ((uint128_t) x14 * x17 + ((uint128_t) x16 * x18 + ((uint128_t) x18 * x16 + (uint128_t) x17 * x14)));
- uint128_t x24 = (uint128_t) x2 * x10 + (0x2 * ((uint128_t) x4 * x8) + ((uint128_t) x6 * x6 + (0x2 * ((uint128_t) x8 * x4) + (uint128_t) x10 * x2))) + 0x1f * (0x2 * ((uint128_t) x12 * x17) + ((uint128_t) x14 * x18 + (0x2 * ((uint128_t) x16 * x16) + ((uint128_t) x18 * x14 + 0x2 * ((uint128_t) x17 * x12)))));
- uint128_t x25 = (uint128_t) x2 * x8 + ((uint128_t) x4 * x6 + ((uint128_t) x6 * x4 + (uint128_t) x8 * x2)) + 0x1f * ((uint128_t) x10 * x17 + ((uint128_t) x12 * x18 + ((uint128_t) x14 * x16 + ((uint128_t) x16 * x14 + ((uint128_t) x18 * x12 + (uint128_t) x17 * x10)))));
- uint128_t x26 = (uint128_t) x2 * x6 + (0x2 * ((uint128_t) x4 * x4) + (uint128_t) x6 * x2) + 0x1f * (0x2 * ((uint128_t) x8 * x17) + ((uint128_t) x10 * x18 + (0x2 * ((uint128_t) x12 * x16) + ((uint128_t) x14 * x14 + (0x2 * ((uint128_t) x16 * x12) + ((uint128_t) x18 * x10 + 0x2 * ((uint128_t) x17 * x8)))))));
- uint128_t x27 = (uint128_t) x2 * x4 + (uint128_t) x4 * x2 + 0x1f * ((uint128_t) x6 * x17 + ((uint128_t) x8 * x18 + ((uint128_t) x10 * x16 + ((uint128_t) x12 * x14 + ((uint128_t) x14 * x12 + ((uint128_t) x16 * x10 + ((uint128_t) x18 * x8 + (uint128_t) x17 * x6)))))));
- uint128_t x28 = (uint128_t) x2 * x2 + 0x1f * (0x2 * ((uint128_t) x4 * x17) + ((uint128_t) x6 * x18 + (0x2 * ((uint128_t) x8 * x16) + ((uint128_t) x10 * x14 + (0x2 * ((uint128_t) x12 * x12) + ((uint128_t) x14 * x10 + (0x2 * ((uint128_t) x16 * x8) + ((uint128_t) x18 * x6 + 0x2 * ((uint128_t) x17 * x4)))))))));
- uint64_t x29 = (uint64_t) (x28 >> 0x32);
- uint64_t x30 = (uint64_t) x28 & 0x3ffffffffffff;
- uint128_t x31 = x29 + x27;
- uint64_t x32 = (uint64_t) (x31 >> 0x31);
- uint64_t x33 = (uint64_t) x31 & 0x1ffffffffffff;
- uint128_t x34 = x32 + x26;
- uint64_t x35 = (uint64_t) (x34 >> 0x32);
- uint64_t x36 = (uint64_t) x34 & 0x3ffffffffffff;
- uint128_t x37 = x35 + x25;
- uint64_t x38 = (uint64_t) (x37 >> 0x31);
- uint64_t x39 = (uint64_t) x37 & 0x1ffffffffffff;
- uint128_t x40 = x38 + x24;
- uint64_t x41 = (uint64_t) (x40 >> 0x32);
- uint64_t x42 = (uint64_t) x40 & 0x3ffffffffffff;
- uint128_t x43 = x41 + x23;
- uint64_t x44 = (uint64_t) (x43 >> 0x31);
- uint64_t x45 = (uint64_t) x43 & 0x1ffffffffffff;
- uint128_t x46 = x44 + x22;
- uint64_t x47 = (uint64_t) (x46 >> 0x32);
- uint64_t x48 = (uint64_t) x46 & 0x3ffffffffffff;
- uint128_t x49 = x47 + x21;
- uint64_t x50 = (uint64_t) (x49 >> 0x31);
- uint64_t x51 = (uint64_t) x49 & 0x1ffffffffffff;
- uint128_t x52 = x50 + x20;
- uint64_t x53 = (uint64_t) (x52 >> 0x32);
- uint64_t x54 = (uint64_t) x52 & 0x3ffffffffffff;
- uint128_t x55 = x53 + x19;
- uint64_t x56 = (uint64_t) (x55 >> 0x31);
- uint64_t x57 = (uint64_t) x55 & 0x1ffffffffffff;
- uint64_t x58 = x30 + 0x1f * x56;
- uint64_t x59 = x58 >> 0x32;
- uint64_t x60 = x58 & 0x3ffffffffffff;
- uint64_t x61 = x59 + x33;
- uint64_t x62 = x61 >> 0x31;
- uint64_t x63 = x61 & 0x1ffffffffffff;
- return (Return x57, Return x54, Return x51, Return x48, Return x45, Return x42, Return x39, x62 + x36, Return x63, Return x60))
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x17 = (((uint128_t)x2 * x15) + (((uint128_t)x4 * x16) + (((uint128_t)x6 * x14) + (((uint128_t)x8 * x12) + (((uint128_t)x10 * x10) + (((uint128_t)x12 * x8) + (((uint128_t)x14 * x6) + (((uint128_t)x16 * x4) + ((uint128_t)x15 * x2)))))))));
+ uint128_t x18 = ((((uint128_t)x2 * x16) + (((uint128_t)x4 * x14) + (((uint128_t)x6 * x12) + (((uint128_t)x8 * x10) + (((uint128_t)x10 * x8) + (((uint128_t)x12 * x6) + (((uint128_t)x14 * x4) + ((uint128_t)x16 * x2)))))))) + (0x1f * ((uint128_t)x15 * x15)));
+ uint128_t x19 = ((((uint128_t)x2 * x14) + (((uint128_t)x4 * x12) + (((uint128_t)x6 * x10) + (((uint128_t)x8 * x8) + (((uint128_t)x10 * x6) + (((uint128_t)x12 * x4) + ((uint128_t)x14 * x2))))))) + (0x1f * (((uint128_t)x16 * x15) + ((uint128_t)x15 * x16))));
+ uint128_t x20 = ((((uint128_t)x2 * x12) + (((uint128_t)x4 * x10) + (((uint128_t)x6 * x8) + (((uint128_t)x8 * x6) + (((uint128_t)x10 * x4) + ((uint128_t)x12 * x2)))))) + (0x1f * (((uint128_t)x14 * x15) + (((uint128_t)x16 * x16) + ((uint128_t)x15 * x14)))));
+ uint128_t x21 = ((((uint128_t)x2 * x10) + (((uint128_t)x4 * x8) + (((uint128_t)x6 * x6) + (((uint128_t)x8 * x4) + ((uint128_t)x10 * x2))))) + (0x1f * (((uint128_t)x12 * x15) + (((uint128_t)x14 * x16) + (((uint128_t)x16 * x14) + ((uint128_t)x15 * x12))))));
+ uint128_t x22 = ((((uint128_t)x2 * x8) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x8 * x2)))) + (0x1f * (((uint128_t)x10 * x15) + (((uint128_t)x12 * x16) + (((uint128_t)x14 * x14) + (((uint128_t)x16 * x12) + ((uint128_t)x15 * x10)))))));
+ uint128_t x23 = ((((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))) + (0x1f * (((uint128_t)x8 * x15) + (((uint128_t)x10 * x16) + (((uint128_t)x12 * x14) + (((uint128_t)x14 * x12) + (((uint128_t)x16 * x10) + ((uint128_t)x15 * x8))))))));
+ uint128_t x24 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x1f * (((uint128_t)x6 * x15) + (((uint128_t)x8 * x16) + (((uint128_t)x10 * x14) + (((uint128_t)x12 * x12) + (((uint128_t)x14 * x10) + (((uint128_t)x16 * x8) + ((uint128_t)x15 * x6)))))))));
+ uint128_t x25 = (((uint128_t)x2 * x2) + (0x1f * (((uint128_t)x4 * x15) + (((uint128_t)x6 * x16) + (((uint128_t)x8 * x14) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + (((uint128_t)x14 * x8) + (((uint128_t)x16 * x6) + ((uint128_t)x15 * x4))))))))));
+ uint64_t x26 = (uint64_t) (x25 >> 0x37);
+ uint64_t x27 = ((uint64_t)x25 & 0x7fffffffffffff);
+ uint128_t x28 = (x26 + x24);
+ uint64_t x29 = (uint64_t) (x28 >> 0x37);
+ uint64_t x30 = ((uint64_t)x28 & 0x7fffffffffffff);
+ uint128_t x31 = (x29 + x23);
+ uint64_t x32 = (uint64_t) (x31 >> 0x37);
+ uint64_t x33 = ((uint64_t)x31 & 0x7fffffffffffff);
+ uint128_t x34 = (x32 + x22);
+ uint64_t x35 = (uint64_t) (x34 >> 0x37);
+ uint64_t x36 = ((uint64_t)x34 & 0x7fffffffffffff);
+ uint128_t x37 = (x35 + x21);
+ uint64_t x38 = (uint64_t) (x37 >> 0x37);
+ uint64_t x39 = ((uint64_t)x37 & 0x7fffffffffffff);
+ uint128_t x40 = (x38 + x20);
+ uint64_t x41 = (uint64_t) (x40 >> 0x37);
+ uint64_t x42 = ((uint64_t)x40 & 0x7fffffffffffff);
+ uint128_t x43 = (x41 + x19);
+ uint64_t x44 = (uint64_t) (x43 >> 0x37);
+ uint64_t x45 = ((uint64_t)x43 & 0x7fffffffffffff);
+ uint128_t x46 = (x44 + x18);
+ uint64_t x47 = (uint64_t) (x46 >> 0x37);
+ uint64_t x48 = ((uint64_t)x46 & 0x7fffffffffffff);
+ uint128_t x49 = (x47 + x17);
+ uint64_t x50 = (uint64_t) (x49 >> 0x37);
+ uint64_t x51 = ((uint64_t)x49 & 0x7fffffffffffff);
+ uint64_t x52 = (x27 + (0x1f * x50));
+ uint64_t x53 = (x52 >> 0x37);
+ uint64_t x54 = (x52 & 0x7fffffffffffff);
+ uint64_t x55 = (x53 + x30);
+ uint64_t x56 = (x55 >> 0x37);
+ uint64_t x57 = (x55 & 0x7fffffffffffff);
+ return (Return x51, Return x48, Return x45, Return x42, Return x39, Return x36, (x56 + x33), Return x57, Return x54))
x
- : 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)
+ : 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/freezeDisplay.log b/src/Specific/solinas64_2e495m31/freezeDisplay.log
index 3878776a4..bf754bb88 100644
--- a/src/Specific/solinas64_2e495m31/freezeDisplay.log
+++ b/src/Specific/solinas64_2e495m31/freezeDisplay.log
@@ -1,38 +1,35 @@
-λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
Interp-η
(λ var : Syntax.base_type → Type,
- λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffffffffe1);
- uint64_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x21, Return x4, 0x1ffffffffffff);
- uint64_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x24, Return x6, 0x3ffffffffffff);
- uint64_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x27, Return x8, 0x1ffffffffffff);
- uint64_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x30, Return x10, 0x3ffffffffffff);
- uint64_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x33, Return x12, 0x1ffffffffffff);
- uint64_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x36, Return x14, 0x3ffffffffffff);
- uint64_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x39, Return x16, 0x1ffffffffffff);
- uint64_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x42, Return x18, 0x3ffffffffffff);
- uint64_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x45, Return x17, 0x1ffffffffffff);
- uint64_t x49 = (uint64_t)cmovznz(x48, 0x0, 0xffffffffffffffffL);
- uint64_t x50 = x49 & 0x3ffffffffffe1;
- uint64_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
- uint64_t x54 = x49 & 0x1ffffffffffff;
- uint64_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
- uint64_t x58 = x49 & 0x3ffffffffffff;
- uint64_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x57, Return x26, Return x58);
- uint64_t x62 = x49 & 0x1ffffffffffff;
- uint64_t x64, uint8_t x65 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x61, Return x29, Return x62);
- uint64_t x66 = x49 & 0x3ffffffffffff;
- uint64_t x68, uint8_t x69 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x65, Return x32, Return x66);
- uint64_t x70 = x49 & 0x1ffffffffffff;
- uint64_t x72, uint8_t x73 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x69, Return x35, Return x70);
- uint64_t x74 = x49 & 0x3ffffffffffff;
- uint64_t x76, uint8_t x77 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x73, Return x38, Return x74);
- uint64_t x78 = x49 & 0x1ffffffffffff;
- uint64_t x80, uint8_t x81 = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x77, Return x41, Return x78);
- uint64_t x82 = x49 & 0x3ffffffffffff;
- uint64_t x84, uint8_t x85 = Op (Syntax.AddWithGetCarry 50 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x81, Return x44, Return x82);
- uint64_t x86 = x49 & 0x1ffffffffffff;
- uint64_t x88, uint8_t _ = Op (Syntax.AddWithGetCarry 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x85, Return x47, Return x86);
- (Return x88, Return x84, Return x80, Return x76, Return x72, Return x68, Return x64, Return x60, Return x56, Return x52))
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffffffffffe1);
+ uint64_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x19, Return x4, 0x7fffffffffffff);
+ uint64_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x22, Return x6, 0x7fffffffffffff);
+ uint64_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x7fffffffffffff);
+ uint64_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x28, Return x10, 0x7fffffffffffff);
+ uint64_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x12, 0x7fffffffffffff);
+ uint64_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x34, Return x14, 0x7fffffffffffff);
+ uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0x7fffffffffffff);
+ uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0x7fffffffffffff);
+ uint64_t x44 = (uint64_t)cmovznz(x43, 0x0, 0xffffffffffffffffL);
+ uint64_t x45 = (x44 & 0x7fffffffffffe1);
+ uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
+ uint64_t x49 = (x44 & 0x7fffffffffffff);
+ uint64_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
+ uint64_t x53 = (x44 & 0x7fffffffffffff);
+ uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x52, Return x24, Return x53);
+ uint64_t x57 = (x44 & 0x7fffffffffffff);
+ uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x27, Return x57);
+ uint64_t x61 = (x44 & 0x7fffffffffffff);
+ uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x30, Return x61);
+ uint64_t x65 = (x44 & 0x7fffffffffffff);
+ uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x33, Return x65);
+ uint64_t x69 = (x44 & 0x7fffffffffffff);
+ uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x36, Return x69);
+ uint64_t x73 = (x44 & 0x7fffffffffffff);
+ uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x39, Return x73);
+ uint64_t x77 = (x44 & 0x7fffffffffffff);
+ uint64_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 55 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x42, Return x77);
+ (Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x51, Return x47))
x
- : 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)
+ : 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)