aboutsummaryrefslogtreecommitdiff
path: root/src/Specific
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-13 00:51:26 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-11-13 00:51:26 -0500
commit5d8503a2c300b586efccdf42d7dd6e78c2b240fc (patch)
treefa085c18fc2473154300ef6157e300bfde7dcca2 /src/Specific
parent2d411951867e21c821bda7ca2a4edee30c13cf3b (diff)
Update display logs and c files
Diffstat (limited to 'src/Specific')
-rw-r--r--src/Specific/solinas32_2e140m27_7limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e140m27_7limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e150m3_7limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e150m3_7limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e150m3_7limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e150m3_7limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e158m15_7limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e158m15_7limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e158m15_7limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e158m15_7limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e165m25_8limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e165m25_8limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e166m5_7limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e166m5_7limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e166m5_7limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e166m5_7limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e174m17_7limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e174m17_7limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e174m17_7limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e174m17_7limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e174m3_8limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e174m3_8limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e174m3_8limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e174m3_8limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e190m11_8limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e190m11_8limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e190m11_8limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e190m11_8limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e191m19_8limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e191m19_8limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e191m19_8limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e191m19_8limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_10limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_10limbs/femulDisplay.log63
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_10limbs/fesquareDisplay.log63
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_10limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_10limbs/freezeDisplay.log38
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_9limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_9limbs/femulDisplay.log59
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_9limbs/fesquareDisplay.log59
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_9limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e192m2e64m1_9limbs/freezeDisplay.log35
-rw-r--r--src/Specific/solinas32_2e194m33_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e194m33_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e194m33_9limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e194m33_9limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e196m15_8limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e196m15_8limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e196m15_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e196m15_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e196m15_9limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e196m15_9limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e198m17_8limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e198m17_8limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e198m17_8limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e198m17_8limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e206m5_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e206m5_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e206m5_9limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e206m5_9limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e212m29_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e212m29_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e212m29_9limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e212m29_9limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e213m3_8limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e213m3_8limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e213m3_8limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e213m3_8limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e213m3_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e213m3_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e216m2e108m1_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e216m2e108m1_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e222m117_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e222m117_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e222m117_9limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e222m117_9limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e224m2e96p1_10limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e224m2e96p1_10limbs/freezeDisplay.log35
-rw-r--r--src/Specific/solinas32_2e224m2e96p1_11limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e224m2e96p1_11limbs/freezeDisplay.log38
-rw-r--r--src/Specific/solinas32_2e226m5_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e226m5_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e226m5_10limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e226m5_10limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e230m27_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e230m27_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e230m27_9limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e230m27_9limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e235m15_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e235m15_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e243m9_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e243m9_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e243m9_10limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e243m9_10limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e251m9_11limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e251m9_11limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e255m19_11limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e255m19_11limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e255m19_11limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e255m19_11limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e255m765_13limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e255m765_13limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e255m765_13limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e255m765_13limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e256m189_11limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e256m189_11limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e256m189_11limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e256m189_11limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/freezeDisplay.log38
-rw-r--r--src/Specific/solinas32_2e256m2e32m977_13limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m2e32m977_13limbs/femulDisplay.log75
-rw-r--r--src/Specific/solinas32_2e256m2e32m977_13limbs/fesquareDisplay.log75
-rw-r--r--src/Specific/solinas32_2e256m2e32m977_13limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e256m2e32m977_13limbs/freezeDisplay.log47
-rw-r--r--src/Specific/solinas32_2e266m3_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e266m3_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e266m3_10limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e266m3_10limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e291m19_11limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e291m19_11limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e291m19_11limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e291m19_11limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e321m9_13limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e321m9_13limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e321m9_13limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e321m9_13limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e336m3_13limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e336m3_13limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e338m15_14limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e338m15_14limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e369m25_15limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e369m25_15limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e369m25_15limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e369m25_15limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e379m19_16limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e379m19_16limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e379m19_16limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e379m19_16limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e382m105_16limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e382m105_16limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e382m105_16limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e382m105_16limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e382m105_17limbs/fesub.c2
-rw-r--r--src/Specific/solinas32_2e382m105_17limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas32_2e382m105_17limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e382m105_17limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e383m187_16limbs/feadd.c51
-rw-r--r--src/Specific/solinas32_2e383m187_16limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m187_16limbs/fesub.c51
-rw-r--r--src/Specific/solinas32_2e383m187_16limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m187_16limbs/freeze.c4
-rw-r--r--src/Specific/solinas32_2e383m187_16limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas32_2e383m187_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e383m187_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m187_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e383m187_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m187_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e383m187_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/feadd.c48
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/fesquare.c98
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/fesquareDisplay.log72
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/fesub.c48
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/freeze.c79
-rw-r--r--src/Specific/solinas32_2e383m31_15limbs/freezeDisplay.log53
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/feadd.c51
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/fesquare.c104
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/fesquareDisplay.log76
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/fesub.c51
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/freeze.c84
-rw-r--r--src/Specific/solinas32_2e383m31_16limbs/freezeDisplay.log56
-rw-r--r--src/Specific/solinas32_2e383m421_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e383m421_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m421_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e383m421_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m421_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e383m421_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e383m421_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e383m421_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m421_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e383m421_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e383m421_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e383m421_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/freezeDisplay.log60
-rw-r--r--src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/freezeDisplay.log63
-rw-r--r--src/Specific/solinas32_2e384m317_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e384m317_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e384m317_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e384m317_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e384m317_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e384m317_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/feadd.c48
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/femul.c113
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/femulDisplay.log72
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/fesquare.c98
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/fesquareDisplay.log72
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/fesub.c48
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/freeze.c79
-rw-r--r--src/Specific/solinas32_2e389m21_15limbs/freezeDisplay.log53
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/feadd.c51
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/fesquare.c104
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/fesquareDisplay.log76
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/fesub.c51
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/freeze.c84
-rw-r--r--src/Specific/solinas32_2e389m21_16limbs/freezeDisplay.log56
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/fesquare.c110
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/fesquareDisplay.log80
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e401m31_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/feadd.c51
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/fesquare.c104
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/fesquareDisplay.log76
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/fesub.c51
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/freeze.c84
-rw-r--r--src/Specific/solinas32_2e413m21_16limbs/freezeDisplay.log56
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/fesquare.c110
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/fesquareDisplay.log80
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e413m21_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/feadd.c51
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/fesquare.c104
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/fesquareDisplay.log76
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/fesub.c51
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/freeze.c84
-rw-r--r--src/Specific/solinas32_2e414m17_16limbs/freezeDisplay.log56
-rw-r--r--src/Specific/solinas32_2e414m17_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e414m17_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e414m17_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e414m17_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e414m17_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e414m17_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e416m2e208m1_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e416m2e208m1_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e416m2e208m1_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e416m2e208m1_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e416m2e208m1_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e416m2e208m1_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/fesquare.c110
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/fesquareDisplay.log80
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e444m17_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e444m17_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e444m17_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e444m17_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e444m17_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e444m17_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e444m17_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e448m2e224m1_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e448m2e224m1_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e448m2e224m1_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e448m2e224m1_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e448m2e224m1_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e448m2e224m1_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_20limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_20limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e450m2e225m1_20limbs/freezeDisplay.log68
-rw-r--r--src/Specific/solinas32_2e452m3_17limbs/feadd.c54
-rw-r--r--src/Specific/solinas32_2e452m3_17limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e452m3_17limbs/fesub.c54
-rw-r--r--src/Specific/solinas32_2e452m3_17limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e452m3_17limbs/freeze.c89
-rw-r--r--src/Specific/solinas32_2e452m3_17limbs/freezeDisplay.log59
-rw-r--r--src/Specific/solinas32_2e452m3_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e452m3_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e452m3_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e452m3_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e452m3_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e452m3_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e468m17_19limbs/feadd.c60
-rw-r--r--src/Specific/solinas32_2e468m17_19limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e468m17_19limbs/fesub.c60
-rw-r--r--src/Specific/solinas32_2e468m17_19limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e468m17_19limbs/freeze.c99
-rw-r--r--src/Specific/solinas32_2e468m17_19limbs/freezeDisplay.log65
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_18limbs/feadd.c57
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_18limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_18limbs/fesub.c57
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_18limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_18limbs/freeze.c94
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_18limbs/freezeDisplay.log62
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_20limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_20limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e480m2e240m1_20limbs/freezeDisplay.log68
-rw-r--r--src/Specific/solinas32_2e488m17_19limbs/feadd.c60
-rw-r--r--src/Specific/solinas32_2e488m17_19limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e488m17_19limbs/fesub.c60
-rw-r--r--src/Specific/solinas32_2e488m17_19limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e488m17_19limbs/freeze.c99
-rw-r--r--src/Specific/solinas32_2e488m17_19limbs/freezeDisplay.log65
-rw-r--r--src/Specific/solinas32_2e488m17_20limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e488m17_20limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e488m17_20limbs/freezeDisplay.log68
-rw-r--r--src/Specific/solinas32_2e489m21_19limbs/feadd.c60
-rw-r--r--src/Specific/solinas32_2e489m21_19limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e489m21_19limbs/fesub.c60
-rw-r--r--src/Specific/solinas32_2e489m21_19limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e489m21_19limbs/freeze.c99
-rw-r--r--src/Specific/solinas32_2e489m21_19limbs/freezeDisplay.log65
-rw-r--r--src/Specific/solinas32_2e489m21_20limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e489m21_20limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e489m21_20limbs/freezeDisplay.log68
-rw-r--r--src/Specific/solinas32_2e495m31_20limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e495m31_20limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e495m31_20limbs/freezeDisplay.log68
-rw-r--r--src/Specific/solinas32_2e495m31_21limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e495m31_21limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e495m31_21limbs/freezeDisplay.log71
-rw-r--r--src/Specific/solinas32_2e521m1_19limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas32_2e521m1_19limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas32_2e521m1_19limbs/freezeDisplay.log65
-rw-r--r--src/Specific/solinas64_2e256m2e32m977_7limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e256m2e32m977_7limbs/femulDisplay.log48
-rw-r--r--src/Specific/solinas64_2e256m2e32m977_7limbs/fesquareDisplay.log48
-rw-r--r--src/Specific/solinas64_2e256m2e32m977_7limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e256m2e32m977_7limbs/freezeDisplay.log29
-rw-r--r--src/Specific/solinas64_2e384m2e128m2e96p2e32m1_10limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m2e128m2e96p2e32m1_10limbs/freezeDisplay.log37
-rw-r--r--src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/freezeDisplay.log34
-rw-r--r--src/Specific/solinas64_2e480m2e240m1_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas64_2e480m2e240m1_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e488m17_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas64_2e488m17_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e488m17_10limbs/freeze.c4
-rw-r--r--src/Specific/solinas64_2e488m17_10limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas64_2e488m17_9limbs/fesub.c2
-rw-r--r--src/Specific/solinas64_2e488m17_9limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e488m17_9limbs/freeze.c4
-rw-r--r--src/Specific/solinas64_2e488m17_9limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas64_2e495m31_10limbs/fesub.c2
-rw-r--r--src/Specific/solinas64_2e495m31_10limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e511m187_11limbs/fesub.c2
-rw-r--r--src/Specific/solinas64_2e511m187_11limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e511m187_11limbs/freeze.c4
-rw-r--r--src/Specific/solinas64_2e511m187_11limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas64_2e511m481_11limbs/fesub.c2
-rw-r--r--src/Specific/solinas64_2e511m481_11limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e511m481_11limbs/freeze.c4
-rw-r--r--src/Specific/solinas64_2e511m481_11limbs/freezeDisplay.log4
-rw-r--r--src/Specific/solinas64_2e512m569_11limbs/fesub.c2
-rw-r--r--src/Specific/solinas64_2e512m569_11limbs/fesubDisplay.log2
-rw-r--r--src/Specific/solinas64_2e512m569_11limbs/freeze.c4
-rw-r--r--src/Specific/solinas64_2e512m569_11limbs/freezeDisplay.log4
375 files changed, 10322 insertions, 218 deletions
diff --git a/src/Specific/solinas32_2e140m27_7limbs/fesub.c b/src/Specific/solinas32_2e140m27_7limbs/fesub.c
index 962321096..acaabc6bb 100644
--- a/src/Specific/solinas32_2e140m27_7limbs/fesub.c
+++ b/src/Specific/solinas32_2e140m27_7limbs/fesub.c
@@ -13,7 +13,7 @@ static void fesub(uint32_t out[7], const uint32_t in1[7], const uint32_t in2[7])
{ const uint32_t x21 = in2[2];
{ const uint32_t x19 = in2[1];
{ const uint32_t x17 = in2[0];
- out[0] = ((Const 2097098 + x5) - x17);
+ out[0] = ((0x1fffca + x5) - x17);
out[1] = ((0x1ffffe + x7) - x19);
out[2] = ((0x1ffffe + x9) - x21);
out[3] = ((0x1ffffe + x11) - x23);
diff --git a/src/Specific/solinas32_2e140m27_7limbs/fesubDisplay.log b/src/Specific/solinas32_2e140m27_7limbs/fesubDisplay.log
index 1243bec9c..4b0289037 100644
--- a/src/Specific/solinas32_2e140m27_7limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e140m27_7limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
- (((0x1ffffe + x14) - x26), ((0x1ffffe + x15) - x27), ((0x1ffffe + x13) - x25), ((0x1ffffe + x11) - x23), ((0x1ffffe + x9) - x21), ((0x1ffffe + x7) - x19), ((Const 2097098 + x5) - x17)))
+ (((0x1ffffe + x14) - x26), ((0x1ffffe + x15) - x27), ((0x1ffffe + x13) - x25), ((0x1ffffe + x11) - x23), ((0x1ffffe + x9) - x21), ((0x1ffffe + x7) - x19), ((0x1fffca + x5) - x17)))
(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/solinas32_2e150m3_7limbs/fesub.c b/src/Specific/solinas32_2e150m3_7limbs/fesub.c
index e1a68d76d..28bad45b5 100644
--- a/src/Specific/solinas32_2e150m3_7limbs/fesub.c
+++ b/src/Specific/solinas32_2e150m3_7limbs/fesub.c
@@ -13,7 +13,7 @@ static void fesub(uint32_t out[7], const uint32_t in1[7], const uint32_t in2[7])
{ const uint32_t x21 = in2[2];
{ const uint32_t x19 = in2[1];
{ const uint32_t x17 = in2[0];
- out[0] = ((Const 8388602 + x5) - x17);
+ out[0] = ((0x7ffffa + x5) - x17);
out[1] = ((0x3ffffe + x7) - x19);
out[2] = ((0x7ffffe + x9) - x21);
out[3] = ((0x3ffffe + x11) - x23);
diff --git a/src/Specific/solinas32_2e150m3_7limbs/fesubDisplay.log b/src/Specific/solinas32_2e150m3_7limbs/fesubDisplay.log
index 02ad117dc..9bb97f7e2 100644
--- a/src/Specific/solinas32_2e150m3_7limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e150m3_7limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
- (((0x3ffffe + x14) - x26), ((0x3ffffe + x15) - x27), ((0x7ffffe + x13) - x25), ((0x3ffffe + x11) - x23), ((0x7ffffe + x9) - x21), ((0x3ffffe + x7) - x19), ((Const 8388602 + x5) - x17)))
+ (((0x3ffffe + x14) - x26), ((0x3ffffe + x15) - x27), ((0x7ffffe + x13) - x25), ((0x3ffffe + x11) - x23), ((0x7ffffe + x9) - x21), ((0x3ffffe + x7) - x19), ((0x7ffffa + x5) - x17)))
(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/solinas32_2e150m3_7limbs/freeze.c b/src/Specific/solinas32_2e150m3_7limbs/freeze.c
index 225ed3167..052baf1be 100644
--- a/src/Specific/solinas32_2e150m3_7limbs/freeze.c
+++ b/src/Specific/solinas32_2e150m3_7limbs/freeze.c
@@ -6,7 +6,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194301);
+ { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffd);
{ uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0x1fffff);
{ 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)) (Return x18, Return x6, 0x3fffff);
{ 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 x8, 0x1fffff);
@@ -14,7 +14,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ 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 x12, 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 x11, 0x1fffff);
{ uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- { uint32_t x35 = (x34 & Const 4194301);
+ { uint32_t x35 = (x34 & 0x3ffffd);
{ uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
{ uint32_t x39 = (x34 & 0x1fffff);
{ uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e150m3_7limbs/freezeDisplay.log b/src/Specific/solinas32_2e150m3_7limbs/freezeDisplay.log
index 611398eb3..5dc979b5d 100644
--- a/src/Specific/solinas32_2e150m3_7limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e150m3_7limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x11, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194301);
+ uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffd);
uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0x1fffff);
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)) (Return x18, Return x6, 0x3fffff);
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 x8, 0x1fffff);
@@ -10,7 +10,7 @@ Interp-η
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 x12, 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 x11, 0x1fffff);
uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- uint32_t x35 = (x34 & Const 4194301);
+ uint32_t x35 = (x34 & 0x3ffffd);
uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
uint32_t x39 = (x34 & 0x1fffff);
uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e158m15_7limbs/fesub.c b/src/Specific/solinas32_2e158m15_7limbs/fesub.c
index 588ef10cb..af7c7ded6 100644
--- a/src/Specific/solinas32_2e158m15_7limbs/fesub.c
+++ b/src/Specific/solinas32_2e158m15_7limbs/fesub.c
@@ -13,7 +13,7 @@ static void fesub(uint32_t out[7], const uint32_t in1[7], const uint32_t in2[7])
{ const uint32_t x21 = in2[2];
{ const uint32_t x19 = in2[1];
{ const uint32_t x17 = in2[0];
- out[0] = ((Const 16777186 + x5) - x17);
+ out[0] = ((0xffffe2 + x5) - x17);
out[1] = ((0xfffffe + x7) - x19);
out[2] = ((0x7ffffe + x9) - x21);
out[3] = ((0xfffffe + x11) - x23);
diff --git a/src/Specific/solinas32_2e158m15_7limbs/fesubDisplay.log b/src/Specific/solinas32_2e158m15_7limbs/fesubDisplay.log
index 036887e07..6e0448548 100644
--- a/src/Specific/solinas32_2e158m15_7limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e158m15_7limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
- (((0x7ffffe + x14) - x26), ((0xfffffe + x15) - x27), ((0x7ffffe + x13) - x25), ((0xfffffe + x11) - x23), ((0x7ffffe + x9) - x21), ((0xfffffe + x7) - x19), ((Const 16777186 + x5) - x17)))
+ (((0x7ffffe + x14) - x26), ((0xfffffe + x15) - x27), ((0x7ffffe + x13) - x25), ((0xfffffe + x11) - x23), ((0x7ffffe + x9) - x21), ((0xfffffe + x7) - x19), ((0xffffe2 + x5) - x17)))
(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/solinas32_2e158m15_7limbs/freeze.c b/src/Specific/solinas32_2e158m15_7limbs/freeze.c
index 319c1fb58..53531452f 100644
--- a/src/Specific/solinas32_2e158m15_7limbs/freeze.c
+++ b/src/Specific/solinas32_2e158m15_7limbs/freeze.c
@@ -6,7 +6,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388593);
+ { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffff1);
{ uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0x7fffff);
{ 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)) (Return x18, Return x6, 0x3fffff);
{ 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 x8, 0x7fffff);
@@ -14,7 +14,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ 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 x12, 0x7fffff);
{ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x11, 0x3fffff);
{ uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- { uint32_t x35 = (x34 & Const 8388593);
+ { uint32_t x35 = (x34 & 0x7ffff1);
{ uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
{ uint32_t x39 = (x34 & 0x7fffff);
{ uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e158m15_7limbs/freezeDisplay.log b/src/Specific/solinas32_2e158m15_7limbs/freezeDisplay.log
index 954c9c062..1d26d8e40 100644
--- a/src/Specific/solinas32_2e158m15_7limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e158m15_7limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x11, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388593);
+ uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffff1);
uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0x7fffff);
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)) (Return x18, Return x6, 0x3fffff);
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 x8, 0x7fffff);
@@ -10,7 +10,7 @@ Interp-η
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 x12, 0x7fffff);
uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x11, 0x3fffff);
uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- uint32_t x35 = (x34 & Const 8388593);
+ uint32_t x35 = (x34 & 0x7ffff1);
uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
uint32_t x39 = (x34 & 0x7fffff);
uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e165m25_8limbs/fesub.c b/src/Specific/solinas32_2e165m25_8limbs/fesub.c
index d5d2774bb..bd69e708d 100644
--- a/src/Specific/solinas32_2e165m25_8limbs/fesub.c
+++ b/src/Specific/solinas32_2e165m25_8limbs/fesub.c
@@ -15,7 +15,7 @@ static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8])
{ const uint32_t x23 = in2[2];
{ const uint32_t x21 = in2[1];
{ const uint32_t x19 = in2[0];
- out[0] = ((Const 4194254 + x5) - x19);
+ out[0] = ((0x3fffce + x5) - x19);
out[1] = ((0x3ffffe + x7) - x21);
out[2] = ((0x1ffffe + x9) - x23);
out[3] = ((0x3ffffe + x11) - x25);
diff --git a/src/Specific/solinas32_2e165m25_8limbs/fesubDisplay.log b/src/Specific/solinas32_2e165m25_8limbs/fesubDisplay.log
index 7f8624d69..660588243 100644
--- a/src/Specific/solinas32_2e165m25_8limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e165m25_8limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- (((0x1ffffe + x16) - x30), ((0x3ffffe + x17) - x31), ((0x1ffffe + x15) - x29), ((0x3ffffe + x13) - x27), ((0x3ffffe + x11) - x25), ((0x1ffffe + x9) - x23), ((0x3ffffe + x7) - x21), ((Const 4194254 + x5) - x19)))
+ (((0x1ffffe + x16) - x30), ((0x3ffffe + x17) - x31), ((0x1ffffe + x15) - x29), ((0x3ffffe + x13) - x27), ((0x3ffffe + x11) - x25), ((0x1ffffe + x9) - x23), ((0x3ffffe + x7) - x21), ((0x3fffce + x5) - x19)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e166m5_7limbs/fesub.c b/src/Specific/solinas32_2e166m5_7limbs/fesub.c
index 7a259152d..3336e6ee5 100644
--- a/src/Specific/solinas32_2e166m5_7limbs/fesub.c
+++ b/src/Specific/solinas32_2e166m5_7limbs/fesub.c
@@ -13,7 +13,7 @@ static void fesub(uint32_t out[7], const uint32_t in1[7], const uint32_t in2[7])
{ const uint32_t x21 = in2[2];
{ const uint32_t x19 = in2[1];
{ const uint32_t x17 = in2[0];
- out[0] = ((Const 33554422 + x5) - x17);
+ out[0] = ((0x1fffff6 + x5) - x17);
out[1] = ((0x1fffffe + x7) - x19);
out[2] = ((0x1fffffe + x9) - x21);
out[3] = ((0xfffffe + x11) - x23);
diff --git a/src/Specific/solinas32_2e166m5_7limbs/fesubDisplay.log b/src/Specific/solinas32_2e166m5_7limbs/fesubDisplay.log
index 473469aee..997385693 100644
--- a/src/Specific/solinas32_2e166m5_7limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e166m5_7limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
- (((0xfffffe + x14) - x26), ((0x1fffffe + x15) - x27), ((0x1fffffe + x13) - x25), ((0xfffffe + x11) - x23), ((0x1fffffe + x9) - x21), ((0x1fffffe + x7) - x19), ((Const 33554422 + x5) - x17)))
+ (((0xfffffe + x14) - x26), ((0x1fffffe + x15) - x27), ((0x1fffffe + x13) - x25), ((0xfffffe + x11) - x23), ((0x1fffffe + x9) - x21), ((0x1fffffe + x7) - x19), ((0x1fffff6 + x5) - x17)))
(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/solinas32_2e166m5_7limbs/freeze.c b/src/Specific/solinas32_2e166m5_7limbs/freeze.c
index 8335bdcd5..731ecced5 100644
--- a/src/Specific/solinas32_2e166m5_7limbs/freeze.c
+++ b/src/Specific/solinas32_2e166m5_7limbs/freeze.c
@@ -6,7 +6,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777211);
+ { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xfffffb);
{ uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0xffffff);
{ 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)) (Return x18, Return x6, 0xffffff);
{ 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 x8, 0x7fffff);
@@ -14,7 +14,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x12, 0xffffff);
{ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x11, 0x7fffff);
{ uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- { uint32_t x35 = (x34 & Const 16777211);
+ { uint32_t x35 = (x34 & 0xfffffb);
{ uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
{ uint32_t x39 = (x34 & 0xffffff);
{ uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e166m5_7limbs/freezeDisplay.log b/src/Specific/solinas32_2e166m5_7limbs/freezeDisplay.log
index 7fdd22346..aee4928a3 100644
--- a/src/Specific/solinas32_2e166m5_7limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e166m5_7limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x11, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777211);
+ uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xfffffb);
uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0xffffff);
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)) (Return x18, Return x6, 0xffffff);
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 x8, 0x7fffff);
@@ -10,7 +10,7 @@ Interp-η
uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x12, 0xffffff);
uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x11, 0x7fffff);
uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- uint32_t x35 = (x34 & Const 16777211);
+ uint32_t x35 = (x34 & 0xfffffb);
uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
uint32_t x39 = (x34 & 0xffffff);
uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e174m17_7limbs/fesub.c b/src/Specific/solinas32_2e174m17_7limbs/fesub.c
index 5ece7fe4e..d4d3ac9cd 100644
--- a/src/Specific/solinas32_2e174m17_7limbs/fesub.c
+++ b/src/Specific/solinas32_2e174m17_7limbs/fesub.c
@@ -13,7 +13,7 @@ static void fesub(uint32_t out[7], const uint32_t in1[7], const uint32_t in2[7])
{ const uint32_t x21 = in2[2];
{ const uint32_t x19 = in2[1];
{ const uint32_t x17 = in2[0];
- out[0] = ((Const 67108830 + x5) - x17);
+ out[0] = ((0x3ffffde + x5) - x17);
out[1] = ((0x3fffffe + x7) - x19);
out[2] = ((0x3fffffe + x9) - x21);
out[3] = ((0x3fffffe + x11) - x23);
diff --git a/src/Specific/solinas32_2e174m17_7limbs/fesubDisplay.log b/src/Specific/solinas32_2e174m17_7limbs/fesubDisplay.log
index e143ca6a3..bc7310e3d 100644
--- a/src/Specific/solinas32_2e174m17_7limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e174m17_7limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x14, x15, x13, x11, x9, x7, x5, (x26, x27, x25, x23, x21, x19, x17))%core,
- (((0x1fffffe + x14) - x26), ((0x3fffffe + x15) - x27), ((0x3fffffe + x13) - x25), ((0x3fffffe + x11) - x23), ((0x3fffffe + x9) - x21), ((0x3fffffe + x7) - x19), ((Const 67108830 + x5) - x17)))
+ (((0x1fffffe + x14) - x26), ((0x3fffffe + x15) - x27), ((0x3fffffe + x13) - x25), ((0x3fffffe + x11) - x23), ((0x3fffffe + x9) - x21), ((0x3fffffe + x7) - x19), ((0x3ffffde + x5) - x17)))
(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/solinas32_2e174m17_7limbs/freeze.c b/src/Specific/solinas32_2e174m17_7limbs/freeze.c
index 51d6da584..281034530 100644
--- a/src/Specific/solinas32_2e174m17_7limbs/freeze.c
+++ b/src/Specific/solinas32_2e174m17_7limbs/freeze.c
@@ -6,7 +6,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554415);
+ { uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffef);
{ uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0x1ffffff);
{ uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x18, Return x6, 0x1ffffff);
{ uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x8, 0x1ffffff);
@@ -14,7 +14,7 @@ static void freeze(uint32_t out[7], const uint32_t in1[7]) {
{ uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x12, 0x1ffffff);
{ 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 x11, 0xffffff);
{ uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- { uint32_t x35 = (x34 & Const 33554415);
+ { uint32_t x35 = (x34 & 0x1ffffef);
{ uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
{ uint32_t x39 = (x34 & 0x1ffffff);
{ uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e174m17_7limbs/freezeDisplay.log b/src/Specific/solinas32_2e174m17_7limbs/freezeDisplay.log
index 211f380a9..ff3dadf39 100644
--- a/src/Specific/solinas32_2e174m17_7limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e174m17_7limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x11, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554415);
+ uint32_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffef);
uint32_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x15, Return x4, 0x1ffffff);
uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x18, Return x6, 0x1ffffff);
uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x8, 0x1ffffff);
@@ -10,7 +10,7 @@ Interp-η
uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x12, 0x1ffffff);
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 x11, 0xffffff);
uint32_t x34 = cmovznz32(x33, 0x0, 0xffffffff);
- uint32_t x35 = (x34 & Const 33554415);
+ uint32_t x35 = (x34 & 0x1ffffef);
uint32_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
uint32_t x39 = (x34 & 0x1ffffff);
uint32_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
diff --git a/src/Specific/solinas32_2e174m3_8limbs/fesub.c b/src/Specific/solinas32_2e174m3_8limbs/fesub.c
index eb153a8c2..160676135 100644
--- a/src/Specific/solinas32_2e174m3_8limbs/fesub.c
+++ b/src/Specific/solinas32_2e174m3_8limbs/fesub.c
@@ -15,7 +15,7 @@ static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8])
{ const uint32_t x23 = in2[2];
{ const uint32_t x21 = in2[1];
{ const uint32_t x19 = in2[0];
- out[0] = ((Const 8388602 + x5) - x19);
+ out[0] = ((0x7ffffa + x5) - x19);
out[1] = ((0x7ffffe + x7) - x21);
out[2] = ((0x7ffffe + x9) - x23);
out[3] = ((0x3ffffe + x11) - x25);
diff --git a/src/Specific/solinas32_2e174m3_8limbs/fesubDisplay.log b/src/Specific/solinas32_2e174m3_8limbs/fesubDisplay.log
index 441786031..04f45b651 100644
--- a/src/Specific/solinas32_2e174m3_8limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e174m3_8limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- (((0x3ffffe + x16) - x30), ((0x7ffffe + x17) - x31), ((0x7ffffe + x15) - x29), ((0x7ffffe + x13) - x27), ((0x3ffffe + x11) - x25), ((0x7ffffe + x9) - x23), ((0x7ffffe + x7) - x21), ((Const 8388602 + x5) - x19)))
+ (((0x3ffffe + x16) - x30), ((0x7ffffe + x17) - x31), ((0x7ffffe + x15) - x29), ((0x7ffffe + x13) - x27), ((0x3ffffe + x11) - x25), ((0x7ffffe + x9) - x23), ((0x7ffffe + x7) - x21), ((0x7ffffa + x5) - x19)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e174m3_8limbs/freeze.c b/src/Specific/solinas32_2e174m3_8limbs/freeze.c
index 7d66409e1..eeaa231d4 100644
--- a/src/Specific/solinas32_2e174m3_8limbs/freeze.c
+++ b/src/Specific/solinas32_2e174m3_8limbs/freeze.c
@@ -7,7 +7,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194301);
+ { uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffd);
{ uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0x3fffff);
{ uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0x3fffff);
{ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0x1fffff);
@@ -16,7 +16,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ 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 x14, 0x3fffff);
{ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x1fffff);
{ uint32_t x39 = cmovznz32(x38, 0x0, 0xffffffff);
- { uint32_t x40 = (x39 & Const 4194301);
+ { uint32_t x40 = (x39 & 0x3ffffd);
{ uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
{ uint32_t x44 = (x39 & 0x3fffff);
{ uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
diff --git a/src/Specific/solinas32_2e174m3_8limbs/freezeDisplay.log b/src/Specific/solinas32_2e174m3_8limbs/freezeDisplay.log
index bd2cc1318..fe6dcee61 100644
--- a/src/Specific/solinas32_2e174m3_8limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e174m3_8limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194301);
+ uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffd);
uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0x3fffff);
uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0x3fffff);
uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0x1fffff);
@@ -11,7 +11,7 @@ Interp-η
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 x14, 0x3fffff);
uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x1fffff);
uint32_t x39 = cmovznz32(x38, 0x0, 0xffffffff);
- uint32_t x40 = (x39 & Const 4194301);
+ uint32_t x40 = (x39 & 0x3ffffd);
uint32_t x42, uint8_t x43 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x16, Return x40);
uint32_t x44 = (x39 & 0x3fffff);
uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
diff --git a/src/Specific/solinas32_2e190m11_8limbs/fesub.c b/src/Specific/solinas32_2e190m11_8limbs/fesub.c
index e39024217..b67318bf0 100644
--- a/src/Specific/solinas32_2e190m11_8limbs/fesub.c
+++ b/src/Specific/solinas32_2e190m11_8limbs/fesub.c
@@ -15,7 +15,7 @@ static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8])
{ const uint32_t x23 = in2[2];
{ const uint32_t x21 = in2[1];
{ const uint32_t x19 = in2[0];
- out[0] = ((Const 33554410 + x5) - x19);
+ out[0] = ((0x1ffffea + x5) - x19);
out[1] = ((0x1fffffe + x7) - x21);
out[2] = ((0x1fffffe + x9) - x23);
out[3] = ((0xfffffe + x11) - x25);
diff --git a/src/Specific/solinas32_2e190m11_8limbs/fesubDisplay.log b/src/Specific/solinas32_2e190m11_8limbs/fesubDisplay.log
index 05e21d4bf..0dc02a853 100644
--- a/src/Specific/solinas32_2e190m11_8limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e190m11_8limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- (((0xfffffe + x16) - x30), ((0x1fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x1fffffe + x13) - x27), ((0xfffffe + x11) - x25), ((0x1fffffe + x9) - x23), ((0x1fffffe + x7) - x21), ((Const 33554410 + x5) - x19)))
+ (((0xfffffe + x16) - x30), ((0x1fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x1fffffe + x13) - x27), ((0xfffffe + x11) - x25), ((0x1fffffe + x9) - x23), ((0x1fffffe + x7) - x21), ((0x1ffffea + x5) - x19)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e190m11_8limbs/freeze.c b/src/Specific/solinas32_2e190m11_8limbs/freeze.c
index 1458b40ee..564a5bbd7 100644
--- a/src/Specific/solinas32_2e190m11_8limbs/freeze.c
+++ b/src/Specific/solinas32_2e190m11_8limbs/freeze.c
@@ -7,7 +7,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777205);
+ { uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xfffff5);
{ 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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0x7fffff);
@@ -16,7 +16,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ 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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x7fffff);
{ uint32_t x39 = cmovznz32(x38, 0x0, 0xffffffff);
- { uint32_t x40 = (x39 & Const 16777205);
+ { uint32_t x40 = (x39 & 0xfffff5);
{ 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 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);
diff --git a/src/Specific/solinas32_2e190m11_8limbs/freezeDisplay.log b/src/Specific/solinas32_2e190m11_8limbs/freezeDisplay.log
index a8cb9c42e..3c65f2b1e 100644
--- a/src/Specific/solinas32_2e190m11_8limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e190m11_8limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777205);
+ uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xfffff5);
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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0x7fffff);
@@ -11,7 +11,7 @@ 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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x7fffff);
uint32_t x39 = cmovznz32(x38, 0x0, 0xffffffff);
- uint32_t x40 = (x39 & Const 16777205);
+ uint32_t x40 = (x39 & 0xfffff5);
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 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);
diff --git a/src/Specific/solinas32_2e191m19_8limbs/fesub.c b/src/Specific/solinas32_2e191m19_8limbs/fesub.c
index 7d7eebbb9..7749acd3d 100644
--- a/src/Specific/solinas32_2e191m19_8limbs/fesub.c
+++ b/src/Specific/solinas32_2e191m19_8limbs/fesub.c
@@ -15,7 +15,7 @@ static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8])
{ const uint32_t x23 = in2[2];
{ const uint32_t x21 = in2[1];
{ const uint32_t x19 = in2[0];
- out[0] = ((Const 33554394 + x5) - x19);
+ out[0] = ((0x1ffffda + x5) - x19);
out[1] = ((0x1fffffe + x7) - x21);
out[2] = ((0x1fffffe + x9) - x23);
out[3] = ((0x1fffffe + x11) - x25);
diff --git a/src/Specific/solinas32_2e191m19_8limbs/fesubDisplay.log b/src/Specific/solinas32_2e191m19_8limbs/fesubDisplay.log
index 808561a1f..af93c846a 100644
--- a/src/Specific/solinas32_2e191m19_8limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e191m19_8limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- (((0xfffffe + x16) - x30), ((0x1fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x1fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((0x1fffffe + x9) - x23), ((0x1fffffe + x7) - x21), ((Const 33554394 + x5) - x19)))
+ (((0xfffffe + x16) - x30), ((0x1fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x1fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((0x1fffffe + x9) - x23), ((0x1fffffe + x7) - x21), ((0x1ffffda + x5) - x19)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e191m19_8limbs/freeze.c b/src/Specific/solinas32_2e191m19_8limbs/freeze.c
index f736b8299..fd2a1675a 100644
--- a/src/Specific/solinas32_2e191m19_8limbs/freeze.c
+++ b/src/Specific/solinas32_2e191m19_8limbs/freeze.c
@@ -7,7 +7,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777197);
+ { uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffed);
{ 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);
@@ -16,7 +16,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ 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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x7fffff);
{ uint32_t x39 = cmovznz32(x38, 0x0, 0xffffffff);
- { uint32_t x40 = (x39 & Const 16777197);
+ { uint32_t x40 = (x39 & 0xffffed);
{ 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 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);
diff --git a/src/Specific/solinas32_2e191m19_8limbs/freezeDisplay.log b/src/Specific/solinas32_2e191m19_8limbs/freezeDisplay.log
index 0832300ea..d864e8413 100644
--- a/src/Specific/solinas32_2e191m19_8limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e191m19_8limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777197);
+ uint32_t x16, uint8_t x17 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffed);
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);
@@ -11,7 +11,7 @@ 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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x7fffff);
uint32_t x39 = cmovznz32(x38, 0x0, 0xffffffff);
- uint32_t x40 = (x39 & Const 16777197);
+ uint32_t x40 = (x39 & 0xffffed);
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 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);
diff --git a/src/Specific/solinas32_2e192m2e64m1_10limbs/feaddDisplay.log b/src/Specific/solinas32_2e192m2e64m1_10limbs/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_10limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e192m2e64m1_10limbs/femulDisplay.log b/src/Specific/solinas32_2e192m2e64m1_10limbs/femulDisplay.log
new file mode 100644
index 000000000..3e47b8298
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_10limbs/femulDisplay.log
@@ -0,0 +1,63 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ℤ 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)))))))))) +ℤ ((0x80 * (((uint64_t)x19 * x38) + (((uint64_t)x21 * x39) + ((uint64_t)x20 * x37)))) +ℤ ((0x4000000 *ℤ (((uint64_t)x21 * x38) + ((uint64_t)x20 * x39))) +ℤ (0x200000000000 *ℤ ((uint64_t)x20 * x38)))));
+ 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))))))))) + (((uint64_t)x20 * x38) + (0x40 * ((0x2 * ((uint64_t)x17 * x38)) + ((0x2 * ((uint64_t)x19 * x39)) + ((0x2 * ((uint64_t)x21 * x37)) + (0x2 * ((uint64_t)x20 * x35))))))));
+ 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)))))))) + ((((uint64_t)x21 * x38) + ((uint64_t)x20 * x39)) + (0x40 * (((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 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))))))) + ((((uint64_t)x19 * x38) + (((uint64_t)x21 * x39) + ((uint64_t)x20 * x37))) + (0x40 * (((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 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)))))) + (((0x2 * ((uint64_t)x17 * x38)) + ((0x2 * ((uint64_t)x19 * x39)) + ((0x2 * ((uint64_t)x21 * x37)) + (0x2 * ((uint64_t)x20 * x35))))) + (0x80 * (((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 x45 = ((((uint64_t)x5 * x31) + ((0x2 * ((uint64_t)x7 * x29)) + ((0x2 * ((uint64_t)x9 * x27)) + ((0x2 * ((uint64_t)x11 * x25)) + ((uint64_t)x13 * x23))))) + ((((uint64_t)x15 * x38) + ((0x2 * ((uint64_t)x17 * x39)) + ((0x2 * ((uint64_t)x19 * x37)) + ((0x2 * ((uint64_t)x21 * x35)) + ((uint64_t)x20 * x33))))) + (0x80 * (((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 x46 = ((((uint64_t)x5 * x29) + ((0x2 * ((uint64_t)x7 * x27)) + ((0x2 * ((uint64_t)x9 * x25)) + ((uint64_t)x11 * x23)))) + ((((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)))))) + (0x40 * ((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)))))))))))));
+ uint64_t x47 = ((((uint64_t)x5 * x27) + ((0x2 * ((uint64_t)x7 * x25)) + ((uint64_t)x9 * x23))) + (((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)) + (((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) + ((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) (x47 >> 0x13);
+ uint32_t x51 = ((uint32_t)x47 & 0x7ffff);
+ ℤ x52 = (x40 >>ℤ 0x13);
+ uint32_t x53 = (x40 & 0x7ffff);
+ ℤ x54 = ((0x80000 *ℤ x52) +ℤ x53);
+ ℤ x55 = (x54 >>ℤ 0x13);
+ uint32_t x56 = (x54 & 0x7ffff);
+ ℤ x57 = ((x50 + x46) +ℤ (0x40 *ℤ x55));
+ uint64_t x58 = (x57 >> 0x13);
+ uint32_t x59 = (x57 & 0x7ffff);
+ ℤ x60 = (x49 +ℤ x55);
+ uint64_t x61 = (x60 >> 0x14);
+ uint32_t x62 = (x60 & 0xfffff);
+ uint64_t x63 = (x58 + x45);
+ uint64_t x64 = (x63 >> 0x13);
+ uint32_t x65 = ((uint32_t)x63 & 0x7ffff);
+ uint64_t x66 = (x61 + x48);
+ uint32_t x67 = (uint32_t) (x66 >> 0x13);
+ uint32_t x68 = ((uint32_t)x66 & 0x7ffff);
+ uint64_t x69 = (x64 + x44);
+ uint32_t x70 = (uint32_t) (x69 >> 0x14);
+ uint32_t x71 = ((uint32_t)x69 & 0xfffff);
+ uint32_t x72 = (x67 + x51);
+ uint32_t x73 = (x72 >> 0x13);
+ uint32_t x74 = (x72 & 0x7ffff);
+ uint64_t x75 = (x70 + x43);
+ uint32_t x76 = (uint32_t) (x75 >> 0x13);
+ uint32_t x77 = ((uint32_t)x75 & 0x7ffff);
+ uint64_t x78 = (x76 + x42);
+ uint32_t x79 = (uint32_t) (x78 >> 0x13);
+ uint32_t x80 = ((uint32_t)x78 & 0x7ffff);
+ uint64_t x81 = (x79 + x41);
+ uint32_t x82 = (uint32_t) (x81 >> 0x13);
+ uint32_t x83 = ((uint32_t)x81 & 0x7ffff);
+ uint32_t x84 = (x82 + x56);
+ uint32_t x85 = (x84 >> 0x13);
+ uint32_t x86 = (x84 & 0x7ffff);
+ uint32_t x87 = ((0x80000 * x85) + x86);
+ uint32_t x88 = (x87 >> 0x13);
+ uint32_t x89 = (x87 & 0x7ffff);
+ uint32_t x90 = ((x73 + x59) + (0x40 * x88));
+ uint32_t x91 = (x90 >> 0x13);
+ uint32_t x92 = (x90 & 0x7ffff);
+ uint32_t x93 = (x62 + x88);
+ uint32_t x94 = (x93 >> 0x14);
+ uint32_t x95 = (x93 & 0xfffff);
+ return (Return x89, Return x83, Return x80, Return x77, Return x71, (x91 + x65), Return x92, Return x74, (x94 + x68), Return x95))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e192m2e64m1_10limbs/fesquareDisplay.log b/src/Specific/solinas32_2e192m2e64m1_10limbs/fesquareDisplay.log
new file mode 100644
index 000000000..fe134cb59
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_10limbs/fesquareDisplay.log
@@ -0,0 +1,63 @@
+λ x : word32 * 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,
+ ℤ 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)))))))))) +ℤ ((0x80 * (((uint64_t)x16 * x17) + (((uint64_t)x18 * x18) + ((uint64_t)x17 * x16)))) +ℤ ((0x4000000 *ℤ (((uint64_t)x18 * x17) + ((uint64_t)x17 * x18))) +ℤ (0x200000000000 *ℤ ((uint64_t)x17 * x17)))));
+ 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))))))))) + (((uint64_t)x17 * x17) + (0x40 * ((0x2 * ((uint64_t)x14 * x17)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (0x2 * ((uint64_t)x17 * x14))))))));
+ 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)))))))) + ((((uint64_t)x18 * x17) + ((uint64_t)x17 * x18)) + (0x40 * (((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 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))))))) + ((((uint64_t)x16 * x17) + (((uint64_t)x18 * x18) + ((uint64_t)x17 * x16))) + (0x40 * (((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 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)))))) + (((0x2 * ((uint64_t)x14 * x17)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (0x2 * ((uint64_t)x17 * x14))))) + (0x80 * (((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 x24 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + ((((uint64_t)x12 * x17) + ((0x2 * ((uint64_t)x14 * x18)) + ((0x2 * ((uint64_t)x16 * x16)) + ((0x2 * ((uint64_t)x18 * x14)) + ((uint64_t)x17 * x12))))) + (0x80 * (((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 x25 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + ((((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)))))) + (0x40 * ((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)))))))))))));
+ uint64_t x26 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (((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)) + (((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) + ((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) (x26 >> 0x13);
+ uint32_t x30 = ((uint32_t)x26 & 0x7ffff);
+ ℤ x31 = (x19 >>ℤ 0x13);
+ uint32_t x32 = (x19 & 0x7ffff);
+ ℤ x33 = ((0x80000 *ℤ x31) +ℤ x32);
+ ℤ x34 = (x33 >>ℤ 0x13);
+ uint32_t x35 = (x33 & 0x7ffff);
+ ℤ x36 = ((x29 + x25) +ℤ (0x40 *ℤ x34));
+ uint64_t x37 = (x36 >> 0x13);
+ uint32_t x38 = (x36 & 0x7ffff);
+ ℤ x39 = (x28 +ℤ x34);
+ uint64_t x40 = (x39 >> 0x14);
+ uint32_t x41 = (x39 & 0xfffff);
+ uint64_t x42 = (x37 + x24);
+ uint64_t x43 = (x42 >> 0x13);
+ uint32_t x44 = ((uint32_t)x42 & 0x7ffff);
+ uint64_t x45 = (x40 + x27);
+ uint32_t x46 = (uint32_t) (x45 >> 0x13);
+ uint32_t x47 = ((uint32_t)x45 & 0x7ffff);
+ uint64_t x48 = (x43 + x23);
+ uint32_t x49 = (uint32_t) (x48 >> 0x14);
+ uint32_t x50 = ((uint32_t)x48 & 0xfffff);
+ uint32_t x51 = (x46 + x30);
+ uint32_t x52 = (x51 >> 0x13);
+ uint32_t x53 = (x51 & 0x7ffff);
+ uint64_t x54 = (x49 + x22);
+ uint32_t x55 = (uint32_t) (x54 >> 0x13);
+ uint32_t x56 = ((uint32_t)x54 & 0x7ffff);
+ uint64_t x57 = (x55 + x21);
+ uint32_t x58 = (uint32_t) (x57 >> 0x13);
+ uint32_t x59 = ((uint32_t)x57 & 0x7ffff);
+ uint64_t x60 = (x58 + x20);
+ uint32_t x61 = (uint32_t) (x60 >> 0x13);
+ uint32_t x62 = ((uint32_t)x60 & 0x7ffff);
+ uint32_t x63 = (x61 + x35);
+ uint32_t x64 = (x63 >> 0x13);
+ uint32_t x65 = (x63 & 0x7ffff);
+ uint32_t x66 = ((0x80000 * x64) + x65);
+ uint32_t x67 = (x66 >> 0x13);
+ uint32_t x68 = (x66 & 0x7ffff);
+ uint32_t x69 = ((x52 + x38) + (0x40 * x67));
+ uint32_t x70 = (x69 >> 0x13);
+ uint32_t x71 = (x69 & 0x7ffff);
+ uint32_t x72 = (x41 + x67);
+ uint32_t x73 = (x72 >> 0x14);
+ uint32_t x74 = (x72 & 0xfffff);
+ return (Return x68, Return x62, Return x59, Return x56, Return x50, (x70 + x44), Return x71, Return x53, (x73 + x47), Return x74))
+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)
diff --git a/src/Specific/solinas32_2e192m2e64m1_10limbs/fesubDisplay.log b/src/Specific/solinas32_2e192m2e64m1_10limbs/fesubDisplay.log
new file mode 100644
index 000000000..14e7e7582
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_10limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ (((0xffffe + x20) - x38), ((0xffffe + x21) - x39), ((0xffffe + x19) - x37), ((0xffffe + x17) - x35), ((0x1ffffe + x15) - x33), ((0xffffe + x13) - x31), ((Const 1048446 + x11) - x29), ((0xffffe + x9) - x27), ((0xffffe + x7) - x25), ((0x1ffffe + x5) - x23)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e192m2e64m1_10limbs/freezeDisplay.log b/src/Specific/solinas32_2e192m2e64m1_10limbs/freezeDisplay.log
new file mode 100644
index 000000000..a15e0d498
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_10limbs/freezeDisplay.log
@@ -0,0 +1,38 @@
+λ x : word32 * 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 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xfffff);
+ uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0x7ffff);
+ uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0x7ffff);
+ uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, Const 524223);
+ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x10, 0x7ffff);
+ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x12, 0xfffff);
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x14, 0x7ffff);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x16, 0x7ffff);
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x7ffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x7ffff);
+ uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
+ uint32_t x50 = (x49 & 0xfffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
+ uint32_t x54 = (x49 & 0x7ffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 19 (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 & 0x7ffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 19 (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 & Const 524223);
+ uint32_t x64, uint8_t x65 = Op (Syntax.AddWithGetCarry 19 (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 & 0x7ffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.AddWithGetCarry 19 (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 & 0xfffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.AddWithGetCarry 20 (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 & 0x7ffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.AddWithGetCarry 19 (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 & 0x7ffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.AddWithGetCarry 19 (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 & 0x7ffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.AddWithGetCarry 19 (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 & 0x7ffff);
+ uint32_t x88, uint8_t _ = Op (Syntax.AddWithGetCarry 19 (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))
+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)
diff --git a/src/Specific/solinas32_2e192m2e64m1_9limbs/feaddDisplay.log b/src/Specific/solinas32_2e192m2e64m1_9limbs/feaddDisplay.log
new file mode 100644
index 000000000..e26bb40f8
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_9limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ 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,
+ ((x18 + x34), (x19 + x35), (x17 + x33), (x15 + x31), (x13 + x29), (x11 + x27), (x9 + x25), (x7 + x23), (x5 + x21)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e192m2e64m1_9limbs/femulDisplay.log b/src/Specific/solinas32_2e192m2e64m1_9limbs/femulDisplay.log
new file mode 100644
index 000000000..a56b0c125
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_9limbs/femulDisplay.log
@@ -0,0 +1,59 @@
+λ 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,
+ ℤ 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)x17 * x34) + ((0x2 * ((uint64_t)x19 * x35)) + ((uint64_t)x18 * x33))) +ℤ ((0x200000 *ℤ ((0x2 * ((uint64_t)x19 * x34)) + (0x2 * ((uint64_t)x18 * x35)))) +ℤ (0x80000000000 *ℤ ((uint64_t)x18 * x34)))));
+ 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) + (((uint64_t)x15 * x34) + (((uint64_t)x17 * x35) + (((uint64_t)x19 * x33) + ((uint64_t)x18 * x31))))));
+ 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 * ((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 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))) + (((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 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)))) + (((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 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 * ((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 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)))))));
+ uint64_t 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))))))));
+ uint64_t 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))))))))));
+ uint32_t x45 = (uint32_t) (x42 >> 0x15);
+ uint32_t x46 = ((uint32_t)x42 & 0x1fffff);
+ ℤ x47 = (x36 >>ℤ 0x15);
+ uint32_t x48 = (x36 & 0x1fffff);
+ ℤ x49 = ((0x200000 *ℤ x47) +ℤ x48);
+ ℤ x50 = (x49 >>ℤ 0x15);
+ uint32_t x51 = (x49 & 0x1fffff);
+ ℤ x52 = ((x45 + x41) +ℤ x50);
+ uint64_t x53 = (x52 >> 0x16);
+ uint32_t x54 = (x52 & 0x3fffff);
+ ℤ x55 = (x44 +ℤ x50);
+ uint64_t x56 = (x55 >> 0x16);
+ uint32_t x57 = (x55 & 0x3fffff);
+ uint64_t x58 = (x53 + x40);
+ uint32_t x59 = (uint32_t) (x58 >> 0x15);
+ uint32_t x60 = ((uint32_t)x58 & 0x1fffff);
+ uint64_t x61 = (x56 + x43);
+ uint32_t x62 = (uint32_t) (x61 >> 0x15);
+ uint32_t x63 = ((uint32_t)x61 & 0x1fffff);
+ uint64_t x64 = (x59 + x39);
+ uint32_t x65 = (uint32_t) (x64 >> 0x15);
+ uint32_t x66 = ((uint32_t)x64 & 0x1fffff);
+ uint32_t x67 = (x62 + x46);
+ uint32_t x68 = (x67 >> 0x15);
+ uint32_t x69 = (x67 & 0x1fffff);
+ uint64_t x70 = (x65 + x38);
+ uint32_t x71 = (uint32_t) (x70 >> 0x16);
+ uint32_t x72 = ((uint32_t)x70 & 0x3fffff);
+ uint64_t x73 = (x71 + x37);
+ uint32_t x74 = (uint32_t) (x73 >> 0x15);
+ uint32_t x75 = ((uint32_t)x73 & 0x1fffff);
+ uint32_t x76 = (x74 + x51);
+ uint32_t x77 = (x76 >> 0x15);
+ uint32_t x78 = (x76 & 0x1fffff);
+ uint32_t x79 = ((0x200000 * x77) + x78);
+ uint32_t x80 = (x79 >> 0x15);
+ uint32_t x81 = (x79 & 0x1fffff);
+ uint32_t x82 = ((x68 + x54) + x80);
+ uint32_t x83 = (x82 >> 0x16);
+ uint32_t x84 = (x82 & 0x3fffff);
+ uint32_t x85 = (x57 + x80);
+ uint32_t x86 = (x85 >> 0x16);
+ uint32_t x87 = (x85 & 0x3fffff);
+ return (Return x81, Return x75, Return x72, Return x66, (x83 + x60), Return x84, Return x69, (x86 + x63), Return x87))
+(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_2e192m2e64m1_9limbs/fesquareDisplay.log b/src/Specific/solinas32_2e192m2e64m1_9limbs/fesquareDisplay.log
new file mode 100644
index 000000000..18e5049e0
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_9limbs/fesquareDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x15, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ ℤ 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)x14 * x15) + ((0x2 * ((uint64_t)x16 * x16)) + ((uint64_t)x15 * x14))) +ℤ ((0x200000 *ℤ ((0x2 * ((uint64_t)x16 * x15)) + (0x2 * ((uint64_t)x15 * x16)))) +ℤ (0x80000000000 *ℤ ((uint64_t)x15 * x15)))));
+ 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) + (((uint64_t)x12 * x15) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((uint64_t)x15 * x12))))));
+ 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 * ((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 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))) + (((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 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)))) + (((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 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 * ((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 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)))))));
+ uint64_t 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))))))));
+ uint64_t 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))))))))));
+ uint32_t x26 = (uint32_t) (x23 >> 0x15);
+ uint32_t x27 = ((uint32_t)x23 & 0x1fffff);
+ ℤ x28 = (x17 >>ℤ 0x15);
+ uint32_t x29 = (x17 & 0x1fffff);
+ ℤ x30 = ((0x200000 *ℤ x28) +ℤ x29);
+ ℤ x31 = (x30 >>ℤ 0x15);
+ uint32_t x32 = (x30 & 0x1fffff);
+ ℤ x33 = ((x26 + x22) +ℤ x31);
+ uint64_t x34 = (x33 >> 0x16);
+ uint32_t x35 = (x33 & 0x3fffff);
+ ℤ x36 = (x25 +ℤ x31);
+ uint64_t x37 = (x36 >> 0x16);
+ uint32_t x38 = (x36 & 0x3fffff);
+ uint64_t x39 = (x34 + x21);
+ uint32_t x40 = (uint32_t) (x39 >> 0x15);
+ uint32_t x41 = ((uint32_t)x39 & 0x1fffff);
+ uint64_t x42 = (x37 + x24);
+ uint32_t x43 = (uint32_t) (x42 >> 0x15);
+ uint32_t x44 = ((uint32_t)x42 & 0x1fffff);
+ uint64_t x45 = (x40 + x20);
+ uint32_t x46 = (uint32_t) (x45 >> 0x15);
+ uint32_t x47 = ((uint32_t)x45 & 0x1fffff);
+ uint32_t x48 = (x43 + x27);
+ uint32_t x49 = (x48 >> 0x15);
+ uint32_t x50 = (x48 & 0x1fffff);
+ uint64_t x51 = (x46 + x19);
+ uint32_t x52 = (uint32_t) (x51 >> 0x16);
+ uint32_t x53 = ((uint32_t)x51 & 0x3fffff);
+ uint64_t x54 = (x52 + x18);
+ uint32_t x55 = (uint32_t) (x54 >> 0x15);
+ uint32_t x56 = ((uint32_t)x54 & 0x1fffff);
+ uint32_t x57 = (x55 + x32);
+ uint32_t x58 = (x57 >> 0x15);
+ uint32_t x59 = (x57 & 0x1fffff);
+ uint32_t x60 = ((0x200000 * x58) + x59);
+ uint32_t x61 = (x60 >> 0x15);
+ uint32_t x62 = (x60 & 0x1fffff);
+ uint32_t x63 = ((x49 + x35) + x61);
+ uint32_t x64 = (x63 >> 0x16);
+ uint32_t x65 = (x63 & 0x3fffff);
+ uint32_t x66 = (x38 + x61);
+ uint32_t x67 = (x66 >> 0x16);
+ uint32_t x68 = (x66 & 0x3fffff);
+ return (Return x62, Return x56, Return x53, Return x47, (x64 + x41), Return x65, Return x50, (x67 + x44), Return x68))
+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_2e192m2e64m1_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e192m2e64m1_9limbs/fesubDisplay.log
new file mode 100644
index 000000000..9c0e83ada
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_9limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ 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,
+ (((0x3ffffe + x18) - x34), ((0x3ffffe + x19) - x35), ((0x7ffffe + x17) - x33), ((0x3ffffe + x15) - x31), ((0x3ffffe + x13) - x29), ((0x7ffffc + x11) - x27), ((0x3ffffe + x9) - x25), ((0x3ffffe + x7) - x23), ((0x7ffffe + x5) - x21)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e192m2e64m1_9limbs/freezeDisplay.log b/src/Specific/solinas32_2e192m2e64m1_9limbs/freezeDisplay.log
new file mode 100644
index 000000000..bd91d1424
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1_9limbs/freezeDisplay.log
@@ -0,0 +1,35 @@
+λ x : word32 * 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 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffff);
+ uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x1fffff);
+ uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x1fffff);
+ uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3ffffe);
+ uint32_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x28, Return x10, 0x1fffff);
+ uint32_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x31, Return x12, 0x1fffff);
+ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x34, Return x14, 0x3fffff);
+ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x1fffff);
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1fffff);
+ uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
+ uint32_t x45 = (x44 & 0x3fffff);
+ 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 & 0x1fffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 21 (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 & 0x1fffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 21 (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 & 0x3ffffe);
+ 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 & 0x1fffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 21 (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 & 0x1fffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 21 (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 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 & 0x1fffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 21 (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 & 0x1fffff);
+ uint32_t x79, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (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 → 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_2e194m33_9limbs/fesub.c b/src/Specific/solinas32_2e194m33_9limbs/fesub.c
index 06e01015e..006cd3547 100644
--- a/src/Specific/solinas32_2e194m33_9limbs/fesub.c
+++ b/src/Specific/solinas32_2e194m33_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 8388542 + x5) - x21);
+ out[0] = ((0x7fffbe + x5) - x21);
out[1] = ((0x7ffffe + x7) - x23);
out[2] = ((0x3ffffe + x9) - x25);
out[3] = ((0x7ffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e194m33_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e194m33_9limbs/fesubDisplay.log
index e7d67c1f2..e8c72a24c 100644
--- a/src/Specific/solinas32_2e194m33_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e194m33_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x3ffffe + x18) - x34), ((0x7ffffe + x19) - x35), ((0x3ffffe + x17) - x33), ((0x7ffffe + x15) - x31), ((0x3ffffe + x13) - x29), ((0x7ffffe + x11) - x27), ((0x3ffffe + x9) - x25), ((0x7ffffe + x7) - x23), ((Const 8388542 + x5) - x21)))
+ (((0x3ffffe + x18) - x34), ((0x7ffffe + x19) - x35), ((0x3ffffe + x17) - x33), ((0x7ffffe + x15) - x31), ((0x3ffffe + x13) - x29), ((0x7ffffe + x11) - x27), ((0x3ffffe + x9) - x25), ((0x7ffffe + x7) - x23), ((0x7fffbe + x5) - x21)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e194m33_9limbs/freeze.c b/src/Specific/solinas32_2e194m33_9limbs/freeze.c
index 7dacfa20f..2f5e9aea3 100644
--- a/src/Specific/solinas32_2e194m33_9limbs/freeze.c
+++ b/src/Specific/solinas32_2e194m33_9limbs/freeze.c
@@ -8,7 +8,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194271);
+ { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffdf);
{ uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x3fffff);
{ uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x1fffff);
{ uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3fffff);
@@ -18,7 +18,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ 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 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1fffff);
{ uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- { uint32_t x45 = (x44 & Const 4194271);
+ { uint32_t x45 = (x44 & 0x3fffdf);
{ 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 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);
diff --git a/src/Specific/solinas32_2e194m33_9limbs/freezeDisplay.log b/src/Specific/solinas32_2e194m33_9limbs/freezeDisplay.log
index e3015f39d..849fa9815 100644
--- a/src/Specific/solinas32_2e194m33_9limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e194m33_9limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194271);
+ uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffdf);
uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x3fffff);
uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x1fffff);
uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3fffff);
@@ -12,7 +12,7 @@ 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 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1fffff);
uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- uint32_t x45 = (x44 & Const 4194271);
+ uint32_t x45 = (x44 & 0x3fffdf);
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 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);
diff --git a/src/Specific/solinas32_2e196m15_8limbs/fesub.c b/src/Specific/solinas32_2e196m15_8limbs/fesub.c
index 013addd3a..0a3649df5 100644
--- a/src/Specific/solinas32_2e196m15_8limbs/fesub.c
+++ b/src/Specific/solinas32_2e196m15_8limbs/fesub.c
@@ -15,7 +15,7 @@ static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8])
{ const uint32_t x23 = in2[2];
{ const uint32_t x21 = in2[1];
{ const uint32_t x19 = in2[0];
- out[0] = ((Const 67108834 + x5) - x19);
+ out[0] = ((0x3ffffe2 + x5) - x19);
out[1] = ((0x1fffffe + x7) - x21);
out[2] = ((0x3fffffe + x9) - x23);
out[3] = ((0x1fffffe + x11) - x25);
diff --git a/src/Specific/solinas32_2e196m15_8limbs/fesubDisplay.log b/src/Specific/solinas32_2e196m15_8limbs/fesubDisplay.log
index 7dac3d64f..d16646c0c 100644
--- a/src/Specific/solinas32_2e196m15_8limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e196m15_8limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- (((0x1fffffe + x16) - x30), ((0x3fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x3fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((0x3fffffe + x9) - x23), ((0x1fffffe + x7) - x21), ((Const 67108834 + x5) - x19)))
+ (((0x1fffffe + x16) - x30), ((0x3fffffe + x17) - x31), ((0x1fffffe + x15) - x29), ((0x3fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((0x3fffffe + x9) - x23), ((0x1fffffe + x7) - x21), ((0x3ffffe2 + x5) - x19)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e196m15_9limbs/fesub.c b/src/Specific/solinas32_2e196m15_9limbs/fesub.c
index a2822a647..c68e4d712 100644
--- a/src/Specific/solinas32_2e196m15_9limbs/fesub.c
+++ b/src/Specific/solinas32_2e196m15_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 8388578 + x5) - x21);
+ out[0] = ((0x7fffe2 + x5) - x21);
out[1] = ((0x7ffffe + x7) - x23);
out[2] = ((0x7ffffe + x9) - x25);
out[3] = ((0x7ffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e196m15_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e196m15_9limbs/fesubDisplay.log
index 470b046c5..0e1e7af91 100644
--- a/src/Specific/solinas32_2e196m15_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e196m15_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x3ffffe + x18) - x34), ((0x7ffffe + x19) - x35), ((0x7ffffe + x17) - x33), ((0x7ffffe + x15) - x31), ((0x3ffffe + x13) - x29), ((0x7ffffe + x11) - x27), ((0x7ffffe + x9) - x25), ((0x7ffffe + x7) - x23), ((Const 8388578 + x5) - x21)))
+ (((0x3ffffe + x18) - x34), ((0x7ffffe + x19) - x35), ((0x7ffffe + x17) - x33), ((0x7ffffe + x15) - x31), ((0x3ffffe + x13) - x29), ((0x7ffffe + x11) - x27), ((0x7ffffe + x9) - x25), ((0x7ffffe + x7) - x23), ((0x7fffe2 + x5) - x21)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e196m15_9limbs/freeze.c b/src/Specific/solinas32_2e196m15_9limbs/freeze.c
index 967ca2551..62f17e5d9 100644
--- a/src/Specific/solinas32_2e196m15_9limbs/freeze.c
+++ b/src/Specific/solinas32_2e196m15_9limbs/freeze.c
@@ -8,7 +8,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194289);
+ { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffff1);
{ uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x3fffff);
{ uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x3fffff);
{ uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3fffff);
@@ -18,7 +18,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ 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 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1fffff);
{ uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- { uint32_t x45 = (x44 & Const 4194289);
+ { uint32_t x45 = (x44 & 0x3ffff1);
{ 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 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);
diff --git a/src/Specific/solinas32_2e196m15_9limbs/freezeDisplay.log b/src/Specific/solinas32_2e196m15_9limbs/freezeDisplay.log
index ffc38f1c5..15bd783f5 100644
--- a/src/Specific/solinas32_2e196m15_9limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e196m15_9limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4194289);
+ uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffff1);
uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x3fffff);
uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x3fffff);
uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3fffff);
@@ -12,7 +12,7 @@ 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 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1fffff);
uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- uint32_t x45 = (x44 & Const 4194289);
+ uint32_t x45 = (x44 & 0x3ffff1);
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 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);
diff --git a/src/Specific/solinas32_2e198m17_8limbs/fesub.c b/src/Specific/solinas32_2e198m17_8limbs/fesub.c
index 6dac1f3aa..f0d6fee45 100644
--- a/src/Specific/solinas32_2e198m17_8limbs/fesub.c
+++ b/src/Specific/solinas32_2e198m17_8limbs/fesub.c
@@ -15,7 +15,7 @@ static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8])
{ const uint32_t x23 = in2[2];
{ const uint32_t x21 = in2[1];
{ const uint32_t x19 = in2[0];
- out[0] = ((Const 67108830 + x5) - x19);
+ out[0] = ((0x3ffffde + x5) - x19);
out[1] = ((0x3fffffe + x7) - x21);
out[2] = ((0x3fffffe + x9) - x23);
out[3] = ((0x1fffffe + x11) - x25);
diff --git a/src/Specific/solinas32_2e198m17_8limbs/fesubDisplay.log b/src/Specific/solinas32_2e198m17_8limbs/fesubDisplay.log
index b8d7c4d33..dac840266 100644
--- a/src/Specific/solinas32_2e198m17_8limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e198m17_8limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- (((0x1fffffe + x16) - x30), ((0x3fffffe + x17) - x31), ((0x3fffffe + x15) - x29), ((0x3fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((0x3fffffe + x9) - x23), ((0x3fffffe + x7) - x21), ((Const 67108830 + x5) - x19)))
+ (((0x1fffffe + x16) - x30), ((0x3fffffe + x17) - x31), ((0x3fffffe + x15) - x29), ((0x3fffffe + x13) - x27), ((0x1fffffe + x11) - x25), ((0x3fffffe + x9) - x23), ((0x3fffffe + x7) - x21), ((0x3ffffde + x5) - x19)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e198m17_8limbs/freeze.c b/src/Specific/solinas32_2e198m17_8limbs/freeze.c
index 299b41e39..f91e7e3e9 100644
--- a/src/Specific/solinas32_2e198m17_8limbs/freeze.c
+++ b/src/Specific/solinas32_2e198m17_8limbs/freeze.c
@@ -7,7 +7,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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, Const 33554415);
+ { 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, 0x1ffffef);
{ uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0x1ffffff);
{ uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0x1ffffff);
{ 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);
@@ -16,7 +16,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0x1ffffff);
{ 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 = cmovznz32(x38, 0x0, 0xffffffff);
- { uint32_t x40 = (x39 & Const 33554415);
+ { uint32_t x40 = (x39 & 0x1ffffef);
{ 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 & 0x1ffffff);
{ uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
diff --git a/src/Specific/solinas32_2e198m17_8limbs/freezeDisplay.log b/src/Specific/solinas32_2e198m17_8limbs/freezeDisplay.log
index f10baea3d..95a480b08 100644
--- a/src/Specific/solinas32_2e198m17_8limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e198m17_8limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(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, Const 33554415);
+ 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, 0x1ffffef);
uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0x1ffffff);
uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0x1ffffff);
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);
@@ -11,7 +11,7 @@ Interp-η
uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x14, 0x1ffffff);
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 = cmovznz32(x38, 0x0, 0xffffffff);
- uint32_t x40 = (x39 & Const 33554415);
+ uint32_t x40 = (x39 & 0x1ffffef);
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 & 0x1ffffff);
uint32_t x46, uint8_t x47 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x19, Return x44);
diff --git a/src/Specific/solinas32_2e206m5_9limbs/fesub.c b/src/Specific/solinas32_2e206m5_9limbs/fesub.c
index 535d68f5c..5801ccefa 100644
--- a/src/Specific/solinas32_2e206m5_9limbs/fesub.c
+++ b/src/Specific/solinas32_2e206m5_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 16777206 + x5) - x21);
+ out[0] = ((0xfffff6 + x5) - x21);
out[1] = ((0xfffffe + x7) - x23);
out[2] = ((0xfffffe + x9) - x25);
out[3] = ((0xfffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e206m5_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e206m5_9limbs/fesubDisplay.log
index 4ce5320af..16bef8d8f 100644
--- a/src/Specific/solinas32_2e206m5_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e206m5_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x7ffffe + x18) - x34), ((0xfffffe + x19) - x35), ((0xfffffe + x17) - x33), ((0xfffffe + x15) - x31), ((0xfffffe + x13) - x29), ((0xfffffe + x11) - x27), ((0xfffffe + x9) - x25), ((0xfffffe + x7) - x23), ((Const 16777206 + x5) - x21)))
+ (((0x7ffffe + x18) - x34), ((0xfffffe + x19) - x35), ((0xfffffe + x17) - x33), ((0xfffffe + x15) - x31), ((0xfffffe + x13) - x29), ((0xfffffe + x11) - x27), ((0xfffffe + x9) - x25), ((0xfffffe + x7) - x23), ((0xfffff6 + x5) - x21)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e206m5_9limbs/freeze.c b/src/Specific/solinas32_2e206m5_9limbs/freeze.c
index a30bc2efa..f8822d158 100644
--- a/src/Specific/solinas32_2e206m5_9limbs/freeze.c
+++ b/src/Specific/solinas32_2e206m5_9limbs/freeze.c
@@ -8,7 +8,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388603);
+ { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffb);
{ uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x7fffff);
{ uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x7fffff);
{ uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x7fffff);
@@ -18,7 +18,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x7fffff);
{ 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 = cmovznz32(x43, 0x0, 0xffffffff);
- { uint32_t x45 = (x44 & Const 8388603);
+ { uint32_t x45 = (x44 & 0x7ffffb);
{ uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
{ uint32_t x49 = (x44 & 0x7fffff);
{ uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
diff --git a/src/Specific/solinas32_2e206m5_9limbs/freezeDisplay.log b/src/Specific/solinas32_2e206m5_9limbs/freezeDisplay.log
index e4f66eefd..de0e4e748 100644
--- a/src/Specific/solinas32_2e206m5_9limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e206m5_9limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388603);
+ uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffb);
uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0x7fffff);
uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x7fffff);
uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x7fffff);
@@ -12,7 +12,7 @@ Interp-η
uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0x7fffff);
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 = cmovznz32(x43, 0x0, 0xffffffff);
- uint32_t x45 = (x44 & Const 8388603);
+ uint32_t x45 = (x44 & 0x7ffffb);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
uint32_t x49 = (x44 & 0x7fffff);
uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
diff --git a/src/Specific/solinas32_2e212m29_9limbs/fesub.c b/src/Specific/solinas32_2e212m29_9limbs/fesub.c
index ce5f43771..cfdc435d6 100644
--- a/src/Specific/solinas32_2e212m29_9limbs/fesub.c
+++ b/src/Specific/solinas32_2e212m29_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 33554374 + x5) - x21);
+ out[0] = ((0x1ffffc6 + x5) - x21);
out[1] = ((0x1fffffe + x7) - x23);
out[2] = ((0xfffffe + x9) - x25);
out[3] = ((0x1fffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e212m29_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e212m29_9limbs/fesubDisplay.log
index 533db8388..3d20cc56f 100644
--- a/src/Specific/solinas32_2e212m29_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e212m29_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0xfffffe + x18) - x34), ((0x1fffffe + x19) - x35), ((0xfffffe + x17) - x33), ((0x1fffffe + x15) - x31), ((0xfffffe + x13) - x29), ((0x1fffffe + x11) - x27), ((0xfffffe + x9) - x25), ((0x1fffffe + x7) - x23), ((Const 33554374 + x5) - x21)))
+ (((0xfffffe + x18) - x34), ((0x1fffffe + x19) - x35), ((0xfffffe + x17) - x33), ((0x1fffffe + x15) - x31), ((0xfffffe + x13) - x29), ((0x1fffffe + x11) - x27), ((0xfffffe + x9) - x25), ((0x1fffffe + x7) - x23), ((0x1ffffc6 + x5) - x21)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e212m29_9limbs/freeze.c b/src/Specific/solinas32_2e212m29_9limbs/freeze.c
index fb3ef04d0..9e75fa756 100644
--- a/src/Specific/solinas32_2e212m29_9limbs/freeze.c
+++ b/src/Specific/solinas32_2e212m29_9limbs/freeze.c
@@ -8,7 +8,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777187);
+ { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffe3);
{ uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0xffffff);
{ uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x7fffff);
{ uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0xffffff);
@@ -18,7 +18,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0xffffff);
{ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x7fffff);
{ uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- { uint32_t x45 = (x44 & Const 16777187);
+ { uint32_t x45 = (x44 & 0xffffe3);
{ uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
{ uint32_t x49 = (x44 & 0xffffff);
{ uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
diff --git a/src/Specific/solinas32_2e212m29_9limbs/freezeDisplay.log b/src/Specific/solinas32_2e212m29_9limbs/freezeDisplay.log
index 2125433f9..2edc753b3 100644
--- a/src/Specific/solinas32_2e212m29_9limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e212m29_9limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777187);
+ uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffe3);
uint32_t x21, uint8_t x22 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x19, Return x4, 0xffffff);
uint32_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0x7fffff);
uint32_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0xffffff);
@@ -12,7 +12,7 @@ Interp-η
uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x16, 0xffffff);
uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x7fffff);
uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- uint32_t x45 = (x44 & Const 16777187);
+ uint32_t x45 = (x44 & 0xffffe3);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
uint32_t x49 = (x44 & 0xffffff);
uint32_t x51, uint8_t x52 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x21, Return x49);
diff --git a/src/Specific/solinas32_2e213m3_8limbs/fesub.c b/src/Specific/solinas32_2e213m3_8limbs/fesub.c
index b533d8d58..a8d0c529a 100644
--- a/src/Specific/solinas32_2e213m3_8limbs/fesub.c
+++ b/src/Specific/solinas32_2e213m3_8limbs/fesub.c
@@ -15,7 +15,7 @@ static void fesub(uint32_t out[8], const uint32_t in1[8], const uint32_t in2[8])
{ const uint32_t x23 = in2[2];
{ const uint32_t x21 = in2[1];
{ const uint32_t x19 = in2[0];
- out[0] = ((Const 268435450 + x5) - x19);
+ out[0] = ((0xffffffa + x5) - x19);
out[1] = ((0xffffffe + x7) - x21);
out[2] = ((0x7fffffe + x9) - x23);
out[3] = ((0xffffffe + x11) - x25);
diff --git a/src/Specific/solinas32_2e213m3_8limbs/fesubDisplay.log b/src/Specific/solinas32_2e213m3_8limbs/fesubDisplay.log
index 55262da71..20ab6c6ca 100644
--- a/src/Specific/solinas32_2e213m3_8limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e213m3_8limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core,
- (((0x7fffffe + x16) - x30), ((0xffffffe + x17) - x31), ((0x7fffffe + x15) - x29), ((0xffffffe + x13) - x27), ((0xffffffe + x11) - x25), ((0x7fffffe + x9) - x23), ((0xffffffe + x7) - x21), ((Const 268435450 + x5) - x19)))
+ (((0x7fffffe + x16) - x30), ((0xffffffe + x17) - x31), ((0x7fffffe + x15) - x29), ((0xffffffe + x13) - x27), ((0xffffffe + x11) - x25), ((0x7fffffe + x9) - x23), ((0xffffffe + x7) - x21), ((0xffffffa + x5) - x19)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e213m3_8limbs/freeze.c b/src/Specific/solinas32_2e213m3_8limbs/freeze.c
index ee5672b0b..da544c064 100644
--- a/src/Specific/solinas32_2e213m3_8limbs/freeze.c
+++ b/src/Specific/solinas32_2e213m3_8limbs/freeze.c
@@ -7,7 +7,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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, Const 134217725);
+ { 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, 0x7fffffd);
{ uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0x7ffffff);
{ uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0x3ffffff);
{ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0x7ffffff);
@@ -16,7 +16,7 @@ static void freeze(uint32_t out[8], const uint32_t in1[8]) {
{ 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 = cmovznz32(x38, 0x0, 0xffffffff);
- { uint32_t x40 = (x39 & Const 134217725);
+ { uint32_t x40 = (x39 & 0x7fffffd);
{ 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 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);
diff --git a/src/Specific/solinas32_2e213m3_8limbs/freezeDisplay.log b/src/Specific/solinas32_2e213m3_8limbs/freezeDisplay.log
index db6ef377b..fcb19b259 100644
--- a/src/Specific/solinas32_2e213m3_8limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e213m3_8limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(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, Const 134217725);
+ 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, 0x7fffffd);
uint32_t x19, uint8_t x20 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x17, Return x4, 0x7ffffff);
uint32_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x20, Return x6, 0x3ffffff);
uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x8, 0x7ffffff);
@@ -11,7 +11,7 @@ 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 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x13, 0x3ffffff);
uint32_t x39 = cmovznz32(x38, 0x0, 0xffffffff);
- uint32_t x40 = (x39 & Const 134217725);
+ uint32_t x40 = (x39 & 0x7fffffd);
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 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);
diff --git a/src/Specific/solinas32_2e213m3_9limbs/fesub.c b/src/Specific/solinas32_2e213m3_9limbs/fesub.c
index fe8f6c219..11df94aa2 100644
--- a/src/Specific/solinas32_2e213m3_9limbs/fesub.c
+++ b/src/Specific/solinas32_2e213m3_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 33554426 + x5) - x21);
+ out[0] = ((0x1fffffa + x5) - x21);
out[1] = ((0x1fffffe + x7) - x23);
out[2] = ((0xfffffe + x9) - x25);
out[3] = ((0x1fffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e213m3_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e213m3_9limbs/fesubDisplay.log
index 6ee5194a0..3e656b07a 100644
--- a/src/Specific/solinas32_2e213m3_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e213m3_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0xfffffe + x18) - x34), ((0x1fffffe + x19) - x35), ((0x1fffffe + x17) - x33), ((0xfffffe + x15) - x31), ((0x1fffffe + x13) - x29), ((0x1fffffe + x11) - x27), ((0xfffffe + x9) - x25), ((0x1fffffe + x7) - x23), ((Const 33554426 + x5) - x21)))
+ (((0xfffffe + x18) - x34), ((0x1fffffe + x19) - x35), ((0x1fffffe + x17) - x33), ((0xfffffe + x15) - x31), ((0x1fffffe + x13) - x29), ((0x1fffffe + x11) - x27), ((0xfffffe + x9) - x25), ((0x1fffffe + x7) - x23), ((0x1fffffa + x5) - x21)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e216m2e108m1_10limbs/fesub.c b/src/Specific/solinas32_2e216m2e108m1_10limbs/fesub.c
index 29ede3439..fabbee8b4 100644
--- a/src/Specific/solinas32_2e216m2e108m1_10limbs/fesub.c
+++ b/src/Specific/solinas32_2e216m2e108m1_10limbs/fesub.c
@@ -24,7 +24,7 @@ static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[1
out[2] = ((0x3ffffe + x9) - x27);
out[3] = ((0x7ffffe + x11) - x29);
out[4] = ((0x3ffffe + x13) - x31);
- out[5] = ((Const 8388604 + x15) - x33);
+ out[5] = ((0x7ffffc + x15) - x33);
out[6] = ((0x7ffffe + x17) - x35);
out[7] = ((0x3ffffe + x19) - x37);
out[8] = ((0x7ffffe + x21) - x39);
diff --git a/src/Specific/solinas32_2e216m2e108m1_10limbs/fesubDisplay.log b/src/Specific/solinas32_2e216m2e108m1_10limbs/fesubDisplay.log
index 7e197e3b7..a2cb16be9 100644
--- a/src/Specific/solinas32_2e216m2e108m1_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e216m2e108m1_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x3ffffe + x20) - x38), ((0x7ffffe + x21) - x39), ((0x3ffffe + x19) - x37), ((0x7ffffe + x17) - x35), ((Const 8388604 + x15) - x33), ((0x3ffffe + x13) - x31), ((0x7ffffe + x11) - x29), ((0x3ffffe + x9) - x27), ((0x7ffffe + x7) - x25), ((0x7ffffe + x5) - x23)))
+ (((0x3ffffe + x20) - x38), ((0x7ffffe + x21) - x39), ((0x3ffffe + x19) - x37), ((0x7ffffe + x17) - x35), ((0x7ffffc + x15) - x33), ((0x3ffffe + x13) - x31), ((0x7ffffe + x11) - x29), ((0x3ffffe + x9) - x27), ((0x7ffffe + x7) - x25), ((0x7ffffe + x5) - x23)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e222m117_9limbs/fesub.c b/src/Specific/solinas32_2e222m117_9limbs/fesub.c
index 1bf7ca262..9c28db3e3 100644
--- a/src/Specific/solinas32_2e222m117_9limbs/fesub.c
+++ b/src/Specific/solinas32_2e222m117_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 67108630 + x5) - x21);
+ out[0] = ((0x3ffff16 + x5) - x21);
out[1] = ((0x3fffffe + x7) - x23);
out[2] = ((0x1fffffe + x9) - x25);
out[3] = ((0x3fffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e222m117_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e222m117_9limbs/fesubDisplay.log
index 62dfb1f8a..0f4a409f7 100644
--- a/src/Specific/solinas32_2e222m117_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e222m117_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x1fffffe + x18) - x34), ((0x3fffffe + x19) - x35), ((0x3fffffe + x17) - x33), ((0x1fffffe + x15) - x31), ((0x3fffffe + x13) - x29), ((0x3fffffe + x11) - x27), ((0x1fffffe + x9) - x25), ((0x3fffffe + x7) - x23), ((Const 67108630 + x5) - x21)))
+ (((0x1fffffe + x18) - x34), ((0x3fffffe + x19) - x35), ((0x3fffffe + x17) - x33), ((0x1fffffe + x15) - x31), ((0x3fffffe + x13) - x29), ((0x3fffffe + x11) - x27), ((0x1fffffe + x9) - x25), ((0x3fffffe + x7) - x23), ((0x3ffff16 + x5) - x21)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e222m117_9limbs/freeze.c b/src/Specific/solinas32_2e222m117_9limbs/freeze.c
index d4b200108..18f848a2e 100644
--- a/src/Specific/solinas32_2e222m117_9limbs/freeze.c
+++ b/src/Specific/solinas32_2e222m117_9limbs/freeze.c
@@ -8,7 +8,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554315);
+ { uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffff8b);
{ 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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0xffffff);
{ 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);
@@ -18,7 +18,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ 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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0xffffff);
{ uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- { uint32_t x45 = (x44 & Const 33554315);
+ { uint32_t x45 = (x44 & 0x1ffff8b);
{ uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 25 (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);
diff --git a/src/Specific/solinas32_2e222m117_9limbs/freezeDisplay.log b/src/Specific/solinas32_2e222m117_9limbs/freezeDisplay.log
index 99ec21a8f..ee02717f6 100644
--- a/src/Specific/solinas32_2e222m117_9limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e222m117_9limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554315);
+ uint32_t x18, uint8_t x19 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffff8b);
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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x22, Return x6, 0xffffff);
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);
@@ -12,7 +12,7 @@ Interp-η
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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0xffffff);
uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- uint32_t x45 = (x44 & Const 33554315);
+ uint32_t x45 = (x44 & 0x1ffff8b);
uint32_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 25 (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);
diff --git a/src/Specific/solinas32_2e224m2e96p1_10limbs/feaddDisplay.log b/src/Specific/solinas32_2e224m2e96p1_10limbs/feaddDisplay.log
new file mode 100644
index 000000000..8a4c51148
--- /dev/null
+++ b/src/Specific/solinas32_2e224m2e96p1_10limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e224m2e96p1_10limbs/freezeDisplay.log b/src/Specific/solinas32_2e224m2e96p1_10limbs/freezeDisplay.log
new file mode 100644
index 000000000..1d62ef4b7
--- /dev/null
+++ b/src/Specific/solinas32_2e224m2e96p1_10limbs/freezeDisplay.log
@@ -0,0 +1,35 @@
+λ x : word32 * 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, ℤ x21 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (0x0, Return x2, 0x1);
+ uint32_t x23, ℤ x24 = Op (Syntax.SubWithGetBorrow 22 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x21, Return x4, 0x0);
+ uint32_t x26, ℤ x27 = Op (Syntax.SubWithGetBorrow 23 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x24, Return x6, 0x0);
+ uint32_t x29, ℤ x30 = Op (Syntax.SubWithGetBorrow 22 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x27, Return x8, 0x0);
+ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 22 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x10, Const 4194240);
+ 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 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x14, 0x3fffff);
+ 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 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x3fffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x3fffff);
+ uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
+ uint8_t x50 = ((uint8_t)x49 & 0x1);
+ uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
+ uint32_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, 0x0);
+ uint32_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x26, 0x0);
+ uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x29, 0x0);
+ uint32_t x63 = (x49 & Const 4194240);
+ 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 x32, Return x63);
+ uint32_t x67 = (x49 & 0x7fffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x35, Return x67);
+ uint32_t x71 = (x49 & 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 x38, Return x71);
+ uint32_t x75 = (x49 & 0x7fffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x41, Return x75);
+ uint32_t x79 = (x49 & 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 x44, Return x79);
+ uint32_t x83 = (x49 & 0x3fffff);
+ uint32_t x85, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x47, Return x83);
+ (Return x85, Return x81, Return x77, Return x73, Return x69, Return x65, Return x61, Return x58, Return x55, Return x52))
+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)
diff --git a/src/Specific/solinas32_2e224m2e96p1_11limbs/feaddDisplay.log b/src/Specific/solinas32_2e224m2e96p1_11limbs/feaddDisplay.log
new file mode 100644
index 000000000..433ecbc2e
--- /dev/null
+++ b/src/Specific/solinas32_2e224m2e96p1_11limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x22, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25))%core,
+ ((x22 + x42), (x23 + x43), (x21 + x41), (x19 + x39), (x17 + x37), (x15 + x35), (x13 + x33), (x11 + x31), (x9 + x29), (x7 + x27), (x5 + x25)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e224m2e96p1_11limbs/freezeDisplay.log b/src/Specific/solinas32_2e224m2e96p1_11limbs/freezeDisplay.log
new file mode 100644
index 000000000..0a24b9869
--- /dev/null
+++ b/src/Specific/solinas32_2e224m2e96p1_11limbs/freezeDisplay.log
@@ -0,0 +1,38 @@
+λ x : word32 * word32 * 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, ℤ x23 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (0x0, Return x2, 0x1);
+ uint32_t x25, ℤ x26 = Op (Syntax.SubWithGetBorrow 20 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x23, Return x4, 0x0);
+ uint32_t x28, ℤ x29 = Op (Syntax.SubWithGetBorrow 21 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x26, Return x6, 0x0);
+ uint32_t x31, ℤ x32 = Op (Syntax.SubWithGetBorrow 20 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x29, Return x8, 0x0);
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 20 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x32, Return x10, Const 1032192);
+ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x12, 0x1fffff);
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x14, 0xfffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x16, 0xfffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x18, 0x1fffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0xfffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0xfffff);
+ uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
+ uint8_t x55 = ((uint8_t)x54 & 0x1);
+ uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
+ uint32_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, 0x0);
+ uint32_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x28, 0x0);
+ uint32_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x31, 0x0);
+ uint32_t x68 = (x54 & Const 1032192);
+ uint32_t x70, uint8_t x71 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x34, Return x68);
+ uint32_t x72 = (x54 & 0x1fffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x37, Return x72);
+ uint32_t x76 = (x54 & 0xfffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x40, Return x76);
+ uint32_t x80 = (x54 & 0xfffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x43, Return x80);
+ uint32_t x84 = (x54 & 0x1fffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x46, Return x84);
+ uint32_t x88 = (x54 & 0xfffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x49, Return x88);
+ uint32_t x92 = (x54 & 0xfffff);
+ uint32_t x94, uint8_t _ = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x52, Return x92);
+ (Return x94, Return x90, Return x86, Return x82, Return x78, Return x74, Return x70, Return x66, Return x63, Return x60, Return x57))
+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)
diff --git a/src/Specific/solinas32_2e226m5_10limbs/fesub.c b/src/Specific/solinas32_2e226m5_10limbs/fesub.c
index c04945cc5..55f642d62 100644
--- a/src/Specific/solinas32_2e226m5_10limbs/fesub.c
+++ b/src/Specific/solinas32_2e226m5_10limbs/fesub.c
@@ -19,7 +19,7 @@ static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[1
{ const uint32_t x27 = in2[2];
{ const uint32_t x25 = in2[1];
{ const uint32_t x23 = in2[0];
- out[0] = ((Const 16777206 + x5) - x23);
+ out[0] = ((0xfffff6 + x5) - x23);
out[1] = ((0xfffffe + x7) - x25);
out[2] = ((0x7ffffe + x9) - x27);
out[3] = ((0xfffffe + x11) - x29);
diff --git a/src/Specific/solinas32_2e226m5_10limbs/fesubDisplay.log b/src/Specific/solinas32_2e226m5_10limbs/fesubDisplay.log
index 60ceebcec..55787bb66 100644
--- a/src/Specific/solinas32_2e226m5_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e226m5_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
- (((0x7ffffe + x20) - x38), ((0xfffffe + x21) - x39), ((0x7ffffe + x19) - x37), ((0xfffffe + x17) - x35), ((0xfffffe + x15) - x33), ((0x7ffffe + x13) - x31), ((0xfffffe + x11) - x29), ((0x7ffffe + x9) - x27), ((0xfffffe + x7) - x25), ((Const 16777206 + x5) - x23)))
+ (((0x7ffffe + x20) - x38), ((0xfffffe + x21) - x39), ((0x7ffffe + x19) - x37), ((0xfffffe + x17) - x35), ((0xfffffe + x15) - x33), ((0x7ffffe + x13) - x31), ((0xfffffe + x11) - x29), ((0x7ffffe + x9) - x27), ((0xfffffe + x7) - x25), ((0xfffff6 + x5) - x23)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e226m5_10limbs/freeze.c b/src/Specific/solinas32_2e226m5_10limbs/freeze.c
index 08994ed49..fd30ceda1 100644
--- a/src/Specific/solinas32_2e226m5_10limbs/freeze.c
+++ b/src/Specific/solinas32_2e226m5_10limbs/freeze.c
@@ -9,7 +9,7 @@ static void freeze(uint32_t out[10], const uint32_t in1[10]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388603);
+ { uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffb);
{ 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 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0x3fffff);
{ 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);
@@ -20,7 +20,7 @@ static void freeze(uint32_t out[10], const uint32_t in1[10]) {
{ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x7fffff);
{ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x3fffff);
{ uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
- { uint32_t x50 = (x49 & Const 8388603);
+ { uint32_t x50 = (x49 & 0x7ffffb);
{ uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 23 (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);
diff --git a/src/Specific/solinas32_2e226m5_10limbs/freezeDisplay.log b/src/Specific/solinas32_2e226m5_10limbs/freezeDisplay.log
index 709fcb463..ae7e06b76 100644
--- a/src/Specific/solinas32_2e226m5_10limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e226m5_10limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388603);
+ uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffb);
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 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0x3fffff);
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);
@@ -13,7 +13,7 @@ Interp-η
uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x7fffff);
uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x3fffff);
uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
- uint32_t x50 = (x49 & Const 8388603);
+ uint32_t x50 = (x49 & 0x7ffffb);
uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 23 (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);
diff --git a/src/Specific/solinas32_2e230m27_9limbs/fesub.c b/src/Specific/solinas32_2e230m27_9limbs/fesub.c
index 33240f797..43446f792 100644
--- a/src/Specific/solinas32_2e230m27_9limbs/fesub.c
+++ b/src/Specific/solinas32_2e230m27_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint32_t out[9], const uint32_t in1[9], const uint32_t in2[9])
{ const uint32_t x25 = in2[2];
{ const uint32_t x23 = in2[1];
{ const uint32_t x21 = in2[0];
- out[0] = ((Const 134217674 + x5) - x21);
+ out[0] = ((0x7ffffca + x5) - x21);
out[1] = ((0x7fffffe + x7) - x23);
out[2] = ((0x3fffffe + x9) - x25);
out[3] = ((0x7fffffe + x11) - x27);
diff --git a/src/Specific/solinas32_2e230m27_9limbs/fesubDisplay.log b/src/Specific/solinas32_2e230m27_9limbs/fesubDisplay.log
index 350e4977c..a41438c35 100644
--- a/src/Specific/solinas32_2e230m27_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e230m27_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x3fffffe + x18) - x34), ((0x7fffffe + x19) - x35), ((0x3fffffe + x17) - x33), ((0x7fffffe + x15) - x31), ((0x3fffffe + x13) - x29), ((0x7fffffe + x11) - x27), ((0x3fffffe + x9) - x25), ((0x7fffffe + x7) - x23), ((Const 134217674 + x5) - x21)))
+ (((0x3fffffe + x18) - x34), ((0x7fffffe + x19) - x35), ((0x3fffffe + x17) - x33), ((0x7fffffe + x15) - x31), ((0x3fffffe + x13) - x29), ((0x7fffffe + x11) - x27), ((0x3fffffe + x9) - x25), ((0x7fffffe + x7) - x23), ((0x7ffffca + x5) - x21)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e230m27_9limbs/freeze.c b/src/Specific/solinas32_2e230m27_9limbs/freeze.c
index fcfc81da4..341d005c3 100644
--- a/src/Specific/solinas32_2e230m27_9limbs/freeze.c
+++ b/src/Specific/solinas32_2e230m27_9limbs/freeze.c
@@ -8,7 +8,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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, Const 67108837);
+ { 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, 0x3ffffe5);
{ 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 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 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3ffffff);
@@ -18,7 +18,7 @@ static void freeze(uint32_t out[9], const uint32_t in1[9]) {
{ 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 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1ffffff);
{ uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- { uint32_t x45 = (x44 & Const 67108837);
+ { uint32_t x45 = (x44 & 0x3ffffe5);
{ 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 & 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);
diff --git a/src/Specific/solinas32_2e230m27_9limbs/freezeDisplay.log b/src/Specific/solinas32_2e230m27_9limbs/freezeDisplay.log
index b663fdb69..82f0bae3f 100644
--- a/src/Specific/solinas32_2e230m27_9limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e230m27_9limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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, Const 67108837);
+ 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, 0x3ffffe5);
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 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 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x25, Return x8, 0x3ffffff);
@@ -12,7 +12,7 @@ Interp-η
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 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x15, 0x1ffffff);
uint32_t x44 = cmovznz32(x43, 0x0, 0xffffffff);
- uint32_t x45 = (x44 & Const 67108837);
+ uint32_t x45 = (x44 & 0x3ffffe5);
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 & 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);
diff --git a/src/Specific/solinas32_2e235m15_10limbs/fesub.c b/src/Specific/solinas32_2e235m15_10limbs/fesub.c
index 968c0143d..1a30c9540 100644
--- a/src/Specific/solinas32_2e235m15_10limbs/fesub.c
+++ b/src/Specific/solinas32_2e235m15_10limbs/fesub.c
@@ -19,7 +19,7 @@ static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[1
{ const uint32_t x27 = in2[2];
{ const uint32_t x25 = in2[1];
{ const uint32_t x23 = in2[0];
- out[0] = ((Const 33554402 + x5) - x23);
+ out[0] = ((0x1ffffe2 + x5) - x23);
out[1] = ((0xfffffe + x7) - x25);
out[2] = ((0x1fffffe + x9) - x27);
out[3] = ((0xfffffe + x11) - x29);
diff --git a/src/Specific/solinas32_2e235m15_10limbs/fesubDisplay.log b/src/Specific/solinas32_2e235m15_10limbs/fesubDisplay.log
index 6e73b934b..cfb564d95 100644
--- a/src/Specific/solinas32_2e235m15_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e235m15_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
- (((0xfffffe + x20) - x38), ((0x1fffffe + x21) - x39), ((0xfffffe + x19) - x37), ((0x1fffffe + x17) - x35), ((0xfffffe + x15) - x33), ((0x1fffffe + x13) - x31), ((0xfffffe + x11) - x29), ((0x1fffffe + x9) - x27), ((0xfffffe + x7) - x25), ((Const 33554402 + x5) - x23)))
+ (((0xfffffe + x20) - x38), ((0x1fffffe + x21) - x39), ((0xfffffe + x19) - x37), ((0x1fffffe + x17) - x35), ((0xfffffe + x15) - x33), ((0x1fffffe + x13) - x31), ((0xfffffe + x11) - x29), ((0x1fffffe + x9) - x27), ((0xfffffe + x7) - x25), ((0x1ffffe2 + x5) - x23)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e243m9_10limbs/fesub.c b/src/Specific/solinas32_2e243m9_10limbs/fesub.c
index 30eb3c31b..92263253e 100644
--- a/src/Specific/solinas32_2e243m9_10limbs/fesub.c
+++ b/src/Specific/solinas32_2e243m9_10limbs/fesub.c
@@ -19,7 +19,7 @@ static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[1
{ const uint32_t x27 = in2[2];
{ const uint32_t x25 = in2[1];
{ const uint32_t x23 = in2[0];
- out[0] = ((Const 67108846 + x5) - x23);
+ out[0] = ((0x3ffffee + x5) - x23);
out[1] = ((0x1fffffe + x7) - x25);
out[2] = ((0x1fffffe + x9) - x27);
out[3] = ((0x3fffffe + x11) - x29);
diff --git a/src/Specific/solinas32_2e243m9_10limbs/fesubDisplay.log b/src/Specific/solinas32_2e243m9_10limbs/fesubDisplay.log
index 21a468f87..41d34ad20 100644
--- a/src/Specific/solinas32_2e243m9_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e243m9_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x1fffffe + x20) - x38), ((0x1fffffe + x21) - x39), ((0x1fffffe + x19) - x37), ((0x3fffffe + x17) - x35), ((0x1fffffe + x15) - x33), ((0x1fffffe + x13) - x31), ((0x3fffffe + x11) - x29), ((0x1fffffe + x9) - x27), ((0x1fffffe + x7) - x25), ((Const 67108846 + x5) - x23)))
+ (((0x1fffffe + x20) - x38), ((0x1fffffe + x21) - x39), ((0x1fffffe + x19) - x37), ((0x3fffffe + x17) - x35), ((0x1fffffe + x15) - x33), ((0x1fffffe + x13) - x31), ((0x3fffffe + x11) - x29), ((0x1fffffe + x9) - x27), ((0x1fffffe + x7) - x25), ((0x3ffffee + x5) - x23)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e243m9_10limbs/freeze.c b/src/Specific/solinas32_2e243m9_10limbs/freeze.c
index b2de4baef..72b42ea89 100644
--- a/src/Specific/solinas32_2e243m9_10limbs/freeze.c
+++ b/src/Specific/solinas32_2e243m9_10limbs/freeze.c
@@ -9,7 +9,7 @@ static void freeze(uint32_t out[10], const uint32_t in1[10]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554423);
+ { uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1fffff7);
{ uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0xffffff);
{ 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 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, 0x1ffffff);
@@ -20,7 +20,7 @@ static void freeze(uint32_t out[10], const uint32_t in1[10]) {
{ 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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0xffffff);
{ uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
- { uint32_t x50 = (x49 & Const 33554423);
+ { uint32_t x50 = (x49 & 0x1fffff7);
{ uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
{ uint32_t x54 = (x49 & 0xffffff);
{ uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
diff --git a/src/Specific/solinas32_2e243m9_10limbs/freezeDisplay.log b/src/Specific/solinas32_2e243m9_10limbs/freezeDisplay.log
index f31a1a4e1..30c174644 100644
--- a/src/Specific/solinas32_2e243m9_10limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e243m9_10limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554423);
+ uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1fffff7);
uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0xffffff);
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 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, 0x1ffffff);
@@ -13,7 +13,7 @@ Interp-η
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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0xffffff);
uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
- uint32_t x50 = (x49 & Const 33554423);
+ uint32_t x50 = (x49 & 0x1fffff7);
uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
uint32_t x54 = (x49 & 0xffffff);
uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
diff --git a/src/Specific/solinas32_2e251m9_11limbs/fesub.c b/src/Specific/solinas32_2e251m9_11limbs/fesub.c
index 94352c17b..770204419 100644
--- a/src/Specific/solinas32_2e251m9_11limbs/fesub.c
+++ b/src/Specific/solinas32_2e251m9_11limbs/fesub.c
@@ -21,7 +21,7 @@ static void fesub(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[1
{ const uint32_t x29 = in2[2];
{ const uint32_t x27 = in2[1];
{ const uint32_t x25 = in2[0];
- out[0] = ((Const 16777198 + x5) - x25);
+ out[0] = ((0xffffee + x5) - x25);
out[1] = ((0xfffffe + x7) - x27);
out[2] = ((0xfffffe + x9) - x29);
out[3] = ((0xfffffe + x11) - x31);
diff --git a/src/Specific/solinas32_2e251m9_11limbs/fesubDisplay.log b/src/Specific/solinas32_2e251m9_11limbs/fesubDisplay.log
index b162e9cb7..c5f7f2932 100644
--- a/src/Specific/solinas32_2e251m9_11limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e251m9_11limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x7ffffe + x22) - x42), ((0xfffffe + x23) - x43), ((0xfffffe + x21) - x41), ((0xfffffe + x19) - x39), ((0xfffffe + x17) - x37), ((0x7ffffe + x15) - x35), ((0xfffffe + x13) - x33), ((0xfffffe + x11) - x31), ((0xfffffe + x9) - x29), ((0xfffffe + x7) - x27), ((Const 16777198 + x5) - x25)))
+ (((0x7ffffe + x22) - x42), ((0xfffffe + x23) - x43), ((0xfffffe + x21) - x41), ((0xfffffe + x19) - x39), ((0xfffffe + x17) - x37), ((0x7ffffe + x15) - x35), ((0xfffffe + x13) - x33), ((0xfffffe + x11) - x31), ((0xfffffe + x9) - x29), ((0xfffffe + x7) - x27), ((0xffffee + x5) - x25)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e255m19_11limbs/fesub.c b/src/Specific/solinas32_2e255m19_11limbs/fesub.c
index f9a7b5550..3e88a923c 100644
--- a/src/Specific/solinas32_2e255m19_11limbs/fesub.c
+++ b/src/Specific/solinas32_2e255m19_11limbs/fesub.c
@@ -21,7 +21,7 @@ static void fesub(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[1
{ const uint32_t x29 = in2[2];
{ const uint32_t x27 = in2[1];
{ const uint32_t x25 = in2[0];
- out[0] = ((Const 33554394 + x5) - x25);
+ out[0] = ((0x1ffffda + x5) - x25);
out[1] = ((0xfffffe + x7) - x27);
out[2] = ((0xfffffe + x9) - x29);
out[3] = ((0xfffffe + x11) - x31);
diff --git a/src/Specific/solinas32_2e255m19_11limbs/fesubDisplay.log b/src/Specific/solinas32_2e255m19_11limbs/fesubDisplay.log
index 3f3a9b93e..298433d11 100644
--- a/src/Specific/solinas32_2e255m19_11limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e255m19_11limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0xfffffe + x22) - x42), ((0xfffffe + x23) - x43), ((0xfffffe + x21) - x41), ((0xfffffe + x19) - x39), ((0xfffffe + x17) - x37), ((0x1fffffe + x15) - x35), ((0xfffffe + x13) - x33), ((0xfffffe + x11) - x31), ((0xfffffe + x9) - x29), ((0xfffffe + x7) - x27), ((Const 33554394 + x5) - x25)))
+ (((0xfffffe + x22) - x42), ((0xfffffe + x23) - x43), ((0xfffffe + x21) - x41), ((0xfffffe + x19) - x39), ((0xfffffe + x17) - x37), ((0x1fffffe + x15) - x35), ((0xfffffe + x13) - x33), ((0xfffffe + x11) - x31), ((0xfffffe + x9) - x29), ((0xfffffe + x7) - x27), ((0x1ffffda + x5) - x25)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e255m19_11limbs/freeze.c b/src/Specific/solinas32_2e255m19_11limbs/freeze.c
index 2c2ad3749..9c9a8991a 100644
--- a/src/Specific/solinas32_2e255m19_11limbs/freeze.c
+++ b/src/Specific/solinas32_2e255m19_11limbs/freeze.c
@@ -10,7 +10,7 @@ static void freeze(uint32_t out[11], const uint32_t in1[11]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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)) (0x0, Return x2, Const 16777197);
+ { 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)) (0x0, Return x2, 0xffffed);
{ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x4, 0x7fffff);
{ uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffff);
{ uint32_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x29, Return x8, 0x7fffff);
@@ -22,7 +22,7 @@ static void freeze(uint32_t out[11], const uint32_t in1[11]) {
{ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0x7fffff);
{ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x7fffff);
{ uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
- { uint32_t x55 = (x54 & Const 16777197);
+ { uint32_t x55 = (x54 & 0xffffed);
{ uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
{ uint32_t x59 = (x54 & 0x7fffff);
{ uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas32_2e255m19_11limbs/freezeDisplay.log b/src/Specific/solinas32_2e255m19_11limbs/freezeDisplay.log
index 704d1db03..da6c16fbb 100644
--- a/src/Specific/solinas32_2e255m19_11limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e255m19_11limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777197);
+ 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)) (0x0, Return x2, 0xffffed);
uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x4, 0x7fffff);
uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffff);
uint32_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x29, Return x8, 0x7fffff);
@@ -14,7 +14,7 @@ Interp-η
uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0x7fffff);
uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x7fffff);
uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
- uint32_t x55 = (x54 & Const 16777197);
+ uint32_t x55 = (x54 & 0xffffed);
uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
uint32_t x59 = (x54 & 0x7fffff);
uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas32_2e255m765_13limbs/fesub.c b/src/Specific/solinas32_2e255m765_13limbs/fesub.c
index 61c2ba339..2dc691fe8 100644
--- a/src/Specific/solinas32_2e255m765_13limbs/fesub.c
+++ b/src/Specific/solinas32_2e255m765_13limbs/fesub.c
@@ -25,7 +25,7 @@ static void fesub(uint32_t out[13], const uint32_t in1[13], const uint32_t in2[1
{ const uint32_t x33 = in2[2];
{ const uint32_t x31 = in2[1];
{ const uint32_t x29 = in2[0];
- out[0] = ((Const 2095622 + x5) - x29);
+ out[0] = ((0x1ffa06 + x5) - x29);
out[1] = ((0x1ffffe + x7) - x31);
out[2] = ((0xffffe + x9) - x33);
out[3] = ((0x1ffffe + x11) - x35);
diff --git a/src/Specific/solinas32_2e255m765_13limbs/fesubDisplay.log b/src/Specific/solinas32_2e255m765_13limbs/fesubDisplay.log
index e5821879c..ebb7cdb3e 100644
--- a/src/Specific/solinas32_2e255m765_13limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e255m765_13limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x26, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29))%core,
- (((0xffffe + x26) - x50), ((0x1ffffe + x27) - x51), ((0xffffe + x25) - x49), ((0x1ffffe + x23) - x47), ((0x1ffffe + x21) - x45), ((0xffffe + x19) - x43), ((0x1ffffe + x17) - x41), ((0xffffe + x15) - x39), ((0x1ffffe + x13) - x37), ((0x1ffffe + x11) - x35), ((0xffffe + x9) - x33), ((0x1ffffe + x7) - x31), ((Const 2095622 + x5) - x29)))
+ (((0xffffe + x26) - x50), ((0x1ffffe + x27) - x51), ((0xffffe + x25) - x49), ((0x1ffffe + x23) - x47), ((0x1ffffe + x21) - x45), ((0xffffe + x19) - x43), ((0x1ffffe + x17) - x41), ((0xffffe + x15) - x39), ((0x1ffffe + x13) - x37), ((0x1ffffe + x11) - x35), ((0xffffe + x9) - x33), ((0x1ffffe + x7) - x31), ((0x1ffa06 + x5) - x29)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e255m765_13limbs/freeze.c b/src/Specific/solinas32_2e255m765_13limbs/freeze.c
index cac26d29f..7fda2f57e 100644
--- a/src/Specific/solinas32_2e255m765_13limbs/freeze.c
+++ b/src/Specific/solinas32_2e255m765_13limbs/freeze.c
@@ -12,7 +12,7 @@ static void freeze(uint32_t out[13], const uint32_t in1[13]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 1047811);
+ { uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffd03);
{ uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x4, 0xfffff);
{ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x6, 0x7ffff);
{ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x8, 0xfffff);
@@ -26,7 +26,7 @@ static void freeze(uint32_t out[13], const uint32_t in1[13]) {
{ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x24, 0xfffff);
{ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x23, 0x7ffff);
{ uint32_t x64 = cmovznz32(x63, 0x0, 0xffffffff);
- { uint32_t x65 = (x64 & Const 1047811);
+ { uint32_t x65 = (x64 & 0xffd03);
{ uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x26, Return x65);
{ uint32_t x69 = (x64 & 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 x29, Return x69);
diff --git a/src/Specific/solinas32_2e255m765_13limbs/freezeDisplay.log b/src/Specific/solinas32_2e255m765_13limbs/freezeDisplay.log
index 3aa88aa52..24b1c126a 100644
--- a/src/Specific/solinas32_2e255m765_13limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e255m765_13limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x23, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 1047811);
+ uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffd03);
uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x4, 0xfffff);
uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x6, 0x7ffff);
uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x8, 0xfffff);
@@ -16,7 +16,7 @@ Interp-η
uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x24, 0xfffff);
uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x23, 0x7ffff);
uint32_t x64 = cmovznz32(x63, 0x0, 0xffffffff);
- uint32_t x65 = (x64 & Const 1047811);
+ uint32_t x65 = (x64 & 0xffd03);
uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x26, Return x65);
uint32_t x69 = (x64 & 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 x29, Return x69);
diff --git a/src/Specific/solinas32_2e256m189_11limbs/fesub.c b/src/Specific/solinas32_2e256m189_11limbs/fesub.c
index 01f1fa61c..4574e6e09 100644
--- a/src/Specific/solinas32_2e256m189_11limbs/fesub.c
+++ b/src/Specific/solinas32_2e256m189_11limbs/fesub.c
@@ -21,7 +21,7 @@ static void fesub(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[1
{ const uint32_t x29 = in2[2];
{ const uint32_t x27 = in2[1];
{ const uint32_t x25 = in2[0];
- out[0] = ((Const 33554054 + x5) - x25);
+ out[0] = ((0x1fffe86 + x5) - x25);
out[1] = ((0xfffffe + x7) - x27);
out[2] = ((0xfffffe + x9) - x29);
out[3] = ((0x1fffffe + x11) - x31);
diff --git a/src/Specific/solinas32_2e256m189_11limbs/fesubDisplay.log b/src/Specific/solinas32_2e256m189_11limbs/fesubDisplay.log
index 26c38cf5d..c139a725a 100644
--- a/src/Specific/solinas32_2e256m189_11limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e256m189_11limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0xfffffe + x22) - x42), ((0xfffffe + x23) - x43), ((0xfffffe + x21) - x41), ((0x1fffffe + x19) - x39), ((0xfffffe + x17) - x37), ((0xfffffe + x15) - x35), ((0xfffffe + x13) - x33), ((0x1fffffe + x11) - x31), ((0xfffffe + x9) - x29), ((0xfffffe + x7) - x27), ((Const 33554054 + x5) - x25)))
+ (((0xfffffe + x22) - x42), ((0xfffffe + x23) - x43), ((0xfffffe + x21) - x41), ((0x1fffffe + x19) - x39), ((0xfffffe + x17) - x37), ((0xfffffe + x15) - x35), ((0xfffffe + x13) - x33), ((0x1fffffe + x11) - x31), ((0xfffffe + x9) - x29), ((0xfffffe + x7) - x27), ((0x1fffe86 + x5) - x25)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e256m189_11limbs/freeze.c b/src/Specific/solinas32_2e256m189_11limbs/freeze.c
index 74bef3f18..b8f90c921 100644
--- a/src/Specific/solinas32_2e256m189_11limbs/freeze.c
+++ b/src/Specific/solinas32_2e256m189_11limbs/freeze.c
@@ -10,7 +10,7 @@ static void freeze(uint32_t out[11], const uint32_t in1[11]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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)) (0x0, Return x2, Const 16777027);
+ { 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)) (0x0, Return x2, 0xffff43);
{ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x4, 0x7fffff);
{ uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffff);
{ 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 x8, 0xffffff);
@@ -22,7 +22,7 @@ static void freeze(uint32_t out[11], const uint32_t in1[11]) {
{ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0x7fffff);
{ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x7fffff);
{ uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
- { uint32_t x55 = (x54 & Const 16777027);
+ { uint32_t x55 = (x54 & 0xffff43);
{ uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
{ uint32_t x59 = (x54 & 0x7fffff);
{ uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas32_2e256m189_11limbs/freezeDisplay.log b/src/Specific/solinas32_2e256m189_11limbs/freezeDisplay.log
index da22292fc..f12e58ea7 100644
--- a/src/Specific/solinas32_2e256m189_11limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e256m189_11limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777027);
+ 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)) (0x0, Return x2, 0xffff43);
uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x4, 0x7fffff);
uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffff);
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 x8, 0xffffff);
@@ -14,7 +14,7 @@ Interp-η
uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0x7fffff);
uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x7fffff);
uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
- uint32_t x55 = (x54 & Const 16777027);
+ uint32_t x55 = (x54 & 0xffff43);
uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
uint32_t x59 = (x54 & 0x7fffff);
uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/feaddDisplay.log b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/feaddDisplay.log
new file mode 100644
index 000000000..433ecbc2e
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x22, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25))%core,
+ ((x22 + x42), (x23 + x43), (x21 + x41), (x19 + x39), (x17 + x37), (x15 + x35), (x13 + x33), (x11 + x31), (x9 + x29), (x7 + x27), (x5 + x25)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/freezeDisplay.log b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/freezeDisplay.log
new file mode 100644
index 000000000..2ee7320e4
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1_11limbs/freezeDisplay.log
@@ -0,0 +1,38 @@
+λ x : word32 * word32 * 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 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffff);
+ uint32_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x23, Return x4, 0x7fffff);
+ uint32_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffff);
+ 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 x8, 0xffffff);
+ uint32_t x34, ℤ x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x32, Return x10, 0x3);
+ uint32_t x37, ℤ x38 = Op (Syntax.SubWithGetBorrow 23 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x35, Return x12, 0x0);
+ uint32_t x40, ℤ x41 = Op (Syntax.SubWithGetBorrow 23 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x38, Return x14, 0x0);
+ uint32_t x43, ℤ x44 = Op (Syntax.SubWithGetBorrow 24 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x41, Return x16, 0x0);
+ uint32_t x46, ℤ x47 = Op (Syntax.SubWithGetBorrow 23 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x44, Return x18, 0x20);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, Const 8372224);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x7fffff);
+ uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
+ uint32_t x55 = (x54 & 0xffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
+ uint32_t x59 = (x54 & 0x7fffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 23 (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 & 0x7fffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.AddWithGetCarry 23 (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 & 0xffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x31, Return x67);
+ uint8_t x71 = ((uint8_t)x54 & 0x3);
+ uint32_t x73, uint8_t x74 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x34, Return x71);
+ uint32_t x76, uint8_t x77 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x37, 0x0);
+ uint32_t x79, uint8_t x80 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x40, 0x0);
+ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x43, 0x0);
+ uint8_t x84 = ((uint8_t)x54 & 0x20);
+ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x46, Return x84);
+ uint32_t x88 = (x54 & Const 8372224);
+ uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x49, Return x88);
+ uint32_t x92 = (x54 & 0x7fffff);
+ uint32_t x94, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x52, Return x92);
+ (Return x94, Return x90, Return x86, Return x82, Return x79, Return x76, Return x73, Return x69, Return x65, Return x61, Return x57))
+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)
diff --git a/src/Specific/solinas32_2e256m2e32m977_13limbs/feaddDisplay.log b/src/Specific/solinas32_2e256m2e32m977_13limbs/feaddDisplay.log
new file mode 100644
index 000000000..e64abeaba
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977_13limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x26, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29))%core,
+ ((x26 + x50), (x27 + x51), (x25 + x49), (x23 + x47), (x21 + x45), (x19 + x43), (x17 + x41), (x15 + x39), (x13 + x37), (x11 + x35), (x9 + x33), (x7 + x31), (x5 + x29)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e256m2e32m977_13limbs/femulDisplay.log b/src/Specific/solinas32_2e256m2e32m977_13limbs/femulDisplay.log
new file mode 100644
index 000000000..8addae88a
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977_13limbs/femulDisplay.log
@@ -0,0 +1,75 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x26, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29))%core,
+ uint64_t x52 = ((((uint64_t)x5 * x50) + (((uint64_t)x7 * x51) + (((uint64_t)x9 * x49) + ((0x2 * ((uint64_t)x11 * x47)) + (((uint64_t)x13 * x45) + (((uint64_t)x15 * x43) + ((0x2 * ((uint64_t)x17 * x41)) + (((uint64_t)x19 * x39) + (((uint64_t)x21 * x37) + ((0x2 * ((uint64_t)x23 * x35)) + (((uint64_t)x25 * x33) + (((uint64_t)x27 * x31) + ((uint64_t)x26 * x29))))))))))))) + (0x1000 * (0x2 * ((uint64_t)x26 * x50))));
+ uint64_t x53 = ((((uint64_t)x5 * x51) + (((uint64_t)x7 * x49) + ((0x2 * ((uint64_t)x9 * x47)) + ((0x2 * ((uint64_t)x11 * x45)) + (((uint64_t)x13 * x43) + ((0x2 * ((uint64_t)x15 * x41)) + ((0x2 * ((uint64_t)x17 * x39)) + (((uint64_t)x19 * x37) + ((0x2 * ((uint64_t)x21 * x35)) + ((0x2 * ((uint64_t)x23 * x33)) + (((uint64_t)x25 * x31) + ((uint64_t)x27 * x29)))))))))))) + ((0x3d1 * (0x2 * ((uint64_t)x26 * x50))) + (0x1000 * ((0x2 * ((uint64_t)x27 * x50)) + (0x2 * ((uint64_t)x26 * x51))))));
+ uint64_t x54 = ((((uint64_t)x5 * x49) + ((0x2 * ((uint64_t)x7 * x47)) + ((0x2 * ((uint64_t)x9 * x45)) + ((0x2 * ((uint64_t)x11 * x43)) + ((0x2 * ((uint64_t)x13 * x41)) + ((0x2 * ((uint64_t)x15 * x39)) + ((0x2 * ((uint64_t)x17 * x37)) + ((0x2 * ((uint64_t)x19 * x35)) + ((0x2 * ((uint64_t)x21 * x33)) + ((0x2 * ((uint64_t)x23 * x31)) + ((uint64_t)x25 * x29))))))))))) + ((0x3d1 * ((0x2 * ((uint64_t)x27 * x50)) + (0x2 * ((uint64_t)x26 * x51)))) + (0x2000 * (((uint64_t)x25 * x50) + (((uint64_t)x27 * x51) + ((uint64_t)x26 * x49))))));
+ uint64_t x55 = ((((uint64_t)x5 * x47) + (((uint64_t)x7 * x45) + (((uint64_t)x9 * x43) + ((0x2 * ((uint64_t)x11 * x41)) + (((uint64_t)x13 * x39) + (((uint64_t)x15 * x37) + ((0x2 * ((uint64_t)x17 * x35)) + (((uint64_t)x19 * x33) + (((uint64_t)x21 * x31) + ((uint64_t)x23 * x29)))))))))) + ((0x3d1 * (((uint64_t)x25 * x50) + (((uint64_t)x27 * x51) + ((uint64_t)x26 * x49)))) + (0x1000 * ((0x2 * ((uint64_t)x23 * x50)) + (((uint64_t)x25 * x51) + (((uint64_t)x27 * x49) + (0x2 * ((uint64_t)x26 * x47))))))));
+ uint64_t x56 = ((((uint64_t)x5 * x45) + (((uint64_t)x7 * x43) + ((0x2 * ((uint64_t)x9 * x41)) + ((0x2 * ((uint64_t)x11 * x39)) + (((uint64_t)x13 * x37) + ((0x2 * ((uint64_t)x15 * x35)) + ((0x2 * ((uint64_t)x17 * x33)) + (((uint64_t)x19 * x31) + ((uint64_t)x21 * x29))))))))) + ((0x3d1 * ((0x2 * ((uint64_t)x23 * x50)) + (((uint64_t)x25 * x51) + (((uint64_t)x27 * x49) + (0x2 * ((uint64_t)x26 * x47)))))) + (0x1000 * ((0x2 * ((uint64_t)x21 * x50)) + ((0x2 * ((uint64_t)x23 * x51)) + (((uint64_t)x25 * x49) + ((0x2 * ((uint64_t)x27 * x47)) + (0x2 * ((uint64_t)x26 * x45)))))))));
+ uint64_t x57 = ((((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)) + ((uint64_t)x19 * x29)))))))) + ((0x3d1 * ((0x2 * ((uint64_t)x21 * x50)) + ((0x2 * ((uint64_t)x23 * x51)) + (((uint64_t)x25 * x49) + ((0x2 * ((uint64_t)x27 * x47)) + (0x2 * ((uint64_t)x26 * x45))))))) + (0x2000 * (((uint64_t)x19 * x50) + (((uint64_t)x21 * x51) + (((uint64_t)x23 * x49) + (((uint64_t)x25 * x47) + (((uint64_t)x27 * x45) + ((uint64_t)x26 * x43)))))))));
+ uint64_t x58 = ((((uint64_t)x5 * x41) + (((uint64_t)x7 * x39) + (((uint64_t)x9 * x37) + ((0x2 * ((uint64_t)x11 * x35)) + (((uint64_t)x13 * x33) + (((uint64_t)x15 * x31) + ((uint64_t)x17 * x29))))))) + ((0x3d1 * (((uint64_t)x19 * x50) + (((uint64_t)x21 * x51) + (((uint64_t)x23 * x49) + (((uint64_t)x25 * x47) + (((uint64_t)x27 * x45) + ((uint64_t)x26 * x43))))))) + (0x1000 * ((0x2 * ((uint64_t)x17 * x50)) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + ((0x2 * ((uint64_t)x23 * x47)) + (((uint64_t)x25 * x45) + (((uint64_t)x27 * x43) + (0x2 * ((uint64_t)x26 * x41)))))))))));
+ uint64_t x59 = ((((uint64_t)x5 * x39) + (((uint64_t)x7 * x37) + ((0x2 * ((uint64_t)x9 * x35)) + ((0x2 * ((uint64_t)x11 * x33)) + (((uint64_t)x13 * x31) + ((uint64_t)x15 * x29)))))) + ((0x3d1 * ((0x2 * ((uint64_t)x17 * x50)) + (((uint64_t)x19 * x51) + (((uint64_t)x21 * x49) + ((0x2 * ((uint64_t)x23 * x47)) + (((uint64_t)x25 * x45) + (((uint64_t)x27 * x43) + (0x2 * ((uint64_t)x26 * x41))))))))) + (0x1000 * ((0x2 * ((uint64_t)x15 * x50)) + ((0x2 * ((uint64_t)x17 * x51)) + (((uint64_t)x19 * x49) + ((0x2 * ((uint64_t)x21 * x47)) + ((0x2 * ((uint64_t)x23 * x45)) + (((uint64_t)x25 * x43) + ((0x2 * ((uint64_t)x27 * x41)) + (0x2 * ((uint64_t)x26 * x39))))))))))));
+ uint64_t x60 = ((((uint64_t)x5 * x37) + ((0x2 * ((uint64_t)x7 * x35)) + ((0x2 * ((uint64_t)x9 * x33)) + ((0x2 * ((uint64_t)x11 * x31)) + ((uint64_t)x13 * x29))))) + ((0x3d1 * ((0x2 * ((uint64_t)x15 * x50)) + ((0x2 * ((uint64_t)x17 * x51)) + (((uint64_t)x19 * x49) + ((0x2 * ((uint64_t)x21 * x47)) + ((0x2 * ((uint64_t)x23 * x45)) + (((uint64_t)x25 * x43) + ((0x2 * ((uint64_t)x27 * x41)) + (0x2 * ((uint64_t)x26 * x39)))))))))) + (0x2000 * (((uint64_t)x13 * x50) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + (((uint64_t)x19 * x47) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + (((uint64_t)x25 * x41) + (((uint64_t)x27 * x39) + ((uint64_t)x26 * x37))))))))))));
+ uint64_t x61 = ((((uint64_t)x5 * x35) + (((uint64_t)x7 * x33) + (((uint64_t)x9 * x31) + ((uint64_t)x11 * x29)))) + ((0x3d1 * (((uint64_t)x13 * x50) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + (((uint64_t)x19 * x47) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + (((uint64_t)x25 * x41) + (((uint64_t)x27 * x39) + ((uint64_t)x26 * x37)))))))))) + (0x1000 * ((0x2 * ((uint64_t)x11 * x50)) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + ((0x2 * ((uint64_t)x17 * x47)) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + ((0x2 * ((uint64_t)x23 * x41)) + (((uint64_t)x25 * x39) + (((uint64_t)x27 * x37) + (0x2 * ((uint64_t)x26 * x35))))))))))))));
+ uint64_t x62 = ((((uint64_t)x5 * x33) + (((uint64_t)x7 * x31) + ((uint64_t)x9 * x29))) + ((0x3d1 * ((0x2 * ((uint64_t)x11 * x50)) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + ((0x2 * ((uint64_t)x17 * x47)) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + ((0x2 * ((uint64_t)x23 * x41)) + (((uint64_t)x25 * x39) + (((uint64_t)x27 * x37) + (0x2 * ((uint64_t)x26 * x35)))))))))))) + (0x1000 * ((0x2 * ((uint64_t)x9 * x50)) + ((0x2 * ((uint64_t)x11 * x51)) + (((uint64_t)x13 * x49) + ((0x2 * ((uint64_t)x15 * x47)) + ((0x2 * ((uint64_t)x17 * x45)) + (((uint64_t)x19 * x43) + ((0x2 * ((uint64_t)x21 * x41)) + ((0x2 * ((uint64_t)x23 * x39)) + (((uint64_t)x25 * x37) + ((0x2 * ((uint64_t)x27 * x35)) + (0x2 * ((uint64_t)x26 * x33)))))))))))))));
+ uint64_t x63 = ((((uint64_t)x5 * x31) + ((uint64_t)x7 * x29)) + ((0x3d1 * ((0x2 * ((uint64_t)x9 * x50)) + ((0x2 * ((uint64_t)x11 * x51)) + (((uint64_t)x13 * x49) + ((0x2 * ((uint64_t)x15 * x47)) + ((0x2 * ((uint64_t)x17 * x45)) + (((uint64_t)x19 * x43) + ((0x2 * ((uint64_t)x21 * x41)) + ((0x2 * ((uint64_t)x23 * x39)) + (((uint64_t)x25 * x37) + ((0x2 * ((uint64_t)x27 * x35)) + (0x2 * ((uint64_t)x26 * x33))))))))))))) + (0x1000 * ((0x2 * ((uint64_t)x7 * x50)) + ((0x2 * ((uint64_t)x9 * x51)) + ((0x2 * ((uint64_t)x11 * x49)) + ((0x2 * ((uint64_t)x13 * x47)) + ((0x2 * ((uint64_t)x15 * x45)) + ((0x2 * ((uint64_t)x17 * x43)) + ((0x2 * ((uint64_t)x19 * x41)) + ((0x2 * ((uint64_t)x21 * x39)) + ((0x2 * ((uint64_t)x23 * x37)) + ((0x2 * ((uint64_t)x25 * x35)) + ((0x2 * ((uint64_t)x27 * x33)) + (0x2 * ((uint64_t)x26 * x31))))))))))))))));
+ uint64_t x64 = (((uint64_t)x5 * x29) + (0x3d1 * ((0x2 * ((uint64_t)x7 * x50)) + ((0x2 * ((uint64_t)x9 * x51)) + ((0x2 * ((uint64_t)x11 * x49)) + ((0x2 * ((uint64_t)x13 * x47)) + ((0x2 * ((uint64_t)x15 * x45)) + ((0x2 * ((uint64_t)x17 * x43)) + ((0x2 * ((uint64_t)x19 * x41)) + ((0x2 * ((uint64_t)x21 * x39)) + ((0x2 * ((uint64_t)x23 * x37)) + ((0x2 * ((uint64_t)x25 * x35)) + ((0x2 * ((uint64_t)x27 * x33)) + (0x2 * ((uint64_t)x26 * x31)))))))))))))));
+ uint64_t x65 = (x64 >> 0x14);
+ uint32_t x66 = ((uint32_t)x64 & 0xfffff);
+ uint64_t x67 = (x52 >> 0x13);
+ uint32_t x68 = ((uint32_t)x52 & 0x7ffff);
+ uint64_t x69 = ((0x80000 * x67) + x68);
+ uint64_t x70 = (x69 >> 0x13);
+ uint32_t x71 = ((uint32_t)x69 & 0x7ffff);
+ uint64_t x72 = ((x65 + x63) + (0x1000 * x70));
+ uint64_t x73 = (x72 >> 0x14);
+ uint32_t x74 = ((uint32_t)x72 & 0xfffff);
+ uint64_t x75 = (x66 + (0x3d1 * x70));
+ uint32_t x76 = (uint32_t) (x75 >> 0x14);
+ uint32_t x77 = ((uint32_t)x75 & 0xfffff);
+ uint64_t x78 = (x73 + x62);
+ uint64_t x79 = (x78 >> 0x14);
+ uint32_t x80 = ((uint32_t)x78 & 0xfffff);
+ uint64_t x81 = (x79 + x61);
+ uint64_t x82 = (x81 >> 0x13);
+ uint32_t x83 = ((uint32_t)x81 & 0x7ffff);
+ uint64_t x84 = (x82 + x60);
+ uint64_t x85 = (x84 >> 0x14);
+ uint32_t x86 = ((uint32_t)x84 & 0xfffff);
+ uint64_t x87 = (x85 + x59);
+ uint64_t x88 = (x87 >> 0x14);
+ uint32_t x89 = ((uint32_t)x87 & 0xfffff);
+ uint64_t x90 = (x88 + x58);
+ uint64_t x91 = (x90 >> 0x13);
+ uint32_t x92 = ((uint32_t)x90 & 0x7ffff);
+ uint64_t x93 = (x91 + x57);
+ uint64_t x94 = (x93 >> 0x14);
+ uint32_t x95 = ((uint32_t)x93 & 0xfffff);
+ uint64_t x96 = (x94 + x56);
+ uint64_t x97 = (x96 >> 0x14);
+ uint32_t x98 = ((uint32_t)x96 & 0xfffff);
+ uint64_t x99 = (x97 + x55);
+ uint64_t x100 = (x99 >> 0x13);
+ uint32_t x101 = ((uint32_t)x99 & 0x7ffff);
+ uint64_t x102 = (x100 + x54);
+ uint64_t x103 = (x102 >> 0x14);
+ uint32_t x104 = ((uint32_t)x102 & 0xfffff);
+ uint64_t x105 = (x103 + x53);
+ uint64_t x106 = (x105 >> 0x14);
+ uint32_t x107 = ((uint32_t)x105 & 0xfffff);
+ uint64_t x108 = (x106 + x71);
+ uint32_t x109 = (uint32_t) (x108 >> 0x13);
+ uint32_t x110 = ((uint32_t)x108 & 0x7ffff);
+ uint64_t x111 = (((uint64_t)0x80000 * x109) + x110);
+ uint32_t x112 = (uint32_t) (x111 >> 0x13);
+ uint32_t x113 = ((uint32_t)x111 & 0x7ffff);
+ uint32_t x114 = ((x76 + x74) + (0x1000 * x112));
+ uint32_t x115 = (x114 >> 0x14);
+ uint32_t x116 = (x114 & 0xfffff);
+ uint32_t x117 = (x77 + (0x3d1 * x112));
+ uint32_t x118 = (x117 >> 0x14);
+ uint32_t x119 = (x117 & 0xfffff);
+ return (Return x113, Return x107, Return x104, Return x101, Return x98, Return x95, Return x92, Return x89, Return x86, Return x83, (x115 + x80), (x118 + x116), Return x119))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e256m2e32m977_13limbs/fesquareDisplay.log b/src/Specific/solinas32_2e256m2e32m977_13limbs/fesquareDisplay.log
new file mode 100644
index 000000000..ccf2c91c7
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977_13limbs/fesquareDisplay.log
@@ -0,0 +1,75 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x23, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x25 = ((((uint64_t)x2 * x23) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + ((0x2 * ((uint64_t)x8 * x20)) + (((uint64_t)x10 * x18) + (((uint64_t)x12 * x16) + ((0x2 * ((uint64_t)x14 * x14)) + (((uint64_t)x16 * x12) + (((uint64_t)x18 * x10) + ((0x2 * ((uint64_t)x20 * x8)) + (((uint64_t)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x23 * x2))))))))))))) + (0x1000 * (0x2 * ((uint64_t)x23 * x23))));
+ uint64_t x26 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + ((0x2 * ((uint64_t)x6 * x20)) + ((0x2 * ((uint64_t)x8 * x18)) + (((uint64_t)x10 * x16) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + (((uint64_t)x16 * x10) + ((0x2 * ((uint64_t)x18 * x8)) + ((0x2 * ((uint64_t)x20 * x6)) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + ((0x3d1 * (0x2 * ((uint64_t)x23 * x23))) + (0x1000 * ((0x2 * ((uint64_t)x24 * x23)) + (0x2 * ((uint64_t)x23 * x24))))));
+ uint64_t x27 = ((((uint64_t)x2 * x22) + ((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)x22 * x2))))))))))) + ((0x3d1 * ((0x2 * ((uint64_t)x24 * x23)) + (0x2 * ((uint64_t)x23 * x24)))) + (0x2000 * (((uint64_t)x22 * x23) + (((uint64_t)x24 * x24) + ((uint64_t)x23 * x22))))));
+ uint64_t x28 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + ((0x2 * ((uint64_t)x8 * x14)) + (((uint64_t)x10 * x12) + (((uint64_t)x12 * x10) + ((0x2 * ((uint64_t)x14 * x8)) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + ((0x3d1 * (((uint64_t)x22 * x23) + (((uint64_t)x24 * x24) + ((uint64_t)x23 * x22)))) + (0x1000 * ((0x2 * ((uint64_t)x20 * x23)) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (0x2 * ((uint64_t)x23 * x20))))))));
+ uint64_t x29 = ((((uint64_t)x2 * x18) + (((uint64_t)x4 * x16) + ((0x2 * ((uint64_t)x6 * x14)) + ((0x2 * ((uint64_t)x8 * x12)) + (((uint64_t)x10 * x10) + ((0x2 * ((uint64_t)x12 * x8)) + ((0x2 * ((uint64_t)x14 * x6)) + (((uint64_t)x16 * x4) + ((uint64_t)x18 * x2))))))))) + ((0x3d1 * ((0x2 * ((uint64_t)x20 * x23)) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (0x2 * ((uint64_t)x23 * x20)))))) + (0x1000 * ((0x2 * ((uint64_t)x18 * x23)) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + (0x2 * ((uint64_t)x23 * x18)))))))));
+ uint64_t x30 = ((((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)))))))) + ((0x3d1 * ((0x2 * ((uint64_t)x18 * x23)) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + (0x2 * ((uint64_t)x23 * x18))))))) + (0x2000 * (((uint64_t)x16 * x23) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + ((uint64_t)x23 * x16)))))))));
+ uint64_t x31 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + (((uint64_t)x6 * x10) + ((0x2 * ((uint64_t)x8 * x8)) + (((uint64_t)x10 * x6) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + ((0x3d1 * (((uint64_t)x16 * x23) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + ((uint64_t)x23 * x16))))))) + (0x1000 * ((0x2 * ((uint64_t)x14 * x23)) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (0x2 * ((uint64_t)x23 * x14)))))))))));
+ uint64_t x32 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + ((0x2 * ((uint64_t)x6 * x8)) + ((0x2 * ((uint64_t)x8 * x6)) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + ((0x3d1 * ((0x2 * ((uint64_t)x14 * x23)) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (0x2 * ((uint64_t)x23 * x14))))))))) + (0x1000 * ((0x2 * ((uint64_t)x12 * x23)) + ((0x2 * ((uint64_t)x14 * x24)) + (((uint64_t)x16 * x22) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + (((uint64_t)x22 * x16) + ((0x2 * ((uint64_t)x24 * x14)) + (0x2 * ((uint64_t)x23 * x12))))))))))));
+ uint64_t x33 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + ((0x3d1 * ((0x2 * ((uint64_t)x12 * x23)) + ((0x2 * ((uint64_t)x14 * x24)) + (((uint64_t)x16 * x22) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + (((uint64_t)x22 * x16) + ((0x2 * ((uint64_t)x24 * x14)) + (0x2 * ((uint64_t)x23 * x12)))))))))) + (0x2000 * (((uint64_t)x10 * x23) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + ((uint64_t)x23 * x10))))))))))));
+ uint64_t x34 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + ((0x3d1 * (((uint64_t)x10 * x23) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + (((uint64_t)x16 * x20) + (((uint64_t)x18 * x18) + (((uint64_t)x20 * x16) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + ((uint64_t)x23 * x10)))))))))) + (0x1000 * ((0x2 * ((uint64_t)x8 * x23)) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + ((0x2 * ((uint64_t)x14 * x20)) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + ((0x2 * ((uint64_t)x20 * x14)) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (0x2 * ((uint64_t)x23 * x8))))))))))))));
+ uint64_t x35 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + ((0x3d1 * ((0x2 * ((uint64_t)x8 * x23)) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + ((0x2 * ((uint64_t)x14 * x20)) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + ((0x2 * ((uint64_t)x20 * x14)) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (0x2 * ((uint64_t)x23 * x8)))))))))))) + (0x1000 * ((0x2 * ((uint64_t)x6 * x23)) + ((0x2 * ((uint64_t)x8 * x24)) + (((uint64_t)x10 * x22) + ((0x2 * ((uint64_t)x12 * x20)) + ((0x2 * ((uint64_t)x14 * x18)) + (((uint64_t)x16 * x16) + ((0x2 * ((uint64_t)x18 * x14)) + ((0x2 * ((uint64_t)x20 * x12)) + (((uint64_t)x22 * x10) + ((0x2 * ((uint64_t)x24 * x8)) + (0x2 * ((uint64_t)x23 * x6)))))))))))))));
+ uint64_t x36 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + ((0x3d1 * ((0x2 * ((uint64_t)x6 * x23)) + ((0x2 * ((uint64_t)x8 * x24)) + (((uint64_t)x10 * x22) + ((0x2 * ((uint64_t)x12 * x20)) + ((0x2 * ((uint64_t)x14 * x18)) + (((uint64_t)x16 * x16) + ((0x2 * ((uint64_t)x18 * x14)) + ((0x2 * ((uint64_t)x20 * x12)) + (((uint64_t)x22 * x10) + ((0x2 * ((uint64_t)x24 * x8)) + (0x2 * ((uint64_t)x23 * x6))))))))))))) + (0x1000 * ((0x2 * ((uint64_t)x4 * x23)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + (0x2 * ((uint64_t)x23 * x4))))))))))))))));
+ uint64_t x37 = (((uint64_t)x2 * x2) + (0x3d1 * ((0x2 * ((uint64_t)x4 * x23)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + (0x2 * ((uint64_t)x23 * x4)))))))))))))));
+ uint64_t x38 = (x37 >> 0x14);
+ uint32_t x39 = ((uint32_t)x37 & 0xfffff);
+ uint64_t x40 = (x25 >> 0x13);
+ uint32_t x41 = ((uint32_t)x25 & 0x7ffff);
+ uint64_t x42 = ((0x80000 * x40) + x41);
+ uint64_t x43 = (x42 >> 0x13);
+ uint32_t x44 = ((uint32_t)x42 & 0x7ffff);
+ uint64_t x45 = ((x38 + x36) + (0x1000 * x43));
+ uint64_t x46 = (x45 >> 0x14);
+ uint32_t x47 = ((uint32_t)x45 & 0xfffff);
+ uint64_t x48 = (x39 + (0x3d1 * x43));
+ uint32_t x49 = (uint32_t) (x48 >> 0x14);
+ uint32_t x50 = ((uint32_t)x48 & 0xfffff);
+ uint64_t x51 = (x46 + x35);
+ uint64_t x52 = (x51 >> 0x14);
+ uint32_t x53 = ((uint32_t)x51 & 0xfffff);
+ uint64_t x54 = (x52 + x34);
+ uint64_t x55 = (x54 >> 0x13);
+ uint32_t x56 = ((uint32_t)x54 & 0x7ffff);
+ uint64_t x57 = (x55 + x33);
+ uint64_t x58 = (x57 >> 0x14);
+ uint32_t x59 = ((uint32_t)x57 & 0xfffff);
+ uint64_t x60 = (x58 + x32);
+ uint64_t x61 = (x60 >> 0x14);
+ uint32_t x62 = ((uint32_t)x60 & 0xfffff);
+ uint64_t x63 = (x61 + x31);
+ uint64_t x64 = (x63 >> 0x13);
+ uint32_t x65 = ((uint32_t)x63 & 0x7ffff);
+ uint64_t x66 = (x64 + x30);
+ uint64_t x67 = (x66 >> 0x14);
+ uint32_t x68 = ((uint32_t)x66 & 0xfffff);
+ uint64_t x69 = (x67 + x29);
+ uint64_t x70 = (x69 >> 0x14);
+ uint32_t x71 = ((uint32_t)x69 & 0xfffff);
+ uint64_t x72 = (x70 + x28);
+ uint64_t x73 = (x72 >> 0x13);
+ uint32_t x74 = ((uint32_t)x72 & 0x7ffff);
+ uint64_t x75 = (x73 + x27);
+ uint64_t x76 = (x75 >> 0x14);
+ uint32_t x77 = ((uint32_t)x75 & 0xfffff);
+ uint64_t x78 = (x76 + x26);
+ uint64_t x79 = (x78 >> 0x14);
+ uint32_t x80 = ((uint32_t)x78 & 0xfffff);
+ uint64_t x81 = (x79 + x44);
+ uint32_t x82 = (uint32_t) (x81 >> 0x13);
+ uint32_t x83 = ((uint32_t)x81 & 0x7ffff);
+ uint64_t x84 = (((uint64_t)0x80000 * x82) + x83);
+ uint32_t x85 = (uint32_t) (x84 >> 0x13);
+ uint32_t x86 = ((uint32_t)x84 & 0x7ffff);
+ uint32_t x87 = ((x49 + x47) + (0x1000 * x85));
+ uint32_t x88 = (x87 >> 0x14);
+ uint32_t x89 = (x87 & 0xfffff);
+ uint32_t x90 = (x50 + (0x3d1 * x85));
+ uint32_t x91 = (x90 >> 0x14);
+ uint32_t x92 = (x90 & 0xfffff);
+ return (Return x86, Return x80, Return x77, Return x74, Return x71, Return x68, Return x65, Return x62, Return x59, Return x56, (x88 + x53), (x91 + x89), Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e256m2e32m977_13limbs/fesubDisplay.log b/src/Specific/solinas32_2e256m2e32m977_13limbs/fesubDisplay.log
new file mode 100644
index 000000000..4b4557fcb
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977_13limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x26, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29))%core,
+ (((0xffffe + x26) - x50), ((0x1ffffe + x27) - x51), ((0x1ffffe + x25) - x49), ((0xffffe + x23) - x47), ((0x1ffffe + x21) - x45), ((0x1ffffe + x19) - x43), ((0xffffe + x17) - x41), ((0x1ffffe + x15) - x39), ((0x1ffffe + x13) - x37), ((0xffffe + x11) - x35), ((0x1ffffe + x9) - x33), ((Const 2088958 + x7) - x31), ((Const 2095198 + x5) - x29)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e256m2e32m977_13limbs/freezeDisplay.log b/src/Specific/solinas32_2e256m2e32m977_13limbs/freezeDisplay.log
new file mode 100644
index 000000000..297f966b5
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977_13limbs/freezeDisplay.log
@@ -0,0 +1,47 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x23, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 1047599);
+ uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x4, Const 1044479);
+ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x6, 0xfffff);
+ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x8, 0x7ffff);
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x10, 0xfffff);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x12, 0xfffff);
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x14, 0x7ffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x16, 0xfffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x18, 0xfffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x20, 0x7ffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x22, 0xfffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x24, 0xfffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x23, 0x7ffff);
+ uint32_t x64 = cmovznz32(x63, 0x0, 0xffffffff);
+ uint32_t x65 = (x64 & Const 1047599);
+ uint32_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x26, Return x65);
+ uint32_t x69 = (x64 & Const 1044479);
+ 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 x29, Return x69);
+ uint32_t x73 = (x64 & 0xfffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x32, Return x73);
+ uint32_t x77 = (x64 & 0x7ffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x35, Return x77);
+ uint32_t x81 = (x64 & 0xfffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x38, Return x81);
+ uint32_t x85 = (x64 & 0xfffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x41, Return x85);
+ uint32_t x89 = (x64 & 0x7ffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x44, Return x89);
+ uint32_t x93 = (x64 & 0xfffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x47, Return x93);
+ uint32_t x97 = (x64 & 0xfffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x50, Return x97);
+ uint32_t x101 = (x64 & 0x7ffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x53, Return x101);
+ uint32_t x105 = (x64 & 0xfffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x56, Return x105);
+ uint32_t x109 = (x64 & 0xfffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x59, Return x109);
+ uint32_t x113 = (x64 & 0x7ffff);
+ uint32_t x115, uint8_t _ = Op (Syntax.AddWithGetCarry 19 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x62, Return x113);
+ (Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87, Return x83, Return x79, Return x75, Return x71, Return x67))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e266m3_10limbs/fesub.c b/src/Specific/solinas32_2e266m3_10limbs/fesub.c
index 39be5cafe..e7e8d4bf6 100644
--- a/src/Specific/solinas32_2e266m3_10limbs/fesub.c
+++ b/src/Specific/solinas32_2e266m3_10limbs/fesub.c
@@ -19,7 +19,7 @@ static void fesub(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[1
{ const uint32_t x27 = in2[2];
{ const uint32_t x25 = in2[1];
{ const uint32_t x23 = in2[0];
- out[0] = ((Const 268435450 + x5) - x23);
+ out[0] = ((0xffffffa + x5) - x23);
out[1] = ((0xffffffe + x7) - x25);
out[2] = ((0x7fffffe + x9) - x27);
out[3] = ((0xffffffe + x11) - x29);
diff --git a/src/Specific/solinas32_2e266m3_10limbs/fesubDisplay.log b/src/Specific/solinas32_2e266m3_10limbs/fesubDisplay.log
index 662f6d638..97795c62a 100644
--- a/src/Specific/solinas32_2e266m3_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e266m3_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x7fffffe + x20) - x38), ((0xffffffe + x21) - x39), ((0x7fffffe + x19) - x37), ((0xffffffe + x17) - x35), ((0xffffffe + x15) - x33), ((0x7fffffe + x13) - x31), ((0xffffffe + x11) - x29), ((0x7fffffe + x9) - x27), ((0xffffffe + x7) - x25), ((Const 268435450 + x5) - x23)))
+ (((0x7fffffe + x20) - x38), ((0xffffffe + x21) - x39), ((0x7fffffe + x19) - x37), ((0xffffffe + x17) - x35), ((0xffffffe + x15) - x33), ((0x7fffffe + x13) - x31), ((0xffffffe + x11) - x29), ((0x7fffffe + x9) - x27), ((0xffffffe + x7) - x25), ((0xffffffa + x5) - x23)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e266m3_10limbs/freeze.c b/src/Specific/solinas32_2e266m3_10limbs/freeze.c
index 9013b9870..d36996a8b 100644
--- a/src/Specific/solinas32_2e266m3_10limbs/freeze.c
+++ b/src/Specific/solinas32_2e266m3_10limbs/freeze.c
@@ -9,7 +9,7 @@ static void freeze(uint32_t out[10], const uint32_t in1[10]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 134217725);
+ { uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffffd);
{ uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0x7ffffff);
{ uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0x3ffffff);
{ uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, 0x7ffffff);
@@ -20,7 +20,7 @@ static void freeze(uint32_t out[10], const uint32_t in1[10]) {
{ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x7ffffff);
{ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x3ffffff);
{ uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
- { uint32_t x50 = (x49 & Const 134217725);
+ { uint32_t x50 = (x49 & 0x7fffffd);
{ uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
{ uint32_t x54 = (x49 & 0x7ffffff);
{ uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
diff --git a/src/Specific/solinas32_2e266m3_10limbs/freezeDisplay.log b/src/Specific/solinas32_2e266m3_10limbs/freezeDisplay.log
index d47baf70f..0c596c6a9 100644
--- a/src/Specific/solinas32_2e266m3_10limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e266m3_10limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 134217725);
+ uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffffd);
uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0x7ffffff);
uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0x3ffffff);
uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, 0x7ffffff);
@@ -13,7 +13,7 @@ Interp-η
uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x7ffffff);
uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x3ffffff);
uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff);
- uint32_t x50 = (x49 & Const 134217725);
+ uint32_t x50 = (x49 & 0x7fffffd);
uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
uint32_t x54 = (x49 & 0x7ffffff);
uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, Return x54);
diff --git a/src/Specific/solinas32_2e291m19_11limbs/fesub.c b/src/Specific/solinas32_2e291m19_11limbs/fesub.c
index d5048244c..8f9629267 100644
--- a/src/Specific/solinas32_2e291m19_11limbs/fesub.c
+++ b/src/Specific/solinas32_2e291m19_11limbs/fesub.c
@@ -21,7 +21,7 @@ static void fesub(uint32_t out[11], const uint32_t in1[11], const uint32_t in2[1
{ const uint32_t x29 = in2[2];
{ const uint32_t x27 = in2[1];
{ const uint32_t x25 = in2[0];
- out[0] = ((Const 268435418 + x5) - x25);
+ out[0] = ((0xfffffda + x5) - x25);
out[1] = ((0x7fffffe + x7) - x27);
out[2] = ((0xffffffe + x9) - x29);
out[3] = ((0x7fffffe + x11) - x31);
diff --git a/src/Specific/solinas32_2e291m19_11limbs/fesubDisplay.log b/src/Specific/solinas32_2e291m19_11limbs/fesubDisplay.log
index 1f0729e42..73b55bc46 100644
--- a/src/Specific/solinas32_2e291m19_11limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e291m19_11limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x7fffffe + x22) - x42), ((0x7fffffe + x23) - x43), ((0xffffffe + x21) - x41), ((0x7fffffe + x19) - x39), ((0xffffffe + x17) - x37), ((0x7fffffe + x15) - x35), ((0xffffffe + x13) - x33), ((0x7fffffe + x11) - x31), ((0xffffffe + x9) - x29), ((0x7fffffe + x7) - x27), ((Const 268435418 + x5) - x25)))
+ (((0x7fffffe + x22) - x42), ((0x7fffffe + x23) - x43), ((0xffffffe + x21) - x41), ((0x7fffffe + x19) - x39), ((0xffffffe + x17) - x37), ((0x7fffffe + x15) - x35), ((0xffffffe + x13) - x33), ((0x7fffffe + x11) - x31), ((0xffffffe + x9) - x29), ((0x7fffffe + x7) - x27), ((0xfffffda + x5) - x25)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e291m19_11limbs/freeze.c b/src/Specific/solinas32_2e291m19_11limbs/freeze.c
index 0ce7235e0..d9a0dfb55 100644
--- a/src/Specific/solinas32_2e291m19_11limbs/freeze.c
+++ b/src/Specific/solinas32_2e291m19_11limbs/freeze.c
@@ -10,7 +10,7 @@ static void freeze(uint32_t out[11], const uint32_t in1[11]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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)) (0x0, Return x2, Const 134217709);
+ { 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)) (0x0, Return x2, 0x7ffffed);
{ 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 x4, 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 x6, 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 x8, 0x3ffffff);
@@ -22,7 +22,7 @@ static void freeze(uint32_t out[11], const uint32_t in1[11]) {
{ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0x3ffffff);
{ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x3ffffff);
{ uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
- { uint32_t x55 = (x54 & Const 134217709);
+ { uint32_t x55 = (x54 & 0x7ffffed);
{ uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
{ uint32_t x59 = (x54 & 0x3ffffff);
{ uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas32_2e291m19_11limbs/freezeDisplay.log b/src/Specific/solinas32_2e291m19_11limbs/freezeDisplay.log
index 8b2eaf414..b8a9f33c6 100644
--- a/src/Specific/solinas32_2e291m19_11limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e291m19_11limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 134217709);
+ 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)) (0x0, Return x2, 0x7ffffed);
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 x4, 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 x6, 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 x8, 0x3ffffff);
@@ -14,7 +14,7 @@ Interp-η
uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x20, 0x3ffffff);
uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x19, 0x3ffffff);
uint32_t x54 = cmovznz32(x53, 0x0, 0xffffffff);
- uint32_t x55 = (x54 & Const 134217709);
+ uint32_t x55 = (x54 & 0x7ffffed);
uint32_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
uint32_t x59 = (x54 & 0x3ffffff);
uint32_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas32_2e321m9_13limbs/fesub.c b/src/Specific/solinas32_2e321m9_13limbs/fesub.c
index 7340c17af..11330feb8 100644
--- a/src/Specific/solinas32_2e321m9_13limbs/fesub.c
+++ b/src/Specific/solinas32_2e321m9_13limbs/fesub.c
@@ -25,7 +25,7 @@ static void fesub(uint32_t out[13], const uint32_t in1[13], const uint32_t in2[1
{ const uint32_t x33 = in2[2];
{ const uint32_t x31 = in2[1];
{ const uint32_t x29 = in2[0];
- out[0] = ((Const 67108846 + x5) - x29);
+ out[0] = ((0x3ffffee + x5) - x29);
out[1] = ((0x3fffffe + x7) - x31);
out[2] = ((0x3fffffe + x9) - x33);
out[3] = ((0x1fffffe + x11) - x35);
diff --git a/src/Specific/solinas32_2e321m9_13limbs/fesubDisplay.log b/src/Specific/solinas32_2e321m9_13limbs/fesubDisplay.log
index 92bb20288..4c1546878 100644
--- a/src/Specific/solinas32_2e321m9_13limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e321m9_13limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x26, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29))%core,
- (((0x1fffffe + x26) - x50), ((0x3fffffe + x27) - x51), ((0x3fffffe + x25) - x49), ((0x1fffffe + x23) - x47), ((0x3fffffe + x21) - x45), ((0x3fffffe + x19) - x43), ((0x1fffffe + x17) - x41), ((0x3fffffe + x15) - x39), ((0x3fffffe + x13) - x37), ((0x1fffffe + x11) - x35), ((0x3fffffe + x9) - x33), ((0x3fffffe + x7) - x31), ((Const 67108846 + x5) - x29)))
+ (((0x1fffffe + x26) - x50), ((0x3fffffe + x27) - x51), ((0x3fffffe + x25) - x49), ((0x1fffffe + x23) - x47), ((0x3fffffe + x21) - x45), ((0x3fffffe + x19) - x43), ((0x1fffffe + x17) - x41), ((0x3fffffe + x15) - x39), ((0x3fffffe + x13) - x37), ((0x1fffffe + x11) - x35), ((0x3fffffe + x9) - x33), ((0x3fffffe + x7) - x31), ((0x3ffffee + x5) - x29)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e321m9_13limbs/freeze.c b/src/Specific/solinas32_2e321m9_13limbs/freeze.c
index be4df7ced..e40424ca4 100644
--- a/src/Specific/solinas32_2e321m9_13limbs/freeze.c
+++ b/src/Specific/solinas32_2e321m9_13limbs/freeze.c
@@ -12,7 +12,7 @@ static void freeze(uint32_t out[13], const uint32_t in1[13]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554423);
+ { uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1fffff7);
{ uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x4, 0x1ffffff);
{ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x6, 0x1ffffff);
{ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x8, 0xffffff);
@@ -26,7 +26,7 @@ static void freeze(uint32_t out[13], const uint32_t in1[13]) {
{ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x24, 0x1ffffff);
{ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x23, 0xffffff);
{ uint32_t x64 = cmovznz32(x63, 0x0, 0xffffffff);
- { uint32_t x65 = (x64 & Const 33554423);
+ { uint32_t x65 = (x64 & 0x1fffff7);
{ 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)) (0x0, Return x26, Return x65);
{ uint32_t x69 = (x64 & 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 x29, Return x69);
diff --git a/src/Specific/solinas32_2e321m9_13limbs/freezeDisplay.log b/src/Specific/solinas32_2e321m9_13limbs/freezeDisplay.log
index 56e6c6c48..7588e8d55 100644
--- a/src/Specific/solinas32_2e321m9_13limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e321m9_13limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x23, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554423);
+ uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1fffff7);
uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x4, 0x1ffffff);
uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x6, 0x1ffffff);
uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x8, 0xffffff);
@@ -16,7 +16,7 @@ Interp-η
uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x24, 0x1ffffff);
uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x23, 0xffffff);
uint32_t x64 = cmovznz32(x63, 0x0, 0xffffffff);
- uint32_t x65 = (x64 & Const 33554423);
+ uint32_t x65 = (x64 & 0x1fffff7);
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)) (0x0, Return x26, Return x65);
uint32_t x69 = (x64 & 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 x29, Return x69);
diff --git a/src/Specific/solinas32_2e336m3_13limbs/fesub.c b/src/Specific/solinas32_2e336m3_13limbs/fesub.c
index a07602403..c015e849b 100644
--- a/src/Specific/solinas32_2e336m3_13limbs/fesub.c
+++ b/src/Specific/solinas32_2e336m3_13limbs/fesub.c
@@ -25,7 +25,7 @@ static void fesub(uint32_t out[13], const uint32_t in1[13], const uint32_t in2[1
{ const uint32_t x33 = in2[2];
{ const uint32_t x31 = in2[1];
{ const uint32_t x29 = in2[0];
- out[0] = ((Const 134217722 + x5) - x29);
+ out[0] = ((0x7fffffa + x5) - x29);
out[1] = ((0x7fffffe + x7) - x31);
out[2] = ((0x7fffffe + x9) - x33);
out[3] = ((0x7fffffe + x11) - x35);
diff --git a/src/Specific/solinas32_2e336m3_13limbs/fesubDisplay.log b/src/Specific/solinas32_2e336m3_13limbs/fesubDisplay.log
index e9825a5a8..3245f5189 100644
--- a/src/Specific/solinas32_2e336m3_13limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e336m3_13limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x26, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x50, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31, x29))%core,
- (((0x3fffffe + x26) - x50), ((0x7fffffe + x27) - x51), ((0x7fffffe + x25) - x49), ((0x7fffffe + x23) - x47), ((0x7fffffe + x21) - x45), ((0x7fffffe + x19) - x43), ((0x3fffffe + x17) - x41), ((0x7fffffe + x15) - x39), ((0x7fffffe + x13) - x37), ((0x7fffffe + x11) - x35), ((0x7fffffe + x9) - x33), ((0x7fffffe + x7) - x31), ((Const 134217722 + x5) - x29)))
+ (((0x3fffffe + x26) - x50), ((0x7fffffe + x27) - x51), ((0x7fffffe + x25) - x49), ((0x7fffffe + x23) - x47), ((0x7fffffe + x21) - x45), ((0x7fffffe + x19) - x43), ((0x3fffffe + x17) - x41), ((0x7fffffe + x15) - x39), ((0x7fffffe + x13) - x37), ((0x7fffffe + x11) - x35), ((0x7fffffe + x9) - x33), ((0x7fffffe + x7) - x31), ((0x7fffffa + x5) - x29)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e338m15_14limbs/fesub.c b/src/Specific/solinas32_2e338m15_14limbs/fesub.c
index c18d70747..5573e5737 100644
--- a/src/Specific/solinas32_2e338m15_14limbs/fesub.c
+++ b/src/Specific/solinas32_2e338m15_14limbs/fesub.c
@@ -27,7 +27,7 @@ static void fesub(uint32_t out[14], const uint32_t in1[14], const uint32_t in2[1
{ const uint32_t x35 = in2[2];
{ const uint32_t x33 = in2[1];
{ const uint32_t x31 = in2[0];
- out[0] = ((Const 67108834 + x5) - x31);
+ out[0] = ((0x3ffffe2 + x5) - x31);
out[1] = ((0x1fffffe + x7) - x33);
out[2] = ((0x1fffffe + x9) - x35);
out[3] = ((0x1fffffe + x11) - x37);
diff --git a/src/Specific/solinas32_2e338m15_14limbs/fesubDisplay.log b/src/Specific/solinas32_2e338m15_14limbs/fesubDisplay.log
index 0271c29fd..8af6fc90e 100644
--- a/src/Specific/solinas32_2e338m15_14limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e338m15_14limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x28, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x54, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33, x31))%core,
- (((0x1fffffe + x28) - x54), ((0x1fffffe + x29) - x55), ((0x1fffffe + x27) - x53), ((0x1fffffe + x25) - x51), ((0x1fffffe + x23) - x49), ((0x1fffffe + x21) - x47), ((0x3fffffe + x19) - x45), ((0x1fffffe + x17) - x43), ((0x1fffffe + x15) - x41), ((0x1fffffe + x13) - x39), ((0x1fffffe + x11) - x37), ((0x1fffffe + x9) - x35), ((0x1fffffe + x7) - x33), ((Const 67108834 + x5) - x31)))
+ (((0x1fffffe + x28) - x54), ((0x1fffffe + x29) - x55), ((0x1fffffe + x27) - x53), ((0x1fffffe + x25) - x51), ((0x1fffffe + x23) - x49), ((0x1fffffe + x21) - x47), ((0x3fffffe + x19) - x45), ((0x1fffffe + x17) - x43), ((0x1fffffe + x15) - x41), ((0x1fffffe + x13) - x39), ((0x1fffffe + x11) - x37), ((0x1fffffe + x9) - x35), ((0x1fffffe + x7) - x33), ((0x3ffffe2 + x5) - x31)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e369m25_15limbs/fesub.c b/src/Specific/solinas32_2e369m25_15limbs/fesub.c
index 3547d3899..d7d3603d5 100644
--- a/src/Specific/solinas32_2e369m25_15limbs/fesub.c
+++ b/src/Specific/solinas32_2e369m25_15limbs/fesub.c
@@ -29,7 +29,7 @@ static void fesub(uint32_t out[15], const uint32_t in1[15], const uint32_t in2[1
{ const uint32_t x37 = in2[2];
{ const uint32_t x35 = in2[1];
{ const uint32_t x33 = in2[0];
- out[0] = ((Const 67108814 + x5) - x33);
+ out[0] = ((0x3ffffce + x5) - x33);
out[1] = ((0x3fffffe + x7) - x35);
out[2] = ((0x1fffffe + x9) - x37);
out[3] = ((0x3fffffe + x11) - x39);
diff --git a/src/Specific/solinas32_2e369m25_15limbs/fesubDisplay.log b/src/Specific/solinas32_2e369m25_15limbs/fesubDisplay.log
index 582c69d82..5acc2d986 100644
--- a/src/Specific/solinas32_2e369m25_15limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e369m25_15limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x30, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x58, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33))%core,
- (((0x1fffffe + x30) - x58), ((0x3fffffe + x31) - x59), ((0x1fffffe + x29) - x57), ((0x3fffffe + x27) - x55), ((0x3fffffe + x25) - x53), ((0x1fffffe + x23) - x51), ((0x3fffffe + x21) - x49), ((0x1fffffe + x19) - x47), ((0x3fffffe + x17) - x45), ((0x3fffffe + x15) - x43), ((0x1fffffe + x13) - x41), ((0x3fffffe + x11) - x39), ((0x1fffffe + x9) - x37), ((0x3fffffe + x7) - x35), ((Const 67108814 + x5) - x33)))
+ (((0x1fffffe + x30) - x58), ((0x3fffffe + x31) - x59), ((0x1fffffe + x29) - x57), ((0x3fffffe + x27) - x55), ((0x3fffffe + x25) - x53), ((0x1fffffe + x23) - x51), ((0x3fffffe + x21) - x49), ((0x1fffffe + x19) - x47), ((0x3fffffe + x17) - x45), ((0x3fffffe + x15) - x43), ((0x1fffffe + x13) - x41), ((0x3fffffe + x11) - x39), ((0x1fffffe + x9) - x37), ((0x3fffffe + x7) - x35), ((0x3ffffce + x5) - x33)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e369m25_15limbs/freeze.c b/src/Specific/solinas32_2e369m25_15limbs/freeze.c
index b97e44a92..f33c335f6 100644
--- a/src/Specific/solinas32_2e369m25_15limbs/freeze.c
+++ b/src/Specific/solinas32_2e369m25_15limbs/freeze.c
@@ -14,7 +14,7 @@ static void freeze(uint32_t out[15], const uint32_t in1[15]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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)) (0x0, Return x2, Const 33554407);
+ { 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)) (0x0, Return x2, 0x1ffffe7);
{ 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 x4, 0x1ffffff);
{ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x34, Return x6, 0xffffff);
{ 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 x8, 0x1ffffff);
@@ -30,7 +30,7 @@ static void freeze(uint32_t out[15], const uint32_t in1[15]) {
{ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x28, 0x1ffffff);
{ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x27, 0xffffff);
{ uint32_t x74 = cmovznz32(x73, 0x0, 0xffffffff);
- { uint32_t x75 = (x74 & Const 33554407);
+ { uint32_t x75 = (x74 & 0x1ffffe7);
{ uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x30, Return x75);
{ uint32_t x79 = (x74 & 0x1ffffff);
{ uint32_t x81, uint8_t x82 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x33, Return x79);
diff --git a/src/Specific/solinas32_2e369m25_15limbs/freezeDisplay.log b/src/Specific/solinas32_2e369m25_15limbs/freezeDisplay.log
index 9d6a77f4e..e27aaba97 100644
--- a/src/Specific/solinas32_2e369m25_15limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e369m25_15limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x27, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- 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)) (0x0, Return x2, Const 33554407);
+ 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)) (0x0, Return x2, 0x1ffffe7);
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 x4, 0x1ffffff);
uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x34, Return x6, 0xffffff);
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 x8, 0x1ffffff);
@@ -18,7 +18,7 @@ Interp-η
uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x28, 0x1ffffff);
uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x27, 0xffffff);
uint32_t x74 = cmovznz32(x73, 0x0, 0xffffffff);
- uint32_t x75 = (x74 & Const 33554407);
+ uint32_t x75 = (x74 & 0x1ffffe7);
uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x30, Return x75);
uint32_t x79 = (x74 & 0x1ffffff);
uint32_t x81, uint8_t x82 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x33, Return x79);
diff --git a/src/Specific/solinas32_2e379m19_16limbs/fesub.c b/src/Specific/solinas32_2e379m19_16limbs/fesub.c
index 49b5ae00e..d00aacf65 100644
--- a/src/Specific/solinas32_2e379m19_16limbs/fesub.c
+++ b/src/Specific/solinas32_2e379m19_16limbs/fesub.c
@@ -31,7 +31,7 @@ static void fesub(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[1
{ const uint32_t x39 = in2[2];
{ const uint32_t x37 = in2[1];
{ const uint32_t x35 = in2[0];
- out[0] = ((Const 33554394 + x5) - x35);
+ out[0] = ((0x1ffffda + x5) - x35);
out[1] = ((0x1fffffe + x7) - x37);
out[2] = ((0x1fffffe + x9) - x39);
out[3] = ((0xfffffe + x11) - x41);
diff --git a/src/Specific/solinas32_2e379m19_16limbs/fesubDisplay.log b/src/Specific/solinas32_2e379m19_16limbs/fesubDisplay.log
index da623587f..49ba4b2a9 100644
--- a/src/Specific/solinas32_2e379m19_16limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e379m19_16limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
- (((0xfffffe + x32) - x62), ((0x1fffffe + x33) - x63), ((0x1fffffe + x31) - x61), ((0xfffffe + x29) - x59), ((0x1fffffe + x27) - x57), ((0x1fffffe + x25) - x55), ((0xfffffe + x23) - x53), ((0x1fffffe + x21) - x51), ((0x1fffffe + x19) - x49), ((0xfffffe + x17) - x47), ((0x1fffffe + x15) - x45), ((0x1fffffe + x13) - x43), ((0xfffffe + x11) - x41), ((0x1fffffe + x9) - x39), ((0x1fffffe + x7) - x37), ((Const 33554394 + x5) - x35)))
+ (((0xfffffe + x32) - x62), ((0x1fffffe + x33) - x63), ((0x1fffffe + x31) - x61), ((0xfffffe + x29) - x59), ((0x1fffffe + x27) - x57), ((0x1fffffe + x25) - x55), ((0xfffffe + x23) - x53), ((0x1fffffe + x21) - x51), ((0x1fffffe + x19) - x49), ((0xfffffe + x17) - x47), ((0x1fffffe + x15) - x45), ((0x1fffffe + x13) - x43), ((0xfffffe + x11) - x41), ((0x1fffffe + x9) - x39), ((0x1fffffe + x7) - x37), ((0x1ffffda + x5) - x35)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e379m19_16limbs/freeze.c b/src/Specific/solinas32_2e379m19_16limbs/freeze.c
index 77cd8ef08..8d1cf3f8e 100644
--- a/src/Specific/solinas32_2e379m19_16limbs/freeze.c
+++ b/src/Specific/solinas32_2e379m19_16limbs/freeze.c
@@ -15,7 +15,7 @@ static void freeze(uint32_t out[16], const uint32_t in1[16]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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)) (0x0, Return x2, Const 16777197);
+ { 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)) (0x0, Return x2, 0xffffed);
{ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
{ 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 x6, 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 x8, 0x7fffff);
@@ -32,7 +32,7 @@ static void freeze(uint32_t out[16], const uint32_t in1[16]) {
{ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
{ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
{ uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
- { uint32_t x80 = (x79 & Const 16777197);
+ { uint32_t x80 = (x79 & 0xffffed);
{ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
{ uint32_t x84 = (x79 & 0xffffff);
{ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
diff --git a/src/Specific/solinas32_2e379m19_16limbs/freezeDisplay.log b/src/Specific/solinas32_2e379m19_16limbs/freezeDisplay.log
index 3b8a75b91..13c718586 100644
--- a/src/Specific/solinas32_2e379m19_16limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e379m19_16limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- 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)) (0x0, Return x2, Const 16777197);
+ 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)) (0x0, Return x2, 0xffffed);
uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
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 x6, 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 x8, 0x7fffff);
@@ -19,7 +19,7 @@ Interp-η
uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
- uint32_t x80 = (x79 & Const 16777197);
+ uint32_t x80 = (x79 & 0xffffed);
uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
uint32_t x84 = (x79 & 0xffffff);
uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
diff --git a/src/Specific/solinas32_2e382m105_16limbs/fesub.c b/src/Specific/solinas32_2e382m105_16limbs/fesub.c
index 27892f503..54573ee8f 100644
--- a/src/Specific/solinas32_2e382m105_16limbs/fesub.c
+++ b/src/Specific/solinas32_2e382m105_16limbs/fesub.c
@@ -31,7 +31,7 @@ static void fesub(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[1
{ const uint32_t x39 = in2[2];
{ const uint32_t x37 = in2[1];
{ const uint32_t x35 = in2[0];
- out[0] = ((Const 33554222 + x5) - x35);
+ out[0] = ((0x1ffff2e + x5) - x35);
out[1] = ((0x1fffffe + x7) - x37);
out[2] = ((0x1fffffe + x9) - x39);
out[3] = ((0x1fffffe + x11) - x41);
diff --git a/src/Specific/solinas32_2e382m105_16limbs/fesubDisplay.log b/src/Specific/solinas32_2e382m105_16limbs/fesubDisplay.log
index 7a1220c94..5ba1c47be 100644
--- a/src/Specific/solinas32_2e382m105_16limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e382m105_16limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
- (((0xfffffe + x32) - x62), ((0x1fffffe + x33) - x63), ((0x1fffffe + x31) - x61), ((0x1fffffe + x29) - x59), ((0x1fffffe + x27) - x57), ((0x1fffffe + x25) - x55), ((0x1fffffe + x23) - x53), ((0x1fffffe + x21) - x51), ((0xfffffe + x19) - x49), ((0x1fffffe + x17) - x47), ((0x1fffffe + x15) - x45), ((0x1fffffe + x13) - x43), ((0x1fffffe + x11) - x41), ((0x1fffffe + x9) - x39), ((0x1fffffe + x7) - x37), ((Const 33554222 + x5) - x35)))
+ (((0xfffffe + x32) - x62), ((0x1fffffe + x33) - x63), ((0x1fffffe + x31) - x61), ((0x1fffffe + x29) - x59), ((0x1fffffe + x27) - x57), ((0x1fffffe + x25) - x55), ((0x1fffffe + x23) - x53), ((0x1fffffe + x21) - x51), ((0xfffffe + x19) - x49), ((0x1fffffe + x17) - x47), ((0x1fffffe + x15) - x45), ((0x1fffffe + x13) - x43), ((0x1fffffe + x11) - x41), ((0x1fffffe + x9) - x39), ((0x1fffffe + x7) - x37), ((0x1ffff2e + x5) - x35)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e382m105_16limbs/freeze.c b/src/Specific/solinas32_2e382m105_16limbs/freeze.c
index 1b6a9e8aa..23d68667e 100644
--- a/src/Specific/solinas32_2e382m105_16limbs/freeze.c
+++ b/src/Specific/solinas32_2e382m105_16limbs/freeze.c
@@ -15,7 +15,7 @@ static void freeze(uint32_t out[16], const uint32_t in1[16]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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)) (0x0, Return x2, Const 16777111);
+ { 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)) (0x0, Return x2, 0xffff97);
{ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
{ 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 x6, 0xffffff);
{ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0xffffff);
@@ -32,7 +32,7 @@ static void freeze(uint32_t out[16], const uint32_t in1[16]) {
{ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
{ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
{ uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
- { uint32_t x80 = (x79 & Const 16777111);
+ { uint32_t x80 = (x79 & 0xffff97);
{ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
{ uint32_t x84 = (x79 & 0xffffff);
{ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
diff --git a/src/Specific/solinas32_2e382m105_16limbs/freezeDisplay.log b/src/Specific/solinas32_2e382m105_16limbs/freezeDisplay.log
index 3e49e245c..41b83672a 100644
--- a/src/Specific/solinas32_2e382m105_16limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e382m105_16limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- 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)) (0x0, Return x2, Const 16777111);
+ 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)) (0x0, Return x2, 0xffff97);
uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
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 x6, 0xffffff);
uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0xffffff);
@@ -19,7 +19,7 @@ Interp-η
uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
- uint32_t x80 = (x79 & Const 16777111);
+ uint32_t x80 = (x79 & 0xffff97);
uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
uint32_t x84 = (x79 & 0xffffff);
uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
diff --git a/src/Specific/solinas32_2e382m105_17limbs/fesub.c b/src/Specific/solinas32_2e382m105_17limbs/fesub.c
index 56d967246..a4b250af4 100644
--- a/src/Specific/solinas32_2e382m105_17limbs/fesub.c
+++ b/src/Specific/solinas32_2e382m105_17limbs/fesub.c
@@ -33,7 +33,7 @@ static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[1
{ const uint32_t x41 = in2[2];
{ const uint32_t x39 = in2[1];
{ const uint32_t x37 = in2[0];
- out[0] = ((Const 16777006 + x5) - x37);
+ out[0] = ((0xffff2e + x5) - x37);
out[1] = ((0x7ffffe + x7) - x39);
out[2] = ((0xfffffe + x9) - x41);
out[3] = ((0x7ffffe + x11) - x43);
diff --git a/src/Specific/solinas32_2e382m105_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e382m105_17limbs/fesubDisplay.log
index ffc38cd07..a46f8a27d 100644
--- a/src/Specific/solinas32_2e382m105_17limbs/fesubDisplay.log
+++ b/src/Specific/solinas32_2e382m105_17limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
- (((0x7ffffe + x34) - x66), ((0x7ffffe + x35) - x67), ((0xfffffe + x33) - x65), ((0x7ffffe + x31) - x63), ((0xfffffe + x29) - x61), ((0x7ffffe + x27) - x59), ((0xfffffe + x25) - x57), ((0x7ffffe + x23) - x55), ((0xfffffe + x21) - x53), ((0x7ffffe + x19) - x51), ((0xfffffe + x17) - x49), ((0x7ffffe + x15) - x47), ((0xfffffe + x13) - x45), ((0x7ffffe + x11) - x43), ((0xfffffe + x9) - x41), ((0x7ffffe + x7) - x39), ((Const 16777006 + x5) - x37)))
+ (((0x7ffffe + x34) - x66), ((0x7ffffe + x35) - x67), ((0xfffffe + x33) - x65), ((0x7ffffe + x31) - x63), ((0xfffffe + x29) - x61), ((0x7ffffe + x27) - x59), ((0xfffffe + x25) - x57), ((0x7ffffe + x23) - x55), ((0xfffffe + x21) - x53), ((0x7ffffe + x19) - x51), ((0xfffffe + x17) - x49), ((0x7ffffe + x15) - x47), ((0xfffffe + x13) - x45), ((0x7ffffe + x11) - x43), ((0xfffffe + x9) - x41), ((0x7ffffe + x7) - x39), ((0xffff2e + x5) - x37)))
(x, x0)%core
: word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e382m105_17limbs/freeze.c b/src/Specific/solinas32_2e382m105_17limbs/freeze.c
index e445f3a71..af26c1109 100644
--- a/src/Specific/solinas32_2e382m105_17limbs/freeze.c
+++ b/src/Specific/solinas32_2e382m105_17limbs/freeze.c
@@ -16,7 +16,7 @@ static void freeze(uint32_t out[17], const uint32_t in1[17]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388503);
+ { uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fff97);
{ 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 x4, 0x3fffff);
{ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x7fffff);
{ 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 x8, 0x3fffff);
@@ -34,7 +34,7 @@ static void freeze(uint32_t out[17], const uint32_t in1[17]) {
{ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x3fffff);
{ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
{ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
- { uint32_t x85 = (x84 & Const 8388503);
+ { uint32_t x85 = (x84 & 0x7fff97);
{ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
{ uint32_t x89 = (x84 & 0x3fffff);
{ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
diff --git a/src/Specific/solinas32_2e382m105_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e382m105_17limbs/freezeDisplay.log
index 9ba5e0e44..d1aee48e4 100644
--- a/src/Specific/solinas32_2e382m105_17limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e382m105_17limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388503);
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fff97);
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 x4, 0x3fffff);
uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x7fffff);
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 x8, 0x3fffff);
@@ -20,7 +20,7 @@ Interp-η
uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x3fffff);
uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
- uint32_t x85 = (x84 & Const 8388503);
+ uint32_t x85 = (x84 & 0x7fff97);
uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
uint32_t x89 = (x84 & 0x3fffff);
uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
diff --git a/src/Specific/solinas32_2e383m187_16limbs/feadd.c b/src/Specific/solinas32_2e383m187_16limbs/feadd.c
new file mode 100644
index 000000000..18b150e21
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_16limbs/feadd.c
@@ -0,0 +1,51 @@
+static void feadd(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = (x5 + x35);
+ out[1] = (x7 + x37);
+ out[2] = (x9 + x39);
+ out[3] = (x11 + x41);
+ out[4] = (x13 + x43);
+ out[5] = (x15 + x45);
+ out[6] = (x17 + x47);
+ out[7] = (x19 + x49);
+ out[8] = (x21 + x51);
+ out[9] = (x23 + x53);
+ out[10] = (x25 + x55);
+ out[11] = (x27 + x57);
+ out[12] = (x29 + x59);
+ out[13] = (x31 + x61);
+ out[14] = (x33 + x63);
+ out[15] = (x32 + x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m187_16limbs/feaddDisplay.log b/src/Specific/solinas32_2e383m187_16limbs/feaddDisplay.log
new file mode 100644
index 000000000..130c31964
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_16limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ ((x32 + x62), (x33 + x63), (x31 + x61), (x29 + x59), (x27 + x57), (x25 + x55), (x23 + x53), (x21 + x51), (x19 + x49), (x17 + x47), (x15 + x45), (x13 + x43), (x11 + x41), (x9 + x39), (x7 + x37), (x5 + x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m187_16limbs/fesub.c b/src/Specific/solinas32_2e383m187_16limbs/fesub.c
new file mode 100644
index 000000000..dae399671
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_16limbs/fesub.c
@@ -0,0 +1,51 @@
+static void fesub(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = ((Const 33554058 + x5) - x35);
+ out[1] = ((0x1fffffe + x7) - x37);
+ out[2] = ((0x1fffffe + x9) - x39);
+ out[3] = ((0x1fffffe + x11) - x41);
+ out[4] = ((0x1fffffe + x13) - x43);
+ out[5] = ((0x1fffffe + x15) - x45);
+ out[6] = ((0x1fffffe + x17) - x47);
+ out[7] = ((0x1fffffe + x19) - x49);
+ out[8] = ((0x1fffffe + x21) - x51);
+ out[9] = ((0x1fffffe + x23) - x53);
+ out[10] = ((0x1fffffe + x25) - x55);
+ out[11] = ((0x1fffffe + x27) - x57);
+ out[12] = ((0x1fffffe + x29) - x59);
+ out[13] = ((0x1fffffe + x31) - x61);
+ out[14] = ((0x1fffffe + x33) - x63);
+ out[15] = ((0xfffffe + x32) - x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m187_16limbs/fesubDisplay.log b/src/Specific/solinas32_2e383m187_16limbs/fesubDisplay.log
new file mode 100644
index 000000000..8f1af6afd
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_16limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ (((0xfffffe + x32) - x62), ((0x1fffffe + x33) - x63), ((0x1fffffe + x31) - x61), ((0x1fffffe + x29) - x59), ((0x1fffffe + x27) - x57), ((0x1fffffe + x25) - x55), ((0x1fffffe + x23) - x53), ((0x1fffffe + x21) - x51), ((0x1fffffe + x19) - x49), ((0x1fffffe + x17) - x47), ((0x1fffffe + x15) - x45), ((0x1fffffe + x13) - x43), ((0x1fffffe + x11) - x41), ((0x1fffffe + x9) - x39), ((0x1fffffe + x7) - x37), ((Const 33554058 + x5) - x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m187_16limbs/freeze.c b/src/Specific/solinas32_2e383m187_16limbs/freeze.c
index 66c0a8cdf..1bb1fbd60 100644
--- a/src/Specific/solinas32_2e383m187_16limbs/freeze.c
+++ b/src/Specific/solinas32_2e383m187_16limbs/freeze.c
@@ -15,7 +15,7 @@ static void freeze(uint32_t out[16], const uint32_t in1[16]) {
{ const uint32_t x6 = in1[2];
{ const uint32_t x4 = in1[1];
{ const uint32_t x2 = in1[0];
- { 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)) (0x0, Return x2, Const 16777029);
+ { 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)) (0x0, Return x2, 0xffff45);
{ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
{ 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 x6, 0xffffff);
{ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0xffffff);
@@ -32,7 +32,7 @@ static void freeze(uint32_t out[16], const uint32_t in1[16]) {
{ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
{ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
{ uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
- { uint32_t x80 = (x79 & Const 16777029);
+ { uint32_t x80 = (x79 & 0xffff45);
{ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
{ uint32_t x84 = (x79 & 0xffffff);
{ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
diff --git a/src/Specific/solinas32_2e383m187_16limbs/freezeDisplay.log b/src/Specific/solinas32_2e383m187_16limbs/freezeDisplay.log
index 99a8f61e4..10a8e1a4d 100644
--- a/src/Specific/solinas32_2e383m187_16limbs/freezeDisplay.log
+++ b/src/Specific/solinas32_2e383m187_16limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- 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)) (0x0, Return x2, Const 16777029);
+ 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)) (0x0, Return x2, 0xffff45);
uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
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 x6, 0xffffff);
uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0xffffff);
@@ -19,7 +19,7 @@ Interp-η
uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
- uint32_t x80 = (x79 & Const 16777029);
+ uint32_t x80 = (x79 & 0xffff45);
uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
uint32_t x84 = (x79 & 0xffffff);
uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
diff --git a/src/Specific/solinas32_2e383m187_17limbs/feadd.c b/src/Specific/solinas32_2e383m187_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m187_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e383m187_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m187_17limbs/fesub.c b/src/Specific/solinas32_2e383m187_17limbs/fesub.c
new file mode 100644
index 000000000..b45af98fd
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((Const 16776842 + x5) - x37);
+ out[1] = ((0xfffffe + x7) - x39);
+ out[2] = ((0x7ffffe + x9) - x41);
+ out[3] = ((0xfffffe + x11) - x43);
+ out[4] = ((0x7ffffe + x13) - x45);
+ out[5] = ((0xfffffe + x15) - x47);
+ out[6] = ((0x7ffffe + x17) - x49);
+ out[7] = ((0xfffffe + x19) - x51);
+ out[8] = ((0x7ffffe + x21) - x53);
+ out[9] = ((0xfffffe + x23) - x55);
+ out[10] = ((0x7ffffe + x25) - x57);
+ out[11] = ((0xfffffe + x27) - x59);
+ out[12] = ((0x7ffffe + x29) - x61);
+ out[13] = ((0xfffffe + x31) - x63);
+ out[14] = ((0x7ffffe + x33) - x65);
+ out[15] = ((0xfffffe + x35) - x67);
+ out[16] = ((0x7ffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m187_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e383m187_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..cd80e6afe
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0x7ffffe + x34) - x66), ((0xfffffe + x35) - x67), ((0x7ffffe + x33) - x65), ((0xfffffe + x31) - x63), ((0x7ffffe + x29) - x61), ((0xfffffe + x27) - x59), ((0x7ffffe + x25) - x57), ((0xfffffe + x23) - x55), ((0x7ffffe + x21) - x53), ((0xfffffe + x19) - x51), ((0x7ffffe + x17) - x49), ((0xfffffe + x15) - x47), ((0x7ffffe + x13) - x45), ((0xfffffe + x11) - x43), ((0x7ffffe + x9) - x41), ((0xfffffe + x7) - x39), ((Const 16776842 + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m187_17limbs/freeze.c b/src/Specific/solinas32_2e383m187_17limbs/freeze.c
new file mode 100644
index 000000000..fdf34ac14
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388421);
+ { uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x4, 0x7fffff);
+ { 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 x6, 0x3fffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7fffff);
+ { 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 x10, 0x3fffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7fffff);
+ { 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 x14, 0x3fffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x7fffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x3fffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x7fffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x3fffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7fffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3fffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7fffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3fffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7fffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & Const 8388421);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0x7fffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0x3fffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0x7fffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0x3fffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0x7fffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0x3fffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0x7fffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0x3fffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0x7fffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0x3fffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0x7fffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0x3fffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0x7fffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0x3fffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0x7fffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0x3fffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m187_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e383m187_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..0f580b32e
--- /dev/null
+++ b/src/Specific/solinas32_2e383m187_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388421);
+ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x4, 0x7fffff);
+ 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 x6, 0x3fffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7fffff);
+ 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 x10, 0x3fffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7fffff);
+ 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 x14, 0x3fffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x7fffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x3fffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x7fffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x3fffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7fffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3fffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7fffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3fffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7fffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & Const 8388421);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0x7fffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0x3fffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0x7fffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0x3fffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0x7fffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0x3fffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0x7fffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0x3fffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0x7fffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0x3fffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0x7fffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0x3fffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0x7fffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0x3fffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0x7fffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0x3fffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_15limbs/feadd.c b/src/Specific/solinas32_2e383m31_15limbs/feadd.c
new file mode 100644
index 000000000..72a59425b
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/feadd.c
@@ -0,0 +1,48 @@
+static void feadd(uint32_t out[15], const uint32_t in1[15], const uint32_t in2[15]) {
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x58 = in2[14];
+ { const uint32_t x59 = in2[13];
+ { const uint32_t x57 = in2[12];
+ { const uint32_t x55 = in2[11];
+ { const uint32_t x53 = in2[10];
+ { const uint32_t x51 = in2[9];
+ { const uint32_t x49 = in2[8];
+ { const uint32_t x47 = in2[7];
+ { const uint32_t x45 = in2[6];
+ { const uint32_t x43 = in2[5];
+ { const uint32_t x41 = in2[4];
+ { const uint32_t x39 = in2[3];
+ { const uint32_t x37 = in2[2];
+ { const uint32_t x35 = in2[1];
+ { const uint32_t x33 = in2[0];
+ out[0] = (x5 + x33);
+ out[1] = (x7 + x35);
+ out[2] = (x9 + x37);
+ out[3] = (x11 + x39);
+ out[4] = (x13 + x41);
+ out[5] = (x15 + x43);
+ out[6] = (x17 + x45);
+ out[7] = (x19 + x47);
+ out[8] = (x21 + x49);
+ out[9] = (x23 + x51);
+ out[10] = (x25 + x53);
+ out[11] = (x27 + x55);
+ out[12] = (x29 + x57);
+ out[13] = (x31 + x59);
+ out[14] = (x30 + x58);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_15limbs/feaddDisplay.log b/src/Specific/solinas32_2e383m31_15limbs/feaddDisplay.log
new file mode 100644
index 000000000..08d611628
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x30, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x58, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33))%core,
+ ((x30 + x58), (x31 + x59), (x29 + x57), (x27 + x55), (x25 + x53), (x23 + x51), (x21 + x49), (x19 + x47), (x17 + x45), (x15 + x43), (x13 + x41), (x11 + x39), (x9 + x37), (x7 + x35), (x5 + x33)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_15limbs/fesquare.c b/src/Specific/solinas32_2e383m31_15limbs/fesquare.c
new file mode 100644
index 000000000..1ab005221
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/fesquare.c
@@ -0,0 +1,98 @@
+static void fesquare(uint32_t out[15], const uint32_t in1[15]) {
+ { const uint32_t x27 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x29 = (((uint64_t)x2 * x27) + (((uint64_t)x4 * x28) + ((0x2 * ((uint64_t)x6 * x26)) + (((uint64_t)x8 * x24) + ((0x2 * ((uint64_t)x10 * x22)) + (((uint64_t)x12 * x20) + ((0x2 * ((uint64_t)x14 * x18)) + (((uint64_t)x16 * x16) + ((0x2 * ((uint64_t)x18 * x14)) + (((uint64_t)x20 * x12) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + ((0x2 * ((uint64_t)x26 * x6)) + (((uint64_t)x28 * x4) + ((uint64_t)x27 * x2)))))))))))))));
+ { uint64_t x30 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x1f * (0x2 * ((uint64_t)x27 * x27))));
+ { uint64_t x31 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + ((0x2 * ((uint64_t)x10 * x18)) + (((uint64_t)x12 * x16) + ((0x2 * ((uint64_t)x14 * x14)) + (((uint64_t)x16 * x12) + ((0x2 * ((uint64_t)x18 * x10)) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x1f * (((uint64_t)x28 * x27) + ((uint64_t)x27 * x28))));
+ { uint64_t x32 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((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)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x1f * ((0x2 * ((uint64_t)x26 * x27)) + (((uint64_t)x28 * x28) + (0x2 * ((uint64_t)x27 * x26))))));
+ { uint64_t x33 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + ((0x2 * ((uint64_t)x6 * x18)) + (((uint64_t)x8 * x16) + ((0x2 * ((uint64_t)x10 * x14)) + (((uint64_t)x12 * x12) + ((0x2 * ((uint64_t)x14 * x10)) + (((uint64_t)x16 * x8) + ((0x2 * ((uint64_t)x18 * x6)) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x1f * (((uint64_t)x24 * x27) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((uint64_t)x27 * x24))))));
+ { uint64_t x34 = ((((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)))))))))) + (0x1f * ((0x2 * ((uint64_t)x22 * x27)) + (((uint64_t)x24 * x28) + ((0x2 * ((uint64_t)x26 * x26)) + (((uint64_t)x28 * x24) + (0x2 * ((uint64_t)x27 * x22))))))));
+ { uint64_t x35 = ((((uint64_t)x2 * x18) + (((uint64_t)x4 * x16) + ((0x2 * ((uint64_t)x6 * x14)) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + ((0x2 * ((uint64_t)x14 * x6)) + (((uint64_t)x16 * x4) + ((uint64_t)x18 * x2))))))))) + (0x1f * (((uint64_t)x20 * x27) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + ((uint64_t)x27 * x20))))))));
+ { uint64_t x36 = ((((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)))))))) + (0x1f * ((0x2 * ((uint64_t)x18 * x27)) + (((uint64_t)x20 * x28) + ((0x2 * ((uint64_t)x22 * x26)) + (((uint64_t)x24 * x24) + ((0x2 * ((uint64_t)x26 * x22)) + (((uint64_t)x28 * x20) + (0x2 * ((uint64_t)x27 * x18))))))))));
+ { uint64_t x37 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x1f * (((uint64_t)x16 * x27) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((uint64_t)x27 * x16))))))))));
+ { uint64_t x38 = ((((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)))))) + (0x1f * ((0x2 * ((uint64_t)x14 * x27)) + (((uint64_t)x16 * x28) + ((0x2 * ((uint64_t)x18 * x26)) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + ((0x2 * ((uint64_t)x26 * x18)) + (((uint64_t)x28 * x16) + (0x2 * ((uint64_t)x27 * x14))))))))))));
+ { uint64_t x39 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + ((0x2 * ((uint64_t)x6 * x6)) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x1f * (((uint64_t)x12 * x27) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((uint64_t)x27 * x12))))))))))));
+ { uint64_t x40 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x1f * ((0x2 * ((uint64_t)x10 * x27)) + (((uint64_t)x12 * x28) + ((0x2 * ((uint64_t)x14 * x26)) + (((uint64_t)x16 * x24) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + (((uint64_t)x24 * x16) + ((0x2 * ((uint64_t)x26 * x14)) + (((uint64_t)x28 * x12) + (0x2 * ((uint64_t)x27 * x10))))))))))))));
+ { uint64_t x41 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x1f * (((uint64_t)x8 * x27) + (((uint64_t)x10 * x28) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + (((uint64_t)x16 * x22) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + (((uint64_t)x22 * x16) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + (((uint64_t)x28 * x10) + ((uint64_t)x27 * x8))))))))))))));
+ { uint64_t x42 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1f * ((0x2 * ((uint64_t)x6 * x27)) + (((uint64_t)x8 * x28) + ((0x2 * ((uint64_t)x10 * x26)) + (((uint64_t)x12 * x24) + ((0x2 * ((uint64_t)x14 * x22)) + (((uint64_t)x16 * x20) + ((0x2 * ((uint64_t)x18 * x18)) + (((uint64_t)x20 * x16) + ((0x2 * ((uint64_t)x22 * x14)) + (((uint64_t)x24 * x12) + ((0x2 * ((uint64_t)x26 * x10)) + (((uint64_t)x28 * x8) + (0x2 * ((uint64_t)x27 * x6))))))))))))))));
+ { ℤ x43 = (((uint64_t)x2 * x2) +ℤ (0x1f *ℤ ((0x2 * ((uint64_t)x4 * x27)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + (0x2 * ((uint64_t)x27 * x4)))))))))))))))));
+ { uint64_t x44 = (x43 >> 0x1a);
+ { uint32_t x45 = (x43 & 0x3ffffff);
+ { uint64_t x46 = (x44 + x42);
+ { uint64_t x47 = (x46 >> 0x1a);
+ { uint32_t x48 = ((uint32_t)x46 & 0x3ffffff);
+ { uint64_t x49 = (x47 + x41);
+ { uint64_t x50 = (x49 >> 0x19);
+ { uint32_t x51 = ((uint32_t)x49 & 0x1ffffff);
+ { uint64_t x52 = (x50 + x40);
+ { uint64_t x53 = (x52 >> 0x1a);
+ { uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ { uint64_t x55 = (x53 + x39);
+ { uint64_t x56 = (x55 >> 0x19);
+ { uint32_t x57 = ((uint32_t)x55 & 0x1ffffff);
+ { uint64_t x58 = (x56 + x38);
+ { uint64_t x59 = (x58 >> 0x1a);
+ { uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ { uint64_t x61 = (x59 + x37);
+ { uint64_t x62 = (x61 >> 0x19);
+ { uint32_t x63 = ((uint32_t)x61 & 0x1ffffff);
+ { uint64_t x64 = (x62 + x36);
+ { uint64_t x65 = (x64 >> 0x1a);
+ { uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ { uint64_t x67 = (x65 + x35);
+ { uint64_t x68 = (x67 >> 0x19);
+ { uint32_t x69 = ((uint32_t)x67 & 0x1ffffff);
+ { uint64_t x70 = (x68 + x34);
+ { uint64_t x71 = (x70 >> 0x1a);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ { uint64_t x73 = (x71 + x33);
+ { uint64_t x74 = (x73 >> 0x19);
+ { uint32_t x75 = ((uint32_t)x73 & 0x1ffffff);
+ { uint64_t x76 = (x74 + x32);
+ { uint64_t x77 = (x76 >> 0x1a);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ { uint64_t x79 = (x77 + x31);
+ { uint64_t x80 = (x79 >> 0x19);
+ { uint32_t x81 = ((uint32_t)x79 & 0x1ffffff);
+ { uint64_t x82 = (x80 + x30);
+ { uint64_t x83 = (x82 >> 0x1a);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ { uint64_t x85 = (x83 + x29);
+ { uint64_t x86 = (x85 >> 0x19);
+ { uint32_t x87 = ((uint32_t)x85 & 0x1ffffff);
+ { uint64_t x88 = (x45 + (0x1f * x86));
+ { uint32_t x89 = (uint32_t) (x88 >> 0x1a);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ { uint32_t x91 = (x89 + x48);
+ { uint32_t x92 = (x91 >> 0x1a);
+ { uint32_t x93 = (x91 & 0x3ffffff);
+ out[0] = x90;
+ out[1] = x93;
+ out[2] = (x92 + x51);
+ out[3] = x54;
+ out[4] = x57;
+ out[5] = x60;
+ out[6] = x63;
+ out[7] = x66;
+ out[8] = x69;
+ out[9] = x72;
+ out[10] = x75;
+ out[11] = x78;
+ out[12] = x81;
+ out[13] = x84;
+ out[14] = x87;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_15limbs/fesquareDisplay.log b/src/Specific/solinas32_2e383m31_15limbs/fesquareDisplay.log
new file mode 100644
index 000000000..de4ccee10
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/fesquareDisplay.log
@@ -0,0 +1,72 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x27, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x29 = (((uint64_t)x2 * x27) + (((uint64_t)x4 * x28) + ((0x2 * ((uint64_t)x6 * x26)) + (((uint64_t)x8 * x24) + ((0x2 * ((uint64_t)x10 * x22)) + (((uint64_t)x12 * x20) + ((0x2 * ((uint64_t)x14 * x18)) + (((uint64_t)x16 * x16) + ((0x2 * ((uint64_t)x18 * x14)) + (((uint64_t)x20 * x12) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + ((0x2 * ((uint64_t)x26 * x6)) + (((uint64_t)x28 * x4) + ((uint64_t)x27 * x2)))))))))))))));
+ uint64_t x30 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x1f * (0x2 * ((uint64_t)x27 * x27))));
+ uint64_t x31 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + ((0x2 * ((uint64_t)x6 * x22)) + (((uint64_t)x8 * x20) + ((0x2 * ((uint64_t)x10 * x18)) + (((uint64_t)x12 * x16) + ((0x2 * ((uint64_t)x14 * x14)) + (((uint64_t)x16 * x12) + ((0x2 * ((uint64_t)x18 * x10)) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x1f * (((uint64_t)x28 * x27) + ((uint64_t)x27 * x28))));
+ uint64_t x32 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((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)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x1f * ((0x2 * ((uint64_t)x26 * x27)) + (((uint64_t)x28 * x28) + (0x2 * ((uint64_t)x27 * x26))))));
+ uint64_t x33 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + ((0x2 * ((uint64_t)x6 * x18)) + (((uint64_t)x8 * x16) + ((0x2 * ((uint64_t)x10 * x14)) + (((uint64_t)x12 * x12) + ((0x2 * ((uint64_t)x14 * x10)) + (((uint64_t)x16 * x8) + ((0x2 * ((uint64_t)x18 * x6)) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x1f * (((uint64_t)x24 * x27) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((uint64_t)x27 * x24))))));
+ uint64_t x34 = ((((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)))))))))) + (0x1f * ((0x2 * ((uint64_t)x22 * x27)) + (((uint64_t)x24 * x28) + ((0x2 * ((uint64_t)x26 * x26)) + (((uint64_t)x28 * x24) + (0x2 * ((uint64_t)x27 * x22))))))));
+ uint64_t x35 = ((((uint64_t)x2 * x18) + (((uint64_t)x4 * x16) + ((0x2 * ((uint64_t)x6 * x14)) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + ((0x2 * ((uint64_t)x14 * x6)) + (((uint64_t)x16 * x4) + ((uint64_t)x18 * x2))))))))) + (0x1f * (((uint64_t)x20 * x27) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + ((uint64_t)x27 * x20))))))));
+ uint64_t x36 = ((((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)))))))) + (0x1f * ((0x2 * ((uint64_t)x18 * x27)) + (((uint64_t)x20 * x28) + ((0x2 * ((uint64_t)x22 * x26)) + (((uint64_t)x24 * x24) + ((0x2 * ((uint64_t)x26 * x22)) + (((uint64_t)x28 * x20) + (0x2 * ((uint64_t)x27 * x18))))))))));
+ uint64_t x37 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x1f * (((uint64_t)x16 * x27) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((uint64_t)x27 * x16))))))))));
+ uint64_t x38 = ((((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)))))) + (0x1f * ((0x2 * ((uint64_t)x14 * x27)) + (((uint64_t)x16 * x28) + ((0x2 * ((uint64_t)x18 * x26)) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + ((0x2 * ((uint64_t)x26 * x18)) + (((uint64_t)x28 * x16) + (0x2 * ((uint64_t)x27 * x14))))))))))));
+ uint64_t x39 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + ((0x2 * ((uint64_t)x6 * x6)) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x1f * (((uint64_t)x12 * x27) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((uint64_t)x27 * x12))))))))))));
+ uint64_t x40 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x1f * ((0x2 * ((uint64_t)x10 * x27)) + (((uint64_t)x12 * x28) + ((0x2 * ((uint64_t)x14 * x26)) + (((uint64_t)x16 * x24) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + (((uint64_t)x24 * x16) + ((0x2 * ((uint64_t)x26 * x14)) + (((uint64_t)x28 * x12) + (0x2 * ((uint64_t)x27 * x10))))))))))))));
+ uint64_t x41 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x1f * (((uint64_t)x8 * x27) + (((uint64_t)x10 * x28) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + (((uint64_t)x16 * x22) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + (((uint64_t)x22 * x16) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + (((uint64_t)x28 * x10) + ((uint64_t)x27 * x8))))))))))))));
+ uint64_t x42 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1f * ((0x2 * ((uint64_t)x6 * x27)) + (((uint64_t)x8 * x28) + ((0x2 * ((uint64_t)x10 * x26)) + (((uint64_t)x12 * x24) + ((0x2 * ((uint64_t)x14 * x22)) + (((uint64_t)x16 * x20) + ((0x2 * ((uint64_t)x18 * x18)) + (((uint64_t)x20 * x16) + ((0x2 * ((uint64_t)x22 * x14)) + (((uint64_t)x24 * x12) + ((0x2 * ((uint64_t)x26 * x10)) + (((uint64_t)x28 * x8) + (0x2 * ((uint64_t)x27 * x6))))))))))))))));
+ ℤ x43 = (((uint64_t)x2 * x2) +ℤ (0x1f *ℤ ((0x2 * ((uint64_t)x4 * x27)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + (0x2 * ((uint64_t)x27 * x4)))))))))))))))));
+ uint64_t x44 = (x43 >> 0x1a);
+ uint32_t x45 = (x43 & 0x3ffffff);
+ uint64_t x46 = (x44 + x42);
+ uint64_t x47 = (x46 >> 0x1a);
+ uint32_t x48 = ((uint32_t)x46 & 0x3ffffff);
+ uint64_t x49 = (x47 + x41);
+ uint64_t x50 = (x49 >> 0x19);
+ uint32_t x51 = ((uint32_t)x49 & 0x1ffffff);
+ uint64_t x52 = (x50 + x40);
+ uint64_t x53 = (x52 >> 0x1a);
+ uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ uint64_t x55 = (x53 + x39);
+ uint64_t x56 = (x55 >> 0x19);
+ uint32_t x57 = ((uint32_t)x55 & 0x1ffffff);
+ uint64_t x58 = (x56 + x38);
+ uint64_t x59 = (x58 >> 0x1a);
+ uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ uint64_t x61 = (x59 + x37);
+ uint64_t x62 = (x61 >> 0x19);
+ uint32_t x63 = ((uint32_t)x61 & 0x1ffffff);
+ uint64_t x64 = (x62 + x36);
+ uint64_t x65 = (x64 >> 0x1a);
+ uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ uint64_t x67 = (x65 + x35);
+ uint64_t x68 = (x67 >> 0x19);
+ uint32_t x69 = ((uint32_t)x67 & 0x1ffffff);
+ uint64_t x70 = (x68 + x34);
+ uint64_t x71 = (x70 >> 0x1a);
+ uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ uint64_t x73 = (x71 + x33);
+ uint64_t x74 = (x73 >> 0x19);
+ uint32_t x75 = ((uint32_t)x73 & 0x1ffffff);
+ uint64_t x76 = (x74 + x32);
+ uint64_t x77 = (x76 >> 0x1a);
+ uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ uint64_t x79 = (x77 + x31);
+ uint64_t x80 = (x79 >> 0x19);
+ uint32_t x81 = ((uint32_t)x79 & 0x1ffffff);
+ uint64_t x82 = (x80 + x30);
+ uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ uint64_t x85 = (x83 + x29);
+ uint64_t x86 = (x85 >> 0x19);
+ uint32_t x87 = ((uint32_t)x85 & 0x1ffffff);
+ uint64_t x88 = (x45 + (0x1f * x86));
+ uint32_t x89 = (uint32_t) (x88 >> 0x1a);
+ uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ uint32_t x91 = (x89 + x48);
+ uint32_t x92 = (x91 >> 0x1a);
+ uint32_t x93 = (x91 & 0x3ffffff);
+ return (Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, Return x57, Return x54, (x92 + x51), Return x93, Return x90))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_15limbs/fesub.c b/src/Specific/solinas32_2e383m31_15limbs/fesub.c
new file mode 100644
index 000000000..57ed399ad
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/fesub.c
@@ -0,0 +1,48 @@
+static void fesub(uint32_t out[15], const uint32_t in1[15], const uint32_t in2[15]) {
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x58 = in2[14];
+ { const uint32_t x59 = in2[13];
+ { const uint32_t x57 = in2[12];
+ { const uint32_t x55 = in2[11];
+ { const uint32_t x53 = in2[10];
+ { const uint32_t x51 = in2[9];
+ { const uint32_t x49 = in2[8];
+ { const uint32_t x47 = in2[7];
+ { const uint32_t x45 = in2[6];
+ { const uint32_t x43 = in2[5];
+ { const uint32_t x41 = in2[4];
+ { const uint32_t x39 = in2[3];
+ { const uint32_t x37 = in2[2];
+ { const uint32_t x35 = in2[1];
+ { const uint32_t x33 = in2[0];
+ out[0] = ((0x7ffffc2 + x5) - x33);
+ out[1] = ((0x7fffffe + x7) - x35);
+ out[2] = ((0x3fffffe + x9) - x37);
+ out[3] = ((0x7fffffe + x11) - x39);
+ out[4] = ((0x3fffffe + x13) - x41);
+ out[5] = ((0x7fffffe + x15) - x43);
+ out[6] = ((0x3fffffe + x17) - x45);
+ out[7] = ((0x7fffffe + x19) - x47);
+ out[8] = ((0x3fffffe + x21) - x49);
+ out[9] = ((0x7fffffe + x23) - x51);
+ out[10] = ((0x3fffffe + x25) - x53);
+ out[11] = ((0x7fffffe + x27) - x55);
+ out[12] = ((0x3fffffe + x29) - x57);
+ out[13] = ((0x7fffffe + x31) - x59);
+ out[14] = ((0x3fffffe + x30) - x58);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_15limbs/fesubDisplay.log b/src/Specific/solinas32_2e383m31_15limbs/fesubDisplay.log
new file mode 100644
index 000000000..b23dd1323
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x30, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x58, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33))%core,
+ (((0x3fffffe + x30) - x58), ((0x7fffffe + x31) - x59), ((0x3fffffe + x29) - x57), ((0x7fffffe + x27) - x55), ((0x3fffffe + x25) - x53), ((0x7fffffe + x23) - x51), ((0x3fffffe + x21) - x49), ((0x7fffffe + x19) - x47), ((0x3fffffe + x17) - x45), ((0x7fffffe + x15) - x43), ((0x3fffffe + x13) - x41), ((0x7fffffe + x11) - x39), ((0x3fffffe + x9) - x37), ((0x7fffffe + x7) - x35), ((0x7ffffc2 + x5) - x33)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_15limbs/freeze.c b/src/Specific/solinas32_2e383m31_15limbs/freeze.c
new file mode 100644
index 000000000..fe340eaaa
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/freeze.c
@@ -0,0 +1,79 @@
+static void freeze(uint32_t out[15], const uint32_t in1[15]) {
+ { const uint32_t x27 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, 0x3ffffe1);
+ { 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 x4, 0x3ffffff);
+ { 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 x6, 0x1ffffff);
+ { 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 x8, 0x3ffffff);
+ { 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 x10, 0x1ffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x12, 0x3ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x14, 0x1ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x16, 0x3ffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x18, 0x1ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x20, 0x3ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x22, 0x1ffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x24, 0x3ffffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x26, 0x1ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x28, 0x3ffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x27, 0x1ffffff);
+ { uint32_t x74 = cmovznz32(x73, 0x0, 0xffffffff);
+ { uint32_t x75 = (x74 & 0x3ffffe1);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x30, Return x75);
+ { uint32_t x79 = (x74 & 0x3ffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x33, Return x79);
+ { uint32_t x83 = (x74 & 0x1ffffff);
+ { uint32_t x85, uint8_t x86 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x36, Return x83);
+ { uint32_t x87 = (x74 & 0x3ffffff);
+ { uint32_t x89, uint8_t x90 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x39, Return x87);
+ { uint32_t x91 = (x74 & 0x1ffffff);
+ { uint32_t x93, uint8_t x94 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x42, Return x91);
+ { uint32_t x95 = (x74 & 0x3ffffff);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x45, Return x95);
+ { uint32_t x99 = (x74 & 0x1ffffff);
+ { uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x48, Return x99);
+ { uint32_t x103 = (x74 & 0x3ffffff);
+ { uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x51, Return x103);
+ { uint32_t x107 = (x74 & 0x1ffffff);
+ { uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x54, Return x107);
+ { uint32_t x111 = (x74 & 0x3ffffff);
+ { uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x57, Return x111);
+ { uint32_t x115 = (x74 & 0x1ffffff);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x60, Return x115);
+ { uint32_t x119 = (x74 & 0x3ffffff);
+ { uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x63, Return x119);
+ { uint32_t x123 = (x74 & 0x1ffffff);
+ { uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x66, Return x123);
+ { uint32_t x127 = (x74 & 0x3ffffff);
+ { uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x69, Return x127);
+ { uint32_t x131 = (x74 & 0x1ffffff);
+ { uint32_t x133, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x72, Return x131);
+ out[0] = x77;
+ out[1] = x81;
+ out[2] = x85;
+ out[3] = x89;
+ out[4] = x93;
+ out[5] = x97;
+ out[6] = x101;
+ out[7] = x105;
+ out[8] = x109;
+ out[9] = x113;
+ out[10] = x117;
+ out[11] = x121;
+ out[12] = x125;
+ out[13] = x129;
+ out[14] = x133;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_15limbs/freezeDisplay.log b/src/Specific/solinas32_2e383m31_15limbs/freezeDisplay.log
new file mode 100644
index 000000000..10314baa1
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_15limbs/freezeDisplay.log
@@ -0,0 +1,53 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x27, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 0x3ffffe1);
+ 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 x4, 0x3ffffff);
+ 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 x6, 0x1ffffff);
+ 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 x8, 0x3ffffff);
+ 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 x10, 0x1ffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x12, 0x3ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x14, 0x1ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x16, 0x3ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x18, 0x1ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x20, 0x3ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x22, 0x1ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x24, 0x3ffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x26, 0x1ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x28, 0x3ffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x27, 0x1ffffff);
+ uint32_t x74 = cmovznz32(x73, 0x0, 0xffffffff);
+ uint32_t x75 = (x74 & 0x3ffffe1);
+ uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x30, Return x75);
+ uint32_t x79 = (x74 & 0x3ffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x33, Return x79);
+ uint32_t x83 = (x74 & 0x1ffffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x36, Return x83);
+ uint32_t x87 = (x74 & 0x3ffffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x39, Return x87);
+ uint32_t x91 = (x74 & 0x1ffffff);
+ uint32_t x93, uint8_t x94 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x42, Return x91);
+ uint32_t x95 = (x74 & 0x3ffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x45, Return x95);
+ uint32_t x99 = (x74 & 0x1ffffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x48, Return x99);
+ uint32_t x103 = (x74 & 0x3ffffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x51, Return x103);
+ uint32_t x107 = (x74 & 0x1ffffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x54, Return x107);
+ uint32_t x111 = (x74 & 0x3ffffff);
+ uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x57, Return x111);
+ uint32_t x115 = (x74 & 0x1ffffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x60, Return x115);
+ uint32_t x119 = (x74 & 0x3ffffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x63, Return x119);
+ uint32_t x123 = (x74 & 0x1ffffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x66, Return x123);
+ uint32_t x127 = (x74 & 0x3ffffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x69, Return x127);
+ uint32_t x131 = (x74 & 0x1ffffff);
+ uint32_t x133, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x72, Return x131);
+ (Return x133, Return x129, Return x125, Return x121, Return x117, Return x113, Return x109, Return x105, Return x101, Return x97, Return x93, Return x89, Return x85, Return x81, Return x77))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_16limbs/feadd.c b/src/Specific/solinas32_2e383m31_16limbs/feadd.c
new file mode 100644
index 000000000..18b150e21
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/feadd.c
@@ -0,0 +1,51 @@
+static void feadd(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = (x5 + x35);
+ out[1] = (x7 + x37);
+ out[2] = (x9 + x39);
+ out[3] = (x11 + x41);
+ out[4] = (x13 + x43);
+ out[5] = (x15 + x45);
+ out[6] = (x17 + x47);
+ out[7] = (x19 + x49);
+ out[8] = (x21 + x51);
+ out[9] = (x23 + x53);
+ out[10] = (x25 + x55);
+ out[11] = (x27 + x57);
+ out[12] = (x29 + x59);
+ out[13] = (x31 + x61);
+ out[14] = (x33 + x63);
+ out[15] = (x32 + x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_16limbs/feaddDisplay.log b/src/Specific/solinas32_2e383m31_16limbs/feaddDisplay.log
new file mode 100644
index 000000000..130c31964
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ ((x32 + x62), (x33 + x63), (x31 + x61), (x29 + x59), (x27 + x57), (x25 + x55), (x23 + x53), (x21 + x51), (x19 + x49), (x17 + x47), (x15 + x45), (x13 + x43), (x11 + x41), (x9 + x39), (x7 + x37), (x5 + x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_16limbs/fesquare.c b/src/Specific/solinas32_2e383m31_16limbs/fesquare.c
new file mode 100644
index 000000000..dc88d3217
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/fesquare.c
@@ -0,0 +1,104 @@
+static void fesquare(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x31 = (((uint64_t)x2 * x29) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x29 * x2))))))))))))))));
+ { uint64_t x32 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x1f * (0x2 * ((uint64_t)x29 * x29))));
+ { uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((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)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x1f * ((0x2 * ((uint64_t)x30 * x29)) + (0x2 * ((uint64_t)x29 * x30)))));
+ { uint64_t x34 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((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)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x1f * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ { uint64_t x35 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((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)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x1f * ((0x2 * ((uint64_t)x26 * x29)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (0x2 * ((uint64_t)x29 * x26)))))));
+ { uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x1f * ((0x2 * ((uint64_t)x24 * x29)) + ((0x2 * ((uint64_t)x26 * x30)) + ((0x2 * ((uint64_t)x28 * x28)) + ((0x2 * ((uint64_t)x30 * x26)) + (0x2 * ((uint64_t)x29 * x24))))))));
+ { uint64_t x37 = ((((uint64_t)x2 * x20) + (((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)x20 * x2)))))))))) + (0x1f * ((0x2 * ((uint64_t)x22 * x29)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ { uint64_t x38 = ((((uint64_t)x2 * x18) + (((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)x18 * x2))))))))) + (0x1f * ((0x2 * ((uint64_t)x20 * x29)) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + (0x2 * ((uint64_t)x29 * x20))))))))));
+ { uint64_t x39 = ((((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)))))))) + (0x1f * ((0x2 * ((uint64_t)x18 * x29)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + (0x2 * ((uint64_t)x29 * x18)))))))))));
+ { uint64_t x40 = ((((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))))))) + (0x1f * ((0x2 * ((uint64_t)x16 * x29)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ { uint64_t x41 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x1f * ((0x2 * ((uint64_t)x14 * x29)) + ((0x2 * ((uint64_t)x16 * x30)) + ((0x2 * ((uint64_t)x18 * x28)) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + ((0x2 * ((uint64_t)x28 * x18)) + ((0x2 * ((uint64_t)x30 * x16)) + (0x2 * ((uint64_t)x29 * x14)))))))))))));
+ { uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x1f * ((0x2 * ((uint64_t)x12 * x29)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + (0x2 * ((uint64_t)x29 * x12))))))))))))));
+ { uint64_t x43 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x1f * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ { uint64_t x44 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x1f * ((0x2 * ((uint64_t)x8 * x29)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (0x2 * ((uint64_t)x29 * x8))))))))))))))));
+ { uint64_t x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1f * ((0x2 * ((uint64_t)x6 * x29)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + (0x2 * ((uint64_t)x29 * x6)))))))))))))))));
+ { uint64_t x46 = (((uint64_t)x2 * x2) + (0x1f * ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ { uint64_t x47 = (x46 >> 0x18);
+ { uint32_t x48 = ((uint32_t)x46 & 0xffffff);
+ { uint64_t x49 = (x47 + x45);
+ { uint64_t x50 = (x49 >> 0x18);
+ { uint32_t x51 = ((uint32_t)x49 & 0xffffff);
+ { uint64_t x52 = (x50 + x44);
+ { uint64_t x53 = (x52 >> 0x18);
+ { uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ { uint64_t x55 = (x53 + x43);
+ { uint64_t x56 = (x55 >> 0x18);
+ { uint32_t x57 = ((uint32_t)x55 & 0xffffff);
+ { uint64_t x58 = (x56 + x42);
+ { uint64_t x59 = (x58 >> 0x18);
+ { uint32_t x60 = ((uint32_t)x58 & 0xffffff);
+ { uint64_t x61 = (x59 + x41);
+ { uint64_t x62 = (x61 >> 0x18);
+ { uint32_t x63 = ((uint32_t)x61 & 0xffffff);
+ { uint64_t x64 = (x62 + x40);
+ { uint64_t x65 = (x64 >> 0x18);
+ { uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ { uint64_t x67 = (x65 + x39);
+ { uint64_t x68 = (x67 >> 0x18);
+ { uint32_t x69 = ((uint32_t)x67 & 0xffffff);
+ { uint64_t x70 = (x68 + x38);
+ { uint64_t x71 = (x70 >> 0x18);
+ { uint32_t x72 = ((uint32_t)x70 & 0xffffff);
+ { uint64_t x73 = (x71 + x37);
+ { uint64_t x74 = (x73 >> 0x18);
+ { uint32_t x75 = ((uint32_t)x73 & 0xffffff);
+ { uint64_t x76 = (x74 + x36);
+ { uint64_t x77 = (x76 >> 0x18);
+ { uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ { uint64_t x79 = (x77 + x35);
+ { uint64_t x80 = (x79 >> 0x18);
+ { uint32_t x81 = ((uint32_t)x79 & 0xffffff);
+ { uint64_t x82 = (x80 + x34);
+ { uint64_t x83 = (x82 >> 0x18);
+ { uint32_t x84 = ((uint32_t)x82 & 0xffffff);
+ { uint64_t x85 = (x83 + x33);
+ { uint64_t x86 = (x85 >> 0x18);
+ { uint32_t x87 = ((uint32_t)x85 & 0xffffff);
+ { uint64_t x88 = (x86 + x32);
+ { uint64_t x89 = (x88 >> 0x18);
+ { uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ { uint64_t x91 = (x89 + x31);
+ { uint64_t x92 = (x91 >> 0x17);
+ { uint32_t x93 = ((uint32_t)x91 & 0x7fffff);
+ { uint64_t x94 = (x48 + (0x1f * x92));
+ { uint32_t x95 = (uint32_t) (x94 >> 0x18);
+ { uint32_t x96 = ((uint32_t)x94 & 0xffffff);
+ { uint32_t x97 = (x95 + x51);
+ { uint32_t x98 = (x97 >> 0x18);
+ { uint32_t x99 = (x97 & 0xffffff);
+ out[0] = x96;
+ out[1] = x99;
+ out[2] = (x98 + x54);
+ out[3] = x57;
+ out[4] = x60;
+ out[5] = x63;
+ out[6] = x66;
+ out[7] = x69;
+ out[8] = x72;
+ out[9] = x75;
+ out[10] = x78;
+ out[11] = x81;
+ out[12] = x84;
+ out[13] = x87;
+ out[14] = x90;
+ out[15] = x93;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_16limbs/fesquareDisplay.log b/src/Specific/solinas32_2e383m31_16limbs/fesquareDisplay.log
new file mode 100644
index 000000000..8fe77b9a4
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/fesquareDisplay.log
@@ -0,0 +1,76 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x31 = (((uint64_t)x2 * x29) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x29 * x2))))))))))))))));
+ uint64_t x32 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x1f * (0x2 * ((uint64_t)x29 * x29))));
+ uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((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)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x1f * ((0x2 * ((uint64_t)x30 * x29)) + (0x2 * ((uint64_t)x29 * x30)))));
+ uint64_t x34 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((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)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x1f * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ uint64_t x35 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((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)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x1f * ((0x2 * ((uint64_t)x26 * x29)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (0x2 * ((uint64_t)x29 * x26)))))));
+ uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x1f * ((0x2 * ((uint64_t)x24 * x29)) + ((0x2 * ((uint64_t)x26 * x30)) + ((0x2 * ((uint64_t)x28 * x28)) + ((0x2 * ((uint64_t)x30 * x26)) + (0x2 * ((uint64_t)x29 * x24))))))));
+ uint64_t x37 = ((((uint64_t)x2 * x20) + (((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)x20 * x2)))))))))) + (0x1f * ((0x2 * ((uint64_t)x22 * x29)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ uint64_t x38 = ((((uint64_t)x2 * x18) + (((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)x18 * x2))))))))) + (0x1f * ((0x2 * ((uint64_t)x20 * x29)) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + (0x2 * ((uint64_t)x29 * x20))))))))));
+ uint64_t x39 = ((((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)))))))) + (0x1f * ((0x2 * ((uint64_t)x18 * x29)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + (0x2 * ((uint64_t)x29 * x18)))))))))));
+ uint64_t x40 = ((((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))))))) + (0x1f * ((0x2 * ((uint64_t)x16 * x29)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ uint64_t x41 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x1f * ((0x2 * ((uint64_t)x14 * x29)) + ((0x2 * ((uint64_t)x16 * x30)) + ((0x2 * ((uint64_t)x18 * x28)) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + ((0x2 * ((uint64_t)x28 * x18)) + ((0x2 * ((uint64_t)x30 * x16)) + (0x2 * ((uint64_t)x29 * x14)))))))))))));
+ uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x1f * ((0x2 * ((uint64_t)x12 * x29)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + (0x2 * ((uint64_t)x29 * x12))))))))))))));
+ uint64_t x43 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x1f * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ uint64_t x44 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x1f * ((0x2 * ((uint64_t)x8 * x29)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (0x2 * ((uint64_t)x29 * x8))))))))))))))));
+ uint64_t x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1f * ((0x2 * ((uint64_t)x6 * x29)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + (0x2 * ((uint64_t)x29 * x6)))))))))))))))));
+ uint64_t x46 = (((uint64_t)x2 * x2) + (0x1f * ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ uint64_t x47 = (x46 >> 0x18);
+ uint32_t x48 = ((uint32_t)x46 & 0xffffff);
+ uint64_t x49 = (x47 + x45);
+ uint64_t x50 = (x49 >> 0x18);
+ uint32_t x51 = ((uint32_t)x49 & 0xffffff);
+ uint64_t x52 = (x50 + x44);
+ uint64_t x53 = (x52 >> 0x18);
+ uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ uint64_t x55 = (x53 + x43);
+ uint64_t x56 = (x55 >> 0x18);
+ uint32_t x57 = ((uint32_t)x55 & 0xffffff);
+ uint64_t x58 = (x56 + x42);
+ uint64_t x59 = (x58 >> 0x18);
+ uint32_t x60 = ((uint32_t)x58 & 0xffffff);
+ uint64_t x61 = (x59 + x41);
+ uint64_t x62 = (x61 >> 0x18);
+ uint32_t x63 = ((uint32_t)x61 & 0xffffff);
+ uint64_t x64 = (x62 + x40);
+ uint64_t x65 = (x64 >> 0x18);
+ uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ uint64_t x67 = (x65 + x39);
+ uint64_t x68 = (x67 >> 0x18);
+ uint32_t x69 = ((uint32_t)x67 & 0xffffff);
+ uint64_t x70 = (x68 + x38);
+ uint64_t x71 = (x70 >> 0x18);
+ uint32_t x72 = ((uint32_t)x70 & 0xffffff);
+ uint64_t x73 = (x71 + x37);
+ uint64_t x74 = (x73 >> 0x18);
+ uint32_t x75 = ((uint32_t)x73 & 0xffffff);
+ uint64_t x76 = (x74 + x36);
+ uint64_t x77 = (x76 >> 0x18);
+ uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ uint64_t x79 = (x77 + x35);
+ uint64_t x80 = (x79 >> 0x18);
+ uint32_t x81 = ((uint32_t)x79 & 0xffffff);
+ uint64_t x82 = (x80 + x34);
+ uint64_t x83 = (x82 >> 0x18);
+ uint32_t x84 = ((uint32_t)x82 & 0xffffff);
+ uint64_t x85 = (x83 + x33);
+ uint64_t x86 = (x85 >> 0x18);
+ uint32_t x87 = ((uint32_t)x85 & 0xffffff);
+ uint64_t x88 = (x86 + x32);
+ uint64_t x89 = (x88 >> 0x18);
+ uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ uint64_t x91 = (x89 + x31);
+ uint64_t x92 = (x91 >> 0x17);
+ uint32_t x93 = ((uint32_t)x91 & 0x7fffff);
+ uint64_t x94 = (x48 + (0x1f * x92));
+ uint32_t x95 = (uint32_t) (x94 >> 0x18);
+ uint32_t x96 = ((uint32_t)x94 & 0xffffff);
+ uint32_t x97 = (x95 + x51);
+ uint32_t x98 = (x97 >> 0x18);
+ uint32_t x99 = (x97 & 0xffffff);
+ return (Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, Return x57, (x98 + x54), Return x99, Return x96))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_16limbs/fesub.c b/src/Specific/solinas32_2e383m31_16limbs/fesub.c
new file mode 100644
index 000000000..a5bcdb840
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/fesub.c
@@ -0,0 +1,51 @@
+static void fesub(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = ((Const 33554370 + x5) - x35);
+ out[1] = ((0x1fffffe + x7) - x37);
+ out[2] = ((0x1fffffe + x9) - x39);
+ out[3] = ((0x1fffffe + x11) - x41);
+ out[4] = ((0x1fffffe + x13) - x43);
+ out[5] = ((0x1fffffe + x15) - x45);
+ out[6] = ((0x1fffffe + x17) - x47);
+ out[7] = ((0x1fffffe + x19) - x49);
+ out[8] = ((0x1fffffe + x21) - x51);
+ out[9] = ((0x1fffffe + x23) - x53);
+ out[10] = ((0x1fffffe + x25) - x55);
+ out[11] = ((0x1fffffe + x27) - x57);
+ out[12] = ((0x1fffffe + x29) - x59);
+ out[13] = ((0x1fffffe + x31) - x61);
+ out[14] = ((0x1fffffe + x33) - x63);
+ out[15] = ((0xfffffe + x32) - x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_16limbs/fesubDisplay.log b/src/Specific/solinas32_2e383m31_16limbs/fesubDisplay.log
new file mode 100644
index 000000000..dcb1b2bb8
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ (((0xfffffe + x32) - x62), ((0x1fffffe + x33) - x63), ((0x1fffffe + x31) - x61), ((0x1fffffe + x29) - x59), ((0x1fffffe + x27) - x57), ((0x1fffffe + x25) - x55), ((0x1fffffe + x23) - x53), ((0x1fffffe + x21) - x51), ((0x1fffffe + x19) - x49), ((0x1fffffe + x17) - x47), ((0x1fffffe + x15) - x45), ((0x1fffffe + x13) - x43), ((0x1fffffe + x11) - x41), ((0x1fffffe + x9) - x39), ((0x1fffffe + x7) - x37), ((Const 33554370 + x5) - x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m31_16limbs/freeze.c b/src/Specific/solinas32_2e383m31_16limbs/freeze.c
new file mode 100644
index 000000000..89807db42
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/freeze.c
@@ -0,0 +1,84 @@
+static void freeze(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, Const 16777185);
+ { uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
+ { 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 x6, 0xffffff);
+ { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0xffffff);
+ { 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 x10, 0xffffff);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0xffffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0xffffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0xffffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0xffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0xffffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0xffffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0xffffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0xffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0xffffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
+ { uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ { uint32_t x80 = (x79 & Const 16777185);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ { uint32_t x84 = (x79 & 0xffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ { uint32_t x88 = (x79 & 0xffffff);
+ { uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ { uint32_t x92 = (x79 & 0xffffff);
+ { uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ { uint32_t x96 = (x79 & 0xffffff);
+ { uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ { uint32_t x100 = (x79 & 0xffffff);
+ { uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ { uint32_t x104 = (x79 & 0xffffff);
+ { uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ { uint32_t x108 = (x79 & 0xffffff);
+ { uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ { uint32_t x112 = (x79 & 0xffffff);
+ { uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ { uint32_t x116 = (x79 & 0xffffff);
+ { uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ { uint32_t x120 = (x79 & 0xffffff);
+ { uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ { uint32_t x124 = (x79 & 0xffffff);
+ { uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ { uint32_t x128 = (x79 & 0xffffff);
+ { uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ { uint32_t x132 = (x79 & 0xffffff);
+ { uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ { uint32_t x136 = (x79 & 0xffffff);
+ { uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ { uint32_t x140 = (x79 & 0x7fffff);
+ { uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ out[0] = x82;
+ out[1] = x86;
+ out[2] = x90;
+ out[3] = x94;
+ out[4] = x98;
+ out[5] = x102;
+ out[6] = x106;
+ out[7] = x110;
+ out[8] = x114;
+ out[9] = x118;
+ out[10] = x122;
+ out[11] = x126;
+ out[12] = x130;
+ out[13] = x134;
+ out[14] = x138;
+ out[15] = x142;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m31_16limbs/freezeDisplay.log b/src/Specific/solinas32_2e383m31_16limbs/freezeDisplay.log
new file mode 100644
index 000000000..cd592cb23
--- /dev/null
+++ b/src/Specific/solinas32_2e383m31_16limbs/freezeDisplay.log
@@ -0,0 +1,56 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, Const 16777185);
+ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
+ 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 x6, 0xffffff);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0xffffff);
+ 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 x10, 0xffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0xffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0xffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0xffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0xffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0xffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0xffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0xffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0xffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0xffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x7fffff);
+ uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ uint32_t x80 = (x79 & Const 16777185);
+ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ uint32_t x84 = (x79 & 0xffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ uint32_t x88 = (x79 & 0xffffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ uint32_t x92 = (x79 & 0xffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ uint32_t x96 = (x79 & 0xffffff);
+ uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ uint32_t x100 = (x79 & 0xffffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ uint32_t x104 = (x79 & 0xffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ uint32_t x108 = (x79 & 0xffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ uint32_t x112 = (x79 & 0xffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ uint32_t x116 = (x79 & 0xffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ uint32_t x120 = (x79 & 0xffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ uint32_t x124 = (x79 & 0xffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ uint32_t x128 = (x79 & 0xffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ uint32_t x132 = (x79 & 0xffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ uint32_t x136 = (x79 & 0xffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ uint32_t x140 = (x79 & 0x7fffff);
+ uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ (Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102, Return x98, Return x94, Return x90, Return x86, Return x82))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m421_17limbs/feadd.c b/src/Specific/solinas32_2e383m421_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m421_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e383m421_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m421_17limbs/fesub.c b/src/Specific/solinas32_2e383m421_17limbs/fesub.c
new file mode 100644
index 000000000..a279a787d
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((Const 16776374 + x5) - x37);
+ out[1] = ((0xfffffe + x7) - x39);
+ out[2] = ((0x7ffffe + x9) - x41);
+ out[3] = ((0xfffffe + x11) - x43);
+ out[4] = ((0x7ffffe + x13) - x45);
+ out[5] = ((0xfffffe + x15) - x47);
+ out[6] = ((0x7ffffe + x17) - x49);
+ out[7] = ((0xfffffe + x19) - x51);
+ out[8] = ((0x7ffffe + x21) - x53);
+ out[9] = ((0xfffffe + x23) - x55);
+ out[10] = ((0x7ffffe + x25) - x57);
+ out[11] = ((0xfffffe + x27) - x59);
+ out[12] = ((0x7ffffe + x29) - x61);
+ out[13] = ((0xfffffe + x31) - x63);
+ out[14] = ((0x7ffffe + x33) - x65);
+ out[15] = ((0xfffffe + x35) - x67);
+ out[16] = ((0x7ffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m421_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e383m421_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..ac023b535
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0x7ffffe + x34) - x66), ((0xfffffe + x35) - x67), ((0x7ffffe + x33) - x65), ((0xfffffe + x31) - x63), ((0x7ffffe + x29) - x61), ((0xfffffe + x27) - x59), ((0x7ffffe + x25) - x57), ((0xfffffe + x23) - x55), ((0x7ffffe + x21) - x53), ((0xfffffe + x19) - x51), ((0x7ffffe + x17) - x49), ((0xfffffe + x15) - x47), ((0x7ffffe + x13) - x45), ((0xfffffe + x11) - x43), ((0x7ffffe + x9) - x41), ((0xfffffe + x7) - x39), ((Const 16776374 + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m421_17limbs/freeze.c b/src/Specific/solinas32_2e383m421_17limbs/freeze.c
new file mode 100644
index 000000000..a53a2ef2a
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388187);
+ { uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x4, 0x7fffff);
+ { 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 x6, 0x3fffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7fffff);
+ { 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 x10, 0x3fffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7fffff);
+ { 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 x14, 0x3fffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x7fffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x3fffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x7fffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x3fffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7fffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3fffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7fffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3fffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7fffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & Const 8388187);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0x7fffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0x3fffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0x7fffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0x3fffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0x7fffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0x3fffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0x7fffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0x3fffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0x7fffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0x3fffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0x7fffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0x3fffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0x7fffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0x3fffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0x7fffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0x3fffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m421_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e383m421_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..a0a78cceb
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388187);
+ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x4, 0x7fffff);
+ 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 x6, 0x3fffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7fffff);
+ 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 x10, 0x3fffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7fffff);
+ 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 x14, 0x3fffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x7fffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x3fffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x7fffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x3fffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7fffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3fffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7fffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3fffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7fffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & Const 8388187);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0x7fffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0x3fffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0x7fffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0x3fffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0x7fffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0x3fffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0x7fffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0x3fffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0x7fffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0x3fffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0x7fffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0x3fffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0x7fffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0x3fffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0x7fffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0x3fffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m421_18limbs/feadd.c b/src/Specific/solinas32_2e383m421_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m421_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e383m421_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m421_18limbs/fesub.c b/src/Specific/solinas32_2e383m421_18limbs/fesub.c
new file mode 100644
index 000000000..2e8c215ef
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((Const 8387766 + x5) - x39);
+ out[1] = ((0x3ffffe + x7) - x41);
+ out[2] = ((0x3ffffe + x9) - x43);
+ out[3] = ((0x7ffffe + x11) - x45);
+ out[4] = ((0x3ffffe + x13) - x47);
+ out[5] = ((0x3ffffe + x15) - x49);
+ out[6] = ((0x3ffffe + x17) - x51);
+ out[7] = ((0x7ffffe + x19) - x53);
+ out[8] = ((0x3ffffe + x21) - x55);
+ out[9] = ((0x3ffffe + x23) - x57);
+ out[10] = ((0x7ffffe + x25) - x59);
+ out[11] = ((0x3ffffe + x27) - x61);
+ out[12] = ((0x3ffffe + x29) - x63);
+ out[13] = ((0x3ffffe + x31) - x65);
+ out[14] = ((0x7ffffe + x33) - x67);
+ out[15] = ((0x3ffffe + x35) - x69);
+ out[16] = ((0x3ffffe + x37) - x71);
+ out[17] = ((0x3ffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m421_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e383m421_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..8ad9239bf
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0x3ffffe + x36) - x70), ((0x3ffffe + x37) - x71), ((0x3ffffe + x35) - x69), ((0x7ffffe + x33) - x67), ((0x3ffffe + x31) - x65), ((0x3ffffe + x29) - x63), ((0x3ffffe + x27) - x61), ((0x7ffffe + x25) - x59), ((0x3ffffe + x23) - x57), ((0x3ffffe + x21) - x55), ((0x7ffffe + x19) - x53), ((0x3ffffe + x17) - x51), ((0x3ffffe + x15) - x49), ((0x3ffffe + x13) - x47), ((0x7ffffe + x11) - x45), ((0x3ffffe + x9) - x43), ((0x3ffffe + x7) - x41), ((Const 8387766 + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e383m421_18limbs/freeze.c b/src/Specific/solinas32_2e383m421_18limbs/freeze.c
new file mode 100644
index 000000000..2787df5c9
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4193883);
+ { uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x4, 0x1fffff);
+ { uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0x1fffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x3fffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1fffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1fffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1fffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x3fffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x1fffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1fffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x3fffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1fffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1fffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1fffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x3fffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1fffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1fffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x1fffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & Const 4193883);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x1fffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0x1fffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x3fffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x1fffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0x1fffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x1fffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x3fffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0x1fffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0x1fffff);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x3fffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0x1fffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x1fffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x1fffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0x3fffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x1fffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x1fffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0x1fffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e383m421_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e383m421_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..4d3c7eb24
--- /dev/null
+++ b/src/Specific/solinas32_2e383m421_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 4193883);
+ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x4, 0x1fffff);
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0x1fffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x3fffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1fffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1fffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1fffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x3fffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x1fffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1fffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x3fffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1fffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1fffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1fffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x3fffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1fffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1fffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x1fffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & Const 4193883);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x1fffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0x1fffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x3fffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x1fffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0x1fffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x1fffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x3fffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0x1fffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0x1fffff);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x3fffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0x1fffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x1fffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x1fffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0x3fffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x1fffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x1fffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0x1fffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..3850155ff
--- /dev/null
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_18limbs/freezeDisplay.log
@@ -0,0 +1,60 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffff);
+ uint32_t x39, ℤ x40 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) Syntax.TZ) (Return x37, Return x4, 0x3ff);
+ uint32_t x42, ℤ x43 = Op (Syntax.SubWithGetBorrow 21 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x40, Return x6, 0x0);
+ uint32_t x45, ℤ x46 = Op (Syntax.SubWithGetBorrow 22 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x43, Return x8, 0x0);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 21 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffc00);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1fffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x3ffffe);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1fffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x1fffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x3fffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1fffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1fffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x3fffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1fffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x1fffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x3fffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1fffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x1fffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0x3fffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x3ff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, 0x0);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x45, 0x0);
+ uint32_t x104 = (x89 & 0x1ffc00);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x48, Return x104);
+ uint32_t x108 = (x89 & 0x1fffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x51, Return x108);
+ uint32_t x112 = (x89 & 0x3ffffe);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x54, Return x112);
+ uint32_t x116 = (x89 & 0x1fffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x57, Return x116);
+ uint32_t x120 = (x89 & 0x1fffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x60, Return x120);
+ uint32_t x124 = (x89 & 0x3fffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x63, Return x124);
+ uint32_t x128 = (x89 & 0x1fffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x66, Return x128);
+ uint32_t x132 = (x89 & 0x1fffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x69, Return x132);
+ uint32_t x136 = (x89 & 0x3fffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x72, Return x136);
+ uint32_t x140 = (x89 & 0x1fffff);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x75, Return x140);
+ uint32_t x144 = (x89 & 0x1fffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x78, Return x144);
+ uint32_t x148 = (x89 & 0x3fffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x81, Return x148);
+ uint32_t x152 = (x89 & 0x1fffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x84, Return x152);
+ uint32_t x156 = (x89 & 0x1fffff);
+ uint32_t x158, uint8_t _ = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x87, Return x156);
+ (Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102, Return x99, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/feaddDisplay.log b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/feaddDisplay.log
new file mode 100644
index 000000000..76a71b356
--- /dev/null
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ ((x38 + x74), (x39 + x75), (x37 + x73), (x35 + x71), (x33 + x69), (x31 + x67), (x29 + x65), (x27 + x63), (x25 + x61), (x23 + x59), (x21 + x57), (x19 + x55), (x17 + x53), (x15 + x51), (x13 + x49), (x11 + x47), (x9 + x45), (x7 + x43), (x5 + x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/freezeDisplay.log b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/freezeDisplay.log
new file mode 100644
index 000000000..27df2c9a0
--- /dev/null
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1_19limbs/freezeDisplay.log
@@ -0,0 +1,63 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x35, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 0x1fffff);
+ uint32_t x41, ℤ x42 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) Syntax.TZ) (Return x39, Return x4, 0x7ff);
+ uint32_t x44, ℤ x45 = Op (Syntax.SubWithGetBorrow 20 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x42, Return x6, 0x0);
+ uint32_t x47, ℤ x48 = Op (Syntax.SubWithGetBorrow 20 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) Syntax.TZ) (Return x45, Return x8, 0x0);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 21 Syntax.TZ (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, Const 2064384);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0xfffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, Const 1048511);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0xfffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0xfffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0x1fffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0xfffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0xfffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0xfffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0xfffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0x1fffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0xfffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0xfffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0xfffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0xfffff);
+ uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ uint32_t x95 = (x94 & 0x1fffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ uint32_t x99 = (x94 & 0x7ff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, 0x0);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x47, 0x0);
+ uint32_t x109 = (x94 & Const 2064384);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x50, Return x109);
+ uint32_t x113 = (x94 & 0xfffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x53, Return x113);
+ uint32_t x117 = (x94 & Const 1048511);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x56, Return x117);
+ uint32_t x121 = (x94 & 0xfffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x59, Return x121);
+ uint32_t x125 = (x94 & 0xfffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x62, Return x125);
+ uint32_t x129 = (x94 & 0x1fffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x65, Return x129);
+ uint32_t x133 = (x94 & 0xfffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x68, Return x133);
+ uint32_t x137 = (x94 & 0xfffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x71, Return x137);
+ uint32_t x141 = (x94 & 0xfffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x74, Return x141);
+ uint32_t x145 = (x94 & 0xfffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x77, Return x145);
+ uint32_t x149 = (x94 & 0x1fffff);
+ uint32_t x151, uint8_t x152 = Op (Syntax.AddWithGetCarry 21 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x80, Return x149);
+ uint32_t x153 = (x94 & 0xfffff);
+ uint32_t x155, uint8_t x156 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x152, Return x83, Return x153);
+ uint32_t x157 = (x94 & 0xfffff);
+ uint32_t x159, uint8_t x160 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x156, Return x86, Return x157);
+ uint32_t x161 = (x94 & 0xfffff);
+ uint32_t x163, uint8_t x164 = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x160, Return x89, Return x161);
+ uint32_t x165 = (x94 & 0xfffff);
+ uint32_t x167, uint8_t _ = Op (Syntax.AddWithGetCarry 20 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x164, Return x92, Return x165);
+ (Return x167, Return x163, Return x159, Return x155, Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x104, Return x101, Return x97))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e384m317_17limbs/feadd.c b/src/Specific/solinas32_2e384m317_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e384m317_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e384m317_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e384m317_17limbs/fesub.c b/src/Specific/solinas32_2e384m317_17limbs/fesub.c
new file mode 100644
index 000000000..6c3da1935
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((Const 16776582 + x5) - x37);
+ out[1] = ((0xfffffe + x7) - x39);
+ out[2] = ((0x7ffffe + x9) - x41);
+ out[3] = ((0xfffffe + x11) - x43);
+ out[4] = ((0x7ffffe + x13) - x45);
+ out[5] = ((0xfffffe + x15) - x47);
+ out[6] = ((0xfffffe + x17) - x49);
+ out[7] = ((0x7ffffe + x19) - x51);
+ out[8] = ((0xfffffe + x21) - x53);
+ out[9] = ((0x7ffffe + x23) - x55);
+ out[10] = ((0xfffffe + x25) - x57);
+ out[11] = ((0xfffffe + x27) - x59);
+ out[12] = ((0x7ffffe + x29) - x61);
+ out[13] = ((0xfffffe + x31) - x63);
+ out[14] = ((0x7ffffe + x33) - x65);
+ out[15] = ((0xfffffe + x35) - x67);
+ out[16] = ((0x7ffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e384m317_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e384m317_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..35f663d2d
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0x7ffffe + x34) - x66), ((0xfffffe + x35) - x67), ((0x7ffffe + x33) - x65), ((0xfffffe + x31) - x63), ((0x7ffffe + x29) - x61), ((0xfffffe + x27) - x59), ((0xfffffe + x25) - x57), ((0x7ffffe + x23) - x55), ((0xfffffe + x21) - x53), ((0x7ffffe + x19) - x51), ((0xfffffe + x17) - x49), ((0xfffffe + x15) - x47), ((0x7ffffe + x13) - x45), ((0xfffffe + x11) - x43), ((0x7ffffe + x9) - x41), ((0xfffffe + x7) - x39), ((Const 16776582 + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e384m317_17limbs/freeze.c b/src/Specific/solinas32_2e384m317_17limbs/freeze.c
new file mode 100644
index 000000000..580a1d967
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388291);
+ { uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x4, 0x7fffff);
+ { 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 x6, 0x3fffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7fffff);
+ { 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 x10, 0x3fffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7fffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x7fffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x3fffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x7fffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x3fffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x7fffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7fffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3fffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7fffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3fffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7fffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & Const 8388291);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0x7fffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0x3fffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0x7fffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0x3fffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0x7fffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0x7fffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0x3fffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0x7fffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0x3fffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0x7fffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0x7fffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0x3fffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0x7fffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0x3fffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0x7fffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0x3fffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e384m317_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e384m317_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..c34c69860
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 8388291);
+ uint32_t x37, uint8_t x38 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x35, Return x4, 0x7fffff);
+ 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 x6, 0x3fffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7fffff);
+ 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 x10, 0x3fffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7fffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x7fffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x3fffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x7fffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x3fffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x7fffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7fffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3fffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7fffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3fffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7fffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3fffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & Const 8388291);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0x7fffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0x3fffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0x7fffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0x3fffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0x7fffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0x7fffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0x3fffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0x7fffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0x3fffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0x7fffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0x7fffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0x3fffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0x7fffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0x3fffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0x7fffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0x3fffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_15limbs/feadd.c b/src/Specific/solinas32_2e389m21_15limbs/feadd.c
new file mode 100644
index 000000000..72a59425b
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/feadd.c
@@ -0,0 +1,48 @@
+static void feadd(uint32_t out[15], const uint32_t in1[15], const uint32_t in2[15]) {
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x58 = in2[14];
+ { const uint32_t x59 = in2[13];
+ { const uint32_t x57 = in2[12];
+ { const uint32_t x55 = in2[11];
+ { const uint32_t x53 = in2[10];
+ { const uint32_t x51 = in2[9];
+ { const uint32_t x49 = in2[8];
+ { const uint32_t x47 = in2[7];
+ { const uint32_t x45 = in2[6];
+ { const uint32_t x43 = in2[5];
+ { const uint32_t x41 = in2[4];
+ { const uint32_t x39 = in2[3];
+ { const uint32_t x37 = in2[2];
+ { const uint32_t x35 = in2[1];
+ { const uint32_t x33 = in2[0];
+ out[0] = (x5 + x33);
+ out[1] = (x7 + x35);
+ out[2] = (x9 + x37);
+ out[3] = (x11 + x39);
+ out[4] = (x13 + x41);
+ out[5] = (x15 + x43);
+ out[6] = (x17 + x45);
+ out[7] = (x19 + x47);
+ out[8] = (x21 + x49);
+ out[9] = (x23 + x51);
+ out[10] = (x25 + x53);
+ out[11] = (x27 + x55);
+ out[12] = (x29 + x57);
+ out[13] = (x31 + x59);
+ out[14] = (x30 + x58);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_15limbs/feaddDisplay.log b/src/Specific/solinas32_2e389m21_15limbs/feaddDisplay.log
new file mode 100644
index 000000000..08d611628
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x30, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x58, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33))%core,
+ ((x30 + x58), (x31 + x59), (x29 + x57), (x27 + x55), (x25 + x53), (x23 + x51), (x21 + x49), (x19 + x47), (x17 + x45), (x15 + x43), (x13 + x41), (x11 + x39), (x9 + x37), (x7 + x35), (x5 + x33)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_15limbs/femul.c b/src/Specific/solinas32_2e389m21_15limbs/femul.c
new file mode 100644
index 000000000..07cfa8617
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/femul.c
@@ -0,0 +1,113 @@
+static void femul(uint32_t out[15], const uint32_t in1[15], const uint32_t in2[15]) {
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x58 = in2[14];
+ { const uint32_t x59 = in2[13];
+ { const uint32_t x57 = in2[12];
+ { const uint32_t x55 = in2[11];
+ { const uint32_t x53 = in2[10];
+ { const uint32_t x51 = in2[9];
+ { const uint32_t x49 = in2[8];
+ { const uint32_t x47 = in2[7];
+ { const uint32_t x45 = in2[6];
+ { const uint32_t x43 = in2[5];
+ { const uint32_t x41 = in2[4];
+ { const uint32_t x39 = in2[3];
+ { const uint32_t x37 = in2[2];
+ { const uint32_t x35 = in2[1];
+ { const uint32_t x33 = in2[0];
+ { uint64_t x60 = (((uint64_t)x5 * x58) + (((uint64_t)x7 * x59) + (((uint64_t)x9 * x57) + (((uint64_t)x11 * x55) + (((uint64_t)x13 * x53) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + (((uint64_t)x19 * x47) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + (((uint64_t)x25 * x41) + (((uint64_t)x27 * x39) + (((uint64_t)x29 * x37) + (((uint64_t)x31 * x35) + ((uint64_t)x30 * x33)))))))))))))));
+ { uint64_t x61 = ((((uint64_t)x5 * x59) + (((uint64_t)x7 * x57) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + (((uint64_t)x17 * x47) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + (((uint64_t)x23 * x41) + (((uint64_t)x25 * x39) + (((uint64_t)x27 * x37) + (((uint64_t)x29 * x35) + ((uint64_t)x31 * x33)))))))))))))) + (0x15 * (0x2 * ((uint64_t)x30 * x58))));
+ { uint64_t x62 = ((((uint64_t)x5 * x57) + (((uint64_t)x7 * x55) + (((uint64_t)x9 * x53) + (((uint64_t)x11 * x51) + (((uint64_t)x13 * x49) + (((uint64_t)x15 * x47) + (((uint64_t)x17 * x45) + (((uint64_t)x19 * x43) + (((uint64_t)x21 * x41) + (((uint64_t)x23 * x39) + (((uint64_t)x25 * x37) + (((uint64_t)x27 * x35) + ((uint64_t)x29 * x33))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x31 * x58)) + (0x2 * ((uint64_t)x30 * x59)))));
+ { uint64_t x63 = ((((uint64_t)x5 * x55) + (((uint64_t)x7 * x53) + (((uint64_t)x9 * x51) + (((uint64_t)x11 * x49) + (((uint64_t)x13 * x47) + (((uint64_t)x15 * x45) + (((uint64_t)x17 * x43) + (((uint64_t)x19 * x41) + (((uint64_t)x21 * x39) + (((uint64_t)x23 * x37) + (((uint64_t)x25 * x35) + ((uint64_t)x27 * x33)))))))))))) + (0x15 * ((0x2 * ((uint64_t)x29 * x58)) + ((0x2 * ((uint64_t)x31 * x59)) + (0x2 * ((uint64_t)x30 * x57))))));
+ { uint64_t x64 = ((((uint64_t)x5 * x53) + (((uint64_t)x7 * x51) + (((uint64_t)x9 * x49) + (((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))))))))))) + (0x15 * ((0x2 * ((uint64_t)x27 * x58)) + ((0x2 * ((uint64_t)x29 * x59)) + ((0x2 * ((uint64_t)x31 * x57)) + (0x2 * ((uint64_t)x30 * x55)))))));
+ { uint64_t x65 = ((((uint64_t)x5 * x51) + (((uint64_t)x7 * x49) + (((uint64_t)x9 * x47) + (((uint64_t)x11 * x45) + (((uint64_t)x13 * x43) + (((uint64_t)x15 * x41) + (((uint64_t)x17 * x39) + (((uint64_t)x19 * x37) + (((uint64_t)x21 * x35) + ((uint64_t)x23 * x33)))))))))) + (0x15 * ((0x2 * ((uint64_t)x25 * x58)) + ((0x2 * ((uint64_t)x27 * x59)) + ((0x2 * ((uint64_t)x29 * x57)) + ((0x2 * ((uint64_t)x31 * x55)) + (0x2 * ((uint64_t)x30 * x53))))))));
+ { uint64_t x66 = ((((uint64_t)x5 * x49) + (((uint64_t)x7 * x47) + (((uint64_t)x9 * x45) + (((uint64_t)x11 * x43) + (((uint64_t)x13 * x41) + (((uint64_t)x15 * x39) + (((uint64_t)x17 * x37) + (((uint64_t)x19 * x35) + ((uint64_t)x21 * x33))))))))) + (0x15 * ((0x2 * ((uint64_t)x23 * x58)) + ((0x2 * ((uint64_t)x25 * x59)) + ((0x2 * ((uint64_t)x27 * x57)) + ((0x2 * ((uint64_t)x29 * x55)) + ((0x2 * ((uint64_t)x31 * x53)) + (0x2 * ((uint64_t)x30 * x51)))))))));
+ { uint64_t x67 = ((((uint64_t)x5 * x47) + (((uint64_t)x7 * x45) + (((uint64_t)x9 * x43) + (((uint64_t)x11 * x41) + (((uint64_t)x13 * x39) + (((uint64_t)x15 * x37) + (((uint64_t)x17 * x35) + ((uint64_t)x19 * x33)))))))) + (0x15 * ((0x2 * ((uint64_t)x21 * x58)) + ((0x2 * ((uint64_t)x23 * x59)) + ((0x2 * ((uint64_t)x25 * x57)) + ((0x2 * ((uint64_t)x27 * x55)) + ((0x2 * ((uint64_t)x29 * x53)) + ((0x2 * ((uint64_t)x31 * x51)) + (0x2 * ((uint64_t)x30 * x49))))))))));
+ { uint64_t x68 = ((((uint64_t)x5 * x45) + (((uint64_t)x7 * x43) + (((uint64_t)x9 * x41) + (((uint64_t)x11 * x39) + (((uint64_t)x13 * x37) + (((uint64_t)x15 * x35) + ((uint64_t)x17 * x33))))))) + (0x15 * ((0x2 * ((uint64_t)x19 * x58)) + ((0x2 * ((uint64_t)x21 * x59)) + ((0x2 * ((uint64_t)x23 * x57)) + ((0x2 * ((uint64_t)x25 * x55)) + ((0x2 * ((uint64_t)x27 * x53)) + ((0x2 * ((uint64_t)x29 * x51)) + ((0x2 * ((uint64_t)x31 * x49)) + (0x2 * ((uint64_t)x30 * x47)))))))))));
+ { uint64_t x69 = ((((uint64_t)x5 * x43) + (((uint64_t)x7 * x41) + (((uint64_t)x9 * x39) + (((uint64_t)x11 * x37) + (((uint64_t)x13 * x35) + ((uint64_t)x15 * x33)))))) + (0x15 * ((0x2 * ((uint64_t)x17 * x58)) + ((0x2 * ((uint64_t)x19 * x59)) + ((0x2 * ((uint64_t)x21 * x57)) + ((0x2 * ((uint64_t)x23 * x55)) + ((0x2 * ((uint64_t)x25 * x53)) + ((0x2 * ((uint64_t)x27 * x51)) + ((0x2 * ((uint64_t)x29 * x49)) + ((0x2 * ((uint64_t)x31 * x47)) + (0x2 * ((uint64_t)x30 * x45))))))))))));
+ { ℤ x70 = ((((uint64_t)x5 * x41) + (((uint64_t)x7 * x39) + (((uint64_t)x9 * x37) + (((uint64_t)x11 * x35) + ((uint64_t)x13 * x33))))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x15 * x58)) + ((0x2 * ((uint64_t)x17 * x59)) + ((0x2 * ((uint64_t)x19 * x57)) + ((0x2 * ((uint64_t)x21 * x55)) + ((0x2 * ((uint64_t)x23 * x53)) + ((0x2 * ((uint64_t)x25 * x51)) + ((0x2 * ((uint64_t)x27 * x49)) + ((0x2 * ((uint64_t)x29 * x47)) + ((0x2 * ((uint64_t)x31 * x45)) + (0x2 * ((uint64_t)x30 * x43)))))))))))));
+ { ℤ x71 = ((((uint64_t)x5 * x39) + (((uint64_t)x7 * x37) + (((uint64_t)x9 * x35) + ((uint64_t)x11 * x33)))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x13 * x58)) + ((0x2 * ((uint64_t)x15 * x59)) + ((0x2 * ((uint64_t)x17 * x57)) + ((0x2 * ((uint64_t)x19 * x55)) + ((0x2 * ((uint64_t)x21 * x53)) + ((0x2 * ((uint64_t)x23 * x51)) + ((0x2 * ((uint64_t)x25 * x49)) + ((0x2 * ((uint64_t)x27 * x47)) + ((0x2 * ((uint64_t)x29 * x45)) + ((0x2 * ((uint64_t)x31 * x43)) + (0x2 * ((uint64_t)x30 * x41))))))))))))));
+ { ℤ x72 = ((((uint64_t)x5 * x37) + (((uint64_t)x7 * x35) + ((uint64_t)x9 * x33))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x11 * x58)) + ((0x2 * ((uint64_t)x13 * x59)) + ((0x2 * ((uint64_t)x15 * x57)) + ((0x2 * ((uint64_t)x17 * x55)) + ((0x2 * ((uint64_t)x19 * x53)) + ((0x2 * ((uint64_t)x21 * x51)) + ((0x2 * ((uint64_t)x23 * x49)) + ((0x2 * ((uint64_t)x25 * x47)) + ((0x2 * ((uint64_t)x27 * x45)) + ((0x2 * ((uint64_t)x29 * x43)) + ((0x2 * ((uint64_t)x31 * x41)) + (0x2 * ((uint64_t)x30 * x39)))))))))))))));
+ { ℤ x73 = ((((uint64_t)x5 * x35) + ((uint64_t)x7 * x33)) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x9 * x58)) + ((0x2 * ((uint64_t)x11 * x59)) + ((0x2 * ((uint64_t)x13 * x57)) + ((0x2 * ((uint64_t)x15 * x55)) + ((0x2 * ((uint64_t)x17 * x53)) + ((0x2 * ((uint64_t)x19 * x51)) + ((0x2 * ((uint64_t)x21 * x49)) + ((0x2 * ((uint64_t)x23 * x47)) + ((0x2 * ((uint64_t)x25 * x45)) + ((0x2 * ((uint64_t)x27 * x43)) + ((0x2 * ((uint64_t)x29 * x41)) + ((0x2 * ((uint64_t)x31 * x39)) + (0x2 * ((uint64_t)x30 * x37))))))))))))))));
+ { ℤ x74 = (((uint64_t)x5 * x33) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x7 * x58)) + ((0x2 * ((uint64_t)x9 * x59)) + ((0x2 * ((uint64_t)x11 * x57)) + ((0x2 * ((uint64_t)x13 * x55)) + ((0x2 * ((uint64_t)x15 * x53)) + ((0x2 * ((uint64_t)x17 * x51)) + ((0x2 * ((uint64_t)x19 * x49)) + ((0x2 * ((uint64_t)x21 * x47)) + ((0x2 * ((uint64_t)x23 * x45)) + ((0x2 * ((uint64_t)x25 * x43)) + ((0x2 * ((uint64_t)x27 * x41)) + ((0x2 * ((uint64_t)x29 * x39)) + ((0x2 * ((uint64_t)x31 * x37)) + (0x2 * ((uint64_t)x30 * x35)))))))))))))))));
+ { uint64_t x75 = (x74 >> 0x1a);
+ { uint32_t x76 = (x74 & 0x3ffffff);
+ { ℤ x77 = (x75 +ℤ x73);
+ { uint64_t x78 = (x77 >> 0x1a);
+ { uint32_t x79 = (x77 & 0x3ffffff);
+ { ℤ x80 = (x78 +ℤ x72);
+ { uint64_t x81 = (x80 >> 0x1a);
+ { uint32_t x82 = (x80 & 0x3ffffff);
+ { ℤ x83 = (x81 +ℤ x71);
+ { uint64_t x84 = (x83 >> 0x1a);
+ { uint32_t x85 = (x83 & 0x3ffffff);
+ { ℤ x86 = (x84 +ℤ x70);
+ { uint64_t x87 = (x86 >> 0x1a);
+ { uint32_t x88 = (x86 & 0x3ffffff);
+ { uint64_t x89 = (x87 + x69);
+ { uint64_t x90 = (x89 >> 0x1a);
+ { uint32_t x91 = ((uint32_t)x89 & 0x3ffffff);
+ { uint64_t x92 = (x90 + x68);
+ { uint64_t x93 = (x92 >> 0x1a);
+ { uint32_t x94 = ((uint32_t)x92 & 0x3ffffff);
+ { uint64_t x95 = (x93 + x67);
+ { uint64_t x96 = (x95 >> 0x1a);
+ { uint32_t x97 = ((uint32_t)x95 & 0x3ffffff);
+ { uint64_t x98 = (x96 + x66);
+ { uint64_t x99 = (x98 >> 0x1a);
+ { uint32_t x100 = ((uint32_t)x98 & 0x3ffffff);
+ { uint64_t x101 = (x99 + x65);
+ { uint64_t x102 = (x101 >> 0x1a);
+ { uint32_t x103 = ((uint32_t)x101 & 0x3ffffff);
+ { uint64_t x104 = (x102 + x64);
+ { uint64_t x105 = (x104 >> 0x1a);
+ { uint32_t x106 = ((uint32_t)x104 & 0x3ffffff);
+ { uint64_t x107 = (x105 + x63);
+ { uint64_t x108 = (x107 >> 0x1a);
+ { uint32_t x109 = ((uint32_t)x107 & 0x3ffffff);
+ { uint64_t x110 = (x108 + x62);
+ { uint64_t x111 = (x110 >> 0x1a);
+ { uint32_t x112 = ((uint32_t)x110 & 0x3ffffff);
+ { uint64_t x113 = (x111 + x61);
+ { uint64_t x114 = (x113 >> 0x1a);
+ { uint32_t x115 = ((uint32_t)x113 & 0x3ffffff);
+ { uint64_t x116 = (x114 + x60);
+ { uint64_t x117 = (x116 >> 0x19);
+ { uint32_t x118 = ((uint32_t)x116 & 0x1ffffff);
+ { uint64_t x119 = (x76 + (0x15 * x117));
+ { uint32_t x120 = (uint32_t) (x119 >> 0x1a);
+ { uint32_t x121 = ((uint32_t)x119 & 0x3ffffff);
+ { uint32_t x122 = (x120 + x79);
+ { uint32_t x123 = (x122 >> 0x1a);
+ { uint32_t x124 = (x122 & 0x3ffffff);
+ out[0] = x121;
+ out[1] = x124;
+ out[2] = (x123 + x82);
+ out[3] = x85;
+ out[4] = x88;
+ out[5] = x91;
+ out[6] = x94;
+ out[7] = x97;
+ out[8] = x100;
+ out[9] = x103;
+ out[10] = x106;
+ out[11] = x109;
+ out[12] = x112;
+ out[13] = x115;
+ out[14] = x118;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_15limbs/femulDisplay.log b/src/Specific/solinas32_2e389m21_15limbs/femulDisplay.log
new file mode 100644
index 000000000..091318fd0
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/femulDisplay.log
@@ -0,0 +1,72 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x30, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x58, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33))%core,
+ uint64_t x60 = (((uint64_t)x5 * x58) + (((uint64_t)x7 * x59) + (((uint64_t)x9 * x57) + (((uint64_t)x11 * x55) + (((uint64_t)x13 * x53) + (((uint64_t)x15 * x51) + (((uint64_t)x17 * x49) + (((uint64_t)x19 * x47) + (((uint64_t)x21 * x45) + (((uint64_t)x23 * x43) + (((uint64_t)x25 * x41) + (((uint64_t)x27 * x39) + (((uint64_t)x29 * x37) + (((uint64_t)x31 * x35) + ((uint64_t)x30 * x33)))))))))))))));
+ uint64_t x61 = ((((uint64_t)x5 * x59) + (((uint64_t)x7 * x57) + (((uint64_t)x9 * x55) + (((uint64_t)x11 * x53) + (((uint64_t)x13 * x51) + (((uint64_t)x15 * x49) + (((uint64_t)x17 * x47) + (((uint64_t)x19 * x45) + (((uint64_t)x21 * x43) + (((uint64_t)x23 * x41) + (((uint64_t)x25 * x39) + (((uint64_t)x27 * x37) + (((uint64_t)x29 * x35) + ((uint64_t)x31 * x33)))))))))))))) + (0x15 * (0x2 * ((uint64_t)x30 * x58))));
+ uint64_t x62 = ((((uint64_t)x5 * x57) + (((uint64_t)x7 * x55) + (((uint64_t)x9 * x53) + (((uint64_t)x11 * x51) + (((uint64_t)x13 * x49) + (((uint64_t)x15 * x47) + (((uint64_t)x17 * x45) + (((uint64_t)x19 * x43) + (((uint64_t)x21 * x41) + (((uint64_t)x23 * x39) + (((uint64_t)x25 * x37) + (((uint64_t)x27 * x35) + ((uint64_t)x29 * x33))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x31 * x58)) + (0x2 * ((uint64_t)x30 * x59)))));
+ uint64_t x63 = ((((uint64_t)x5 * x55) + (((uint64_t)x7 * x53) + (((uint64_t)x9 * x51) + (((uint64_t)x11 * x49) + (((uint64_t)x13 * x47) + (((uint64_t)x15 * x45) + (((uint64_t)x17 * x43) + (((uint64_t)x19 * x41) + (((uint64_t)x21 * x39) + (((uint64_t)x23 * x37) + (((uint64_t)x25 * x35) + ((uint64_t)x27 * x33)))))))))))) + (0x15 * ((0x2 * ((uint64_t)x29 * x58)) + ((0x2 * ((uint64_t)x31 * x59)) + (0x2 * ((uint64_t)x30 * x57))))));
+ uint64_t x64 = ((((uint64_t)x5 * x53) + (((uint64_t)x7 * x51) + (((uint64_t)x9 * x49) + (((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))))))))))) + (0x15 * ((0x2 * ((uint64_t)x27 * x58)) + ((0x2 * ((uint64_t)x29 * x59)) + ((0x2 * ((uint64_t)x31 * x57)) + (0x2 * ((uint64_t)x30 * x55)))))));
+ uint64_t x65 = ((((uint64_t)x5 * x51) + (((uint64_t)x7 * x49) + (((uint64_t)x9 * x47) + (((uint64_t)x11 * x45) + (((uint64_t)x13 * x43) + (((uint64_t)x15 * x41) + (((uint64_t)x17 * x39) + (((uint64_t)x19 * x37) + (((uint64_t)x21 * x35) + ((uint64_t)x23 * x33)))))))))) + (0x15 * ((0x2 * ((uint64_t)x25 * x58)) + ((0x2 * ((uint64_t)x27 * x59)) + ((0x2 * ((uint64_t)x29 * x57)) + ((0x2 * ((uint64_t)x31 * x55)) + (0x2 * ((uint64_t)x30 * x53))))))));
+ uint64_t x66 = ((((uint64_t)x5 * x49) + (((uint64_t)x7 * x47) + (((uint64_t)x9 * x45) + (((uint64_t)x11 * x43) + (((uint64_t)x13 * x41) + (((uint64_t)x15 * x39) + (((uint64_t)x17 * x37) + (((uint64_t)x19 * x35) + ((uint64_t)x21 * x33))))))))) + (0x15 * ((0x2 * ((uint64_t)x23 * x58)) + ((0x2 * ((uint64_t)x25 * x59)) + ((0x2 * ((uint64_t)x27 * x57)) + ((0x2 * ((uint64_t)x29 * x55)) + ((0x2 * ((uint64_t)x31 * x53)) + (0x2 * ((uint64_t)x30 * x51)))))))));
+ uint64_t x67 = ((((uint64_t)x5 * x47) + (((uint64_t)x7 * x45) + (((uint64_t)x9 * x43) + (((uint64_t)x11 * x41) + (((uint64_t)x13 * x39) + (((uint64_t)x15 * x37) + (((uint64_t)x17 * x35) + ((uint64_t)x19 * x33)))))))) + (0x15 * ((0x2 * ((uint64_t)x21 * x58)) + ((0x2 * ((uint64_t)x23 * x59)) + ((0x2 * ((uint64_t)x25 * x57)) + ((0x2 * ((uint64_t)x27 * x55)) + ((0x2 * ((uint64_t)x29 * x53)) + ((0x2 * ((uint64_t)x31 * x51)) + (0x2 * ((uint64_t)x30 * x49))))))))));
+ uint64_t x68 = ((((uint64_t)x5 * x45) + (((uint64_t)x7 * x43) + (((uint64_t)x9 * x41) + (((uint64_t)x11 * x39) + (((uint64_t)x13 * x37) + (((uint64_t)x15 * x35) + ((uint64_t)x17 * x33))))))) + (0x15 * ((0x2 * ((uint64_t)x19 * x58)) + ((0x2 * ((uint64_t)x21 * x59)) + ((0x2 * ((uint64_t)x23 * x57)) + ((0x2 * ((uint64_t)x25 * x55)) + ((0x2 * ((uint64_t)x27 * x53)) + ((0x2 * ((uint64_t)x29 * x51)) + ((0x2 * ((uint64_t)x31 * x49)) + (0x2 * ((uint64_t)x30 * x47)))))))))));
+ uint64_t x69 = ((((uint64_t)x5 * x43) + (((uint64_t)x7 * x41) + (((uint64_t)x9 * x39) + (((uint64_t)x11 * x37) + (((uint64_t)x13 * x35) + ((uint64_t)x15 * x33)))))) + (0x15 * ((0x2 * ((uint64_t)x17 * x58)) + ((0x2 * ((uint64_t)x19 * x59)) + ((0x2 * ((uint64_t)x21 * x57)) + ((0x2 * ((uint64_t)x23 * x55)) + ((0x2 * ((uint64_t)x25 * x53)) + ((0x2 * ((uint64_t)x27 * x51)) + ((0x2 * ((uint64_t)x29 * x49)) + ((0x2 * ((uint64_t)x31 * x47)) + (0x2 * ((uint64_t)x30 * x45))))))))))));
+ ℤ x70 = ((((uint64_t)x5 * x41) + (((uint64_t)x7 * x39) + (((uint64_t)x9 * x37) + (((uint64_t)x11 * x35) + ((uint64_t)x13 * x33))))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x15 * x58)) + ((0x2 * ((uint64_t)x17 * x59)) + ((0x2 * ((uint64_t)x19 * x57)) + ((0x2 * ((uint64_t)x21 * x55)) + ((0x2 * ((uint64_t)x23 * x53)) + ((0x2 * ((uint64_t)x25 * x51)) + ((0x2 * ((uint64_t)x27 * x49)) + ((0x2 * ((uint64_t)x29 * x47)) + ((0x2 * ((uint64_t)x31 * x45)) + (0x2 * ((uint64_t)x30 * x43)))))))))))));
+ ℤ x71 = ((((uint64_t)x5 * x39) + (((uint64_t)x7 * x37) + (((uint64_t)x9 * x35) + ((uint64_t)x11 * x33)))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x13 * x58)) + ((0x2 * ((uint64_t)x15 * x59)) + ((0x2 * ((uint64_t)x17 * x57)) + ((0x2 * ((uint64_t)x19 * x55)) + ((0x2 * ((uint64_t)x21 * x53)) + ((0x2 * ((uint64_t)x23 * x51)) + ((0x2 * ((uint64_t)x25 * x49)) + ((0x2 * ((uint64_t)x27 * x47)) + ((0x2 * ((uint64_t)x29 * x45)) + ((0x2 * ((uint64_t)x31 * x43)) + (0x2 * ((uint64_t)x30 * x41))))))))))))));
+ ℤ x72 = ((((uint64_t)x5 * x37) + (((uint64_t)x7 * x35) + ((uint64_t)x9 * x33))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x11 * x58)) + ((0x2 * ((uint64_t)x13 * x59)) + ((0x2 * ((uint64_t)x15 * x57)) + ((0x2 * ((uint64_t)x17 * x55)) + ((0x2 * ((uint64_t)x19 * x53)) + ((0x2 * ((uint64_t)x21 * x51)) + ((0x2 * ((uint64_t)x23 * x49)) + ((0x2 * ((uint64_t)x25 * x47)) + ((0x2 * ((uint64_t)x27 * x45)) + ((0x2 * ((uint64_t)x29 * x43)) + ((0x2 * ((uint64_t)x31 * x41)) + (0x2 * ((uint64_t)x30 * x39)))))))))))))));
+ ℤ x73 = ((((uint64_t)x5 * x35) + ((uint64_t)x7 * x33)) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x9 * x58)) + ((0x2 * ((uint64_t)x11 * x59)) + ((0x2 * ((uint64_t)x13 * x57)) + ((0x2 * ((uint64_t)x15 * x55)) + ((0x2 * ((uint64_t)x17 * x53)) + ((0x2 * ((uint64_t)x19 * x51)) + ((0x2 * ((uint64_t)x21 * x49)) + ((0x2 * ((uint64_t)x23 * x47)) + ((0x2 * ((uint64_t)x25 * x45)) + ((0x2 * ((uint64_t)x27 * x43)) + ((0x2 * ((uint64_t)x29 * x41)) + ((0x2 * ((uint64_t)x31 * x39)) + (0x2 * ((uint64_t)x30 * x37))))))))))))))));
+ ℤ x74 = (((uint64_t)x5 * x33) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x7 * x58)) + ((0x2 * ((uint64_t)x9 * x59)) + ((0x2 * ((uint64_t)x11 * x57)) + ((0x2 * ((uint64_t)x13 * x55)) + ((0x2 * ((uint64_t)x15 * x53)) + ((0x2 * ((uint64_t)x17 * x51)) + ((0x2 * ((uint64_t)x19 * x49)) + ((0x2 * ((uint64_t)x21 * x47)) + ((0x2 * ((uint64_t)x23 * x45)) + ((0x2 * ((uint64_t)x25 * x43)) + ((0x2 * ((uint64_t)x27 * x41)) + ((0x2 * ((uint64_t)x29 * x39)) + ((0x2 * ((uint64_t)x31 * x37)) + (0x2 * ((uint64_t)x30 * x35)))))))))))))))));
+ uint64_t x75 = (x74 >> 0x1a);
+ uint32_t x76 = (x74 & 0x3ffffff);
+ ℤ x77 = (x75 +ℤ x73);
+ uint64_t x78 = (x77 >> 0x1a);
+ uint32_t x79 = (x77 & 0x3ffffff);
+ ℤ x80 = (x78 +ℤ x72);
+ uint64_t x81 = (x80 >> 0x1a);
+ uint32_t x82 = (x80 & 0x3ffffff);
+ ℤ x83 = (x81 +ℤ x71);
+ uint64_t x84 = (x83 >> 0x1a);
+ uint32_t x85 = (x83 & 0x3ffffff);
+ ℤ x86 = (x84 +ℤ x70);
+ uint64_t x87 = (x86 >> 0x1a);
+ uint32_t x88 = (x86 & 0x3ffffff);
+ uint64_t x89 = (x87 + x69);
+ uint64_t x90 = (x89 >> 0x1a);
+ uint32_t x91 = ((uint32_t)x89 & 0x3ffffff);
+ uint64_t x92 = (x90 + x68);
+ uint64_t x93 = (x92 >> 0x1a);
+ uint32_t x94 = ((uint32_t)x92 & 0x3ffffff);
+ uint64_t x95 = (x93 + x67);
+ uint64_t x96 = (x95 >> 0x1a);
+ uint32_t x97 = ((uint32_t)x95 & 0x3ffffff);
+ uint64_t x98 = (x96 + x66);
+ uint64_t x99 = (x98 >> 0x1a);
+ uint32_t x100 = ((uint32_t)x98 & 0x3ffffff);
+ uint64_t x101 = (x99 + x65);
+ uint64_t x102 = (x101 >> 0x1a);
+ uint32_t x103 = ((uint32_t)x101 & 0x3ffffff);
+ uint64_t x104 = (x102 + x64);
+ uint64_t x105 = (x104 >> 0x1a);
+ uint32_t x106 = ((uint32_t)x104 & 0x3ffffff);
+ uint64_t x107 = (x105 + x63);
+ uint64_t x108 = (x107 >> 0x1a);
+ uint32_t x109 = ((uint32_t)x107 & 0x3ffffff);
+ uint64_t x110 = (x108 + x62);
+ uint64_t x111 = (x110 >> 0x1a);
+ uint32_t x112 = ((uint32_t)x110 & 0x3ffffff);
+ uint64_t x113 = (x111 + x61);
+ uint64_t x114 = (x113 >> 0x1a);
+ uint32_t x115 = ((uint32_t)x113 & 0x3ffffff);
+ uint64_t x116 = (x114 + x60);
+ uint64_t x117 = (x116 >> 0x19);
+ uint32_t x118 = ((uint32_t)x116 & 0x1ffffff);
+ uint64_t x119 = (x76 + (0x15 * x117));
+ uint32_t x120 = (uint32_t) (x119 >> 0x1a);
+ uint32_t x121 = ((uint32_t)x119 & 0x3ffffff);
+ uint32_t x122 = (x120 + x79);
+ uint32_t x123 = (x122 >> 0x1a);
+ uint32_t x124 = (x122 & 0x3ffffff);
+ return (Return x118, Return x115, Return x112, Return x109, Return x106, Return x103, Return x100, Return x97, Return x94, Return x91, Return x88, Return x85, (x123 + x82), Return x124, Return x121))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_15limbs/fesquare.c b/src/Specific/solinas32_2e389m21_15limbs/fesquare.c
new file mode 100644
index 000000000..998045a28
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/fesquare.c
@@ -0,0 +1,98 @@
+static void fesquare(uint32_t out[15], const uint32_t in1[15]) {
+ { const uint32_t x27 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x29 = (((uint64_t)x2 * x27) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x27 * x2)))))))))))))));
+ { uint64_t x30 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((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)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * (0x2 * ((uint64_t)x27 * x27))));
+ { uint64_t x31 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((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)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x28 * x27)) + (0x2 * ((uint64_t)x27 * x28)))));
+ { uint64_t x32 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((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)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * ((0x2 * ((uint64_t)x26 * x27)) + ((0x2 * ((uint64_t)x28 * x28)) + (0x2 * ((uint64_t)x27 * x26))))));
+ { uint64_t x33 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x15 * ((0x2 * ((uint64_t)x24 * x27)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + (0x2 * ((uint64_t)x27 * x24)))))));
+ { uint64_t x34 = ((((uint64_t)x2 * x20) + (((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)x20 * x2)))))))))) + (0x15 * ((0x2 * ((uint64_t)x22 * x27)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + (0x2 * ((uint64_t)x27 * x22))))))));
+ { uint64_t x35 = ((((uint64_t)x2 * x18) + (((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)x18 * x2))))))))) + (0x15 * ((0x2 * ((uint64_t)x20 * x27)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + (0x2 * ((uint64_t)x27 * x20)))))))));
+ { uint64_t x36 = ((((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)))))))) + (0x15 * ((0x2 * ((uint64_t)x18 * x27)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + (0x2 * ((uint64_t)x27 * x18))))))))));
+ { uint64_t x37 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x27)) + ((0x2 * ((uint64_t)x18 * x28)) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + ((0x2 * ((uint64_t)x28 * x18)) + (0x2 * ((uint64_t)x27 * x16)))))))))));
+ { uint64_t x38 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x15 * ((0x2 * ((uint64_t)x14 * x27)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + (0x2 * ((uint64_t)x27 * x14))))))))))));
+ { ℤ x39 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x12 * x27)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + (0x2 * ((uint64_t)x27 * x12)))))))))))));
+ { ℤ x40 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x10 * x27)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + (0x2 * ((uint64_t)x27 * x10))))))))))))));
+ { ℤ x41 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x8 * x27)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + (0x2 * ((uint64_t)x27 * x8)))))))))))))));
+ { ℤ x42 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x6 * x27)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + (0x2 * ((uint64_t)x27 * x6))))))))))))))));
+ { ℤ x43 = (((uint64_t)x2 * x2) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x4 * x27)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + (0x2 * ((uint64_t)x27 * x4)))))))))))))))));
+ { uint64_t x44 = (x43 >> 0x1a);
+ { uint32_t x45 = (x43 & 0x3ffffff);
+ { ℤ x46 = (x44 +ℤ x42);
+ { uint64_t x47 = (x46 >> 0x1a);
+ { uint32_t x48 = (x46 & 0x3ffffff);
+ { ℤ x49 = (x47 +ℤ x41);
+ { uint64_t x50 = (x49 >> 0x1a);
+ { uint32_t x51 = (x49 & 0x3ffffff);
+ { ℤ x52 = (x50 +ℤ x40);
+ { uint64_t x53 = (x52 >> 0x1a);
+ { uint32_t x54 = (x52 & 0x3ffffff);
+ { ℤ x55 = (x53 +ℤ x39);
+ { uint64_t x56 = (x55 >> 0x1a);
+ { uint32_t x57 = (x55 & 0x3ffffff);
+ { uint64_t x58 = (x56 + x38);
+ { uint64_t x59 = (x58 >> 0x1a);
+ { uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ { uint64_t x61 = (x59 + x37);
+ { uint64_t x62 = (x61 >> 0x1a);
+ { uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ { uint64_t x64 = (x62 + x36);
+ { uint64_t x65 = (x64 >> 0x1a);
+ { uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ { uint64_t x67 = (x65 + x35);
+ { uint64_t x68 = (x67 >> 0x1a);
+ { uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ { uint64_t x70 = (x68 + x34);
+ { uint64_t x71 = (x70 >> 0x1a);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ { uint64_t x73 = (x71 + x33);
+ { uint64_t x74 = (x73 >> 0x1a);
+ { uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ { uint64_t x76 = (x74 + x32);
+ { uint64_t x77 = (x76 >> 0x1a);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ { uint64_t x79 = (x77 + x31);
+ { uint64_t x80 = (x79 >> 0x1a);
+ { uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ { uint64_t x82 = (x80 + x30);
+ { uint64_t x83 = (x82 >> 0x1a);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ { uint64_t x85 = (x83 + x29);
+ { uint64_t x86 = (x85 >> 0x19);
+ { uint32_t x87 = ((uint32_t)x85 & 0x1ffffff);
+ { uint64_t x88 = (x45 + (0x15 * x86));
+ { uint32_t x89 = (uint32_t) (x88 >> 0x1a);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ { uint32_t x91 = (x89 + x48);
+ { uint32_t x92 = (x91 >> 0x1a);
+ { uint32_t x93 = (x91 & 0x3ffffff);
+ out[0] = x90;
+ out[1] = x93;
+ out[2] = (x92 + x51);
+ out[3] = x54;
+ out[4] = x57;
+ out[5] = x60;
+ out[6] = x63;
+ out[7] = x66;
+ out[8] = x69;
+ out[9] = x72;
+ out[10] = x75;
+ out[11] = x78;
+ out[12] = x81;
+ out[13] = x84;
+ out[14] = x87;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_15limbs/fesquareDisplay.log b/src/Specific/solinas32_2e389m21_15limbs/fesquareDisplay.log
new file mode 100644
index 000000000..1ea808365
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/fesquareDisplay.log
@@ -0,0 +1,72 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x27, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x29 = (((uint64_t)x2 * x27) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((uint64_t)x10 * x22) + (((uint64_t)x12 * x20) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + (((uint64_t)x20 * x12) + (((uint64_t)x22 * x10) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x27 * x2)))))))))))))));
+ uint64_t x30 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((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)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * (0x2 * ((uint64_t)x27 * x27))));
+ uint64_t x31 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((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)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x28 * x27)) + (0x2 * ((uint64_t)x27 * x28)))));
+ uint64_t x32 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((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)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * ((0x2 * ((uint64_t)x26 * x27)) + ((0x2 * ((uint64_t)x28 * x28)) + (0x2 * ((uint64_t)x27 * x26))))));
+ uint64_t x33 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x15 * ((0x2 * ((uint64_t)x24 * x27)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + (0x2 * ((uint64_t)x27 * x24)))))));
+ uint64_t x34 = ((((uint64_t)x2 * x20) + (((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)x20 * x2)))))))))) + (0x15 * ((0x2 * ((uint64_t)x22 * x27)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + (0x2 * ((uint64_t)x27 * x22))))))));
+ uint64_t x35 = ((((uint64_t)x2 * x18) + (((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)x18 * x2))))))))) + (0x15 * ((0x2 * ((uint64_t)x20 * x27)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + (0x2 * ((uint64_t)x27 * x20)))))))));
+ uint64_t x36 = ((((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)))))))) + (0x15 * ((0x2 * ((uint64_t)x18 * x27)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + (0x2 * ((uint64_t)x27 * x18))))))))));
+ uint64_t x37 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x27)) + ((0x2 * ((uint64_t)x18 * x28)) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + ((0x2 * ((uint64_t)x28 * x18)) + (0x2 * ((uint64_t)x27 * x16)))))))))));
+ uint64_t x38 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x15 * ((0x2 * ((uint64_t)x14 * x27)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + (0x2 * ((uint64_t)x27 * x14))))))))))));
+ ℤ x39 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x12 * x27)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + (0x2 * ((uint64_t)x27 * x12)))))))))))));
+ ℤ x40 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x10 * x27)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + (0x2 * ((uint64_t)x27 * x10))))))))))))));
+ ℤ x41 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x8 * x27)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + (0x2 * ((uint64_t)x27 * x8)))))))))))))));
+ ℤ x42 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x6 * x27)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + (0x2 * ((uint64_t)x27 * x6))))))))))))))));
+ ℤ x43 = (((uint64_t)x2 * x2) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x4 * x27)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + (0x2 * ((uint64_t)x27 * x4)))))))))))))))));
+ uint64_t x44 = (x43 >> 0x1a);
+ uint32_t x45 = (x43 & 0x3ffffff);
+ ℤ x46 = (x44 +ℤ x42);
+ uint64_t x47 = (x46 >> 0x1a);
+ uint32_t x48 = (x46 & 0x3ffffff);
+ ℤ x49 = (x47 +ℤ x41);
+ uint64_t x50 = (x49 >> 0x1a);
+ uint32_t x51 = (x49 & 0x3ffffff);
+ ℤ x52 = (x50 +ℤ x40);
+ uint64_t x53 = (x52 >> 0x1a);
+ uint32_t x54 = (x52 & 0x3ffffff);
+ ℤ x55 = (x53 +ℤ x39);
+ uint64_t x56 = (x55 >> 0x1a);
+ uint32_t x57 = (x55 & 0x3ffffff);
+ uint64_t x58 = (x56 + x38);
+ uint64_t x59 = (x58 >> 0x1a);
+ uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ uint64_t x61 = (x59 + x37);
+ uint64_t x62 = (x61 >> 0x1a);
+ uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ uint64_t x64 = (x62 + x36);
+ uint64_t x65 = (x64 >> 0x1a);
+ uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ uint64_t x67 = (x65 + x35);
+ uint64_t x68 = (x67 >> 0x1a);
+ uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ uint64_t x70 = (x68 + x34);
+ uint64_t x71 = (x70 >> 0x1a);
+ uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ uint64_t x73 = (x71 + x33);
+ uint64_t x74 = (x73 >> 0x1a);
+ uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ uint64_t x76 = (x74 + x32);
+ uint64_t x77 = (x76 >> 0x1a);
+ uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ uint64_t x79 = (x77 + x31);
+ uint64_t x80 = (x79 >> 0x1a);
+ uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ uint64_t x82 = (x80 + x30);
+ uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ uint64_t x85 = (x83 + x29);
+ uint64_t x86 = (x85 >> 0x19);
+ uint32_t x87 = ((uint32_t)x85 & 0x1ffffff);
+ uint64_t x88 = (x45 + (0x15 * x86));
+ uint32_t x89 = (uint32_t) (x88 >> 0x1a);
+ uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ uint32_t x91 = (x89 + x48);
+ uint32_t x92 = (x91 >> 0x1a);
+ uint32_t x93 = (x91 & 0x3ffffff);
+ return (Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, Return x57, Return x54, (x92 + x51), Return x93, Return x90))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_15limbs/fesub.c b/src/Specific/solinas32_2e389m21_15limbs/fesub.c
new file mode 100644
index 000000000..ad160e33b
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/fesub.c
@@ -0,0 +1,48 @@
+static void fesub(uint32_t out[15], const uint32_t in1[15], const uint32_t in2[15]) {
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x58 = in2[14];
+ { const uint32_t x59 = in2[13];
+ { const uint32_t x57 = in2[12];
+ { const uint32_t x55 = in2[11];
+ { const uint32_t x53 = in2[10];
+ { const uint32_t x51 = in2[9];
+ { const uint32_t x49 = in2[8];
+ { const uint32_t x47 = in2[7];
+ { const uint32_t x45 = in2[6];
+ { const uint32_t x43 = in2[5];
+ { const uint32_t x41 = in2[4];
+ { const uint32_t x39 = in2[3];
+ { const uint32_t x37 = in2[2];
+ { const uint32_t x35 = in2[1];
+ { const uint32_t x33 = in2[0];
+ out[0] = ((Const 134217686 + x5) - x33);
+ out[1] = ((0x7fffffe + x7) - x35);
+ out[2] = ((0x7fffffe + x9) - x37);
+ out[3] = ((0x7fffffe + x11) - x39);
+ out[4] = ((0x7fffffe + x13) - x41);
+ out[5] = ((0x7fffffe + x15) - x43);
+ out[6] = ((0x7fffffe + x17) - x45);
+ out[7] = ((0x7fffffe + x19) - x47);
+ out[8] = ((0x7fffffe + x21) - x49);
+ out[9] = ((0x7fffffe + x23) - x51);
+ out[10] = ((0x7fffffe + x25) - x53);
+ out[11] = ((0x7fffffe + x27) - x55);
+ out[12] = ((0x7fffffe + x29) - x57);
+ out[13] = ((0x7fffffe + x31) - x59);
+ out[14] = ((0x3fffffe + x30) - x58);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_15limbs/fesubDisplay.log b/src/Specific/solinas32_2e389m21_15limbs/fesubDisplay.log
new file mode 100644
index 000000000..40905f1f6
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x30, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x58, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35, x33))%core,
+ (((0x3fffffe + x30) - x58), ((0x7fffffe + x31) - x59), ((0x7fffffe + x29) - x57), ((0x7fffffe + x27) - x55), ((0x7fffffe + x25) - x53), ((0x7fffffe + x23) - x51), ((0x7fffffe + x21) - x49), ((0x7fffffe + x19) - x47), ((0x7fffffe + x17) - x45), ((0x7fffffe + x15) - x43), ((0x7fffffe + x13) - x41), ((0x7fffffe + x11) - x39), ((0x7fffffe + x9) - x37), ((0x7fffffe + x7) - x35), ((Const 134217686 + x5) - x33)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_15limbs/freeze.c b/src/Specific/solinas32_2e389m21_15limbs/freeze.c
new file mode 100644
index 000000000..20464257a
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/freeze.c
@@ -0,0 +1,79 @@
+static void freeze(uint32_t out[15], const uint32_t in1[15]) {
+ { const uint32_t x27 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, Const 67108843);
+ { 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 x4, 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 x6, 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 x8, 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 x10, 0x3ffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x12, 0x3ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x14, 0x3ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x16, 0x3ffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x18, 0x3ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x20, 0x3ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x22, 0x3ffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x24, 0x3ffffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x26, 0x3ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x28, 0x3ffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x27, 0x1ffffff);
+ { uint32_t x74 = cmovznz32(x73, 0x0, 0xffffffff);
+ { uint32_t x75 = (x74 & Const 67108843);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x30, Return x75);
+ { uint32_t x79 = (x74 & 0x3ffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x33, Return x79);
+ { uint32_t x83 = (x74 & 0x3ffffff);
+ { uint32_t x85, uint8_t x86 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x36, Return x83);
+ { uint32_t x87 = (x74 & 0x3ffffff);
+ { uint32_t x89, uint8_t x90 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x39, Return x87);
+ { uint32_t x91 = (x74 & 0x3ffffff);
+ { uint32_t x93, uint8_t x94 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x42, Return x91);
+ { uint32_t x95 = (x74 & 0x3ffffff);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x45, Return x95);
+ { uint32_t x99 = (x74 & 0x3ffffff);
+ { uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x48, Return x99);
+ { uint32_t x103 = (x74 & 0x3ffffff);
+ { uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x51, Return x103);
+ { uint32_t x107 = (x74 & 0x3ffffff);
+ { uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x54, Return x107);
+ { uint32_t x111 = (x74 & 0x3ffffff);
+ { uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x57, Return x111);
+ { uint32_t x115 = (x74 & 0x3ffffff);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x60, Return x115);
+ { uint32_t x119 = (x74 & 0x3ffffff);
+ { uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x63, Return x119);
+ { uint32_t x123 = (x74 & 0x3ffffff);
+ { uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x66, Return x123);
+ { uint32_t x127 = (x74 & 0x3ffffff);
+ { uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x69, Return x127);
+ { uint32_t x131 = (x74 & 0x1ffffff);
+ { uint32_t x133, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x72, Return x131);
+ out[0] = x77;
+ out[1] = x81;
+ out[2] = x85;
+ out[3] = x89;
+ out[4] = x93;
+ out[5] = x97;
+ out[6] = x101;
+ out[7] = x105;
+ out[8] = x109;
+ out[9] = x113;
+ out[10] = x117;
+ out[11] = x121;
+ out[12] = x125;
+ out[13] = x129;
+ out[14] = x133;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_15limbs/freezeDisplay.log b/src/Specific/solinas32_2e389m21_15limbs/freezeDisplay.log
new file mode 100644
index 000000000..255be8369
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_15limbs/freezeDisplay.log
@@ -0,0 +1,53 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x27, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, Const 67108843);
+ 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 x4, 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 x6, 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 x8, 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 x10, 0x3ffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x12, 0x3ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x14, 0x3ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x16, 0x3ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x18, 0x3ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x20, 0x3ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x22, 0x3ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x24, 0x3ffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x26, 0x3ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x28, 0x3ffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x27, 0x1ffffff);
+ uint32_t x74 = cmovznz32(x73, 0x0, 0xffffffff);
+ uint32_t x75 = (x74 & Const 67108843);
+ uint32_t x77, uint8_t x78 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x30, Return x75);
+ uint32_t x79 = (x74 & 0x3ffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x33, Return x79);
+ uint32_t x83 = (x74 & 0x3ffffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x36, Return x83);
+ uint32_t x87 = (x74 & 0x3ffffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x39, Return x87);
+ uint32_t x91 = (x74 & 0x3ffffff);
+ uint32_t x93, uint8_t x94 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x42, Return x91);
+ uint32_t x95 = (x74 & 0x3ffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x45, Return x95);
+ uint32_t x99 = (x74 & 0x3ffffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x48, Return x99);
+ uint32_t x103 = (x74 & 0x3ffffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x51, Return x103);
+ uint32_t x107 = (x74 & 0x3ffffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x54, Return x107);
+ uint32_t x111 = (x74 & 0x3ffffff);
+ uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x57, Return x111);
+ uint32_t x115 = (x74 & 0x3ffffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x60, Return x115);
+ uint32_t x119 = (x74 & 0x3ffffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x63, Return x119);
+ uint32_t x123 = (x74 & 0x3ffffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x66, Return x123);
+ uint32_t x127 = (x74 & 0x3ffffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x69, Return x127);
+ uint32_t x131 = (x74 & 0x1ffffff);
+ uint32_t x133, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x72, Return x131);
+ (Return x133, Return x129, Return x125, Return x121, Return x117, Return x113, Return x109, Return x105, Return x101, Return x97, Return x93, Return x89, Return x85, Return x81, Return x77))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_16limbs/feadd.c b/src/Specific/solinas32_2e389m21_16limbs/feadd.c
new file mode 100644
index 000000000..18b150e21
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/feadd.c
@@ -0,0 +1,51 @@
+static void feadd(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = (x5 + x35);
+ out[1] = (x7 + x37);
+ out[2] = (x9 + x39);
+ out[3] = (x11 + x41);
+ out[4] = (x13 + x43);
+ out[5] = (x15 + x45);
+ out[6] = (x17 + x47);
+ out[7] = (x19 + x49);
+ out[8] = (x21 + x51);
+ out[9] = (x23 + x53);
+ out[10] = (x25 + x55);
+ out[11] = (x27 + x57);
+ out[12] = (x29 + x59);
+ out[13] = (x31 + x61);
+ out[14] = (x33 + x63);
+ out[15] = (x32 + x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_16limbs/feaddDisplay.log b/src/Specific/solinas32_2e389m21_16limbs/feaddDisplay.log
new file mode 100644
index 000000000..130c31964
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ ((x32 + x62), (x33 + x63), (x31 + x61), (x29 + x59), (x27 + x57), (x25 + x55), (x23 + x53), (x21 + x51), (x19 + x49), (x17 + x47), (x15 + x45), (x13 + x43), (x11 + x41), (x9 + x39), (x7 + x37), (x5 + x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_16limbs/fesquare.c b/src/Specific/solinas32_2e389m21_16limbs/fesquare.c
new file mode 100644
index 000000000..430ed0b75
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/fesquare.c
@@ -0,0 +1,104 @@
+static void fesquare(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x31 = (((uint64_t)x2 * x29) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + (((uint64_t)x8 * x26) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + (((uint64_t)x26 * x8) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x29 * x2))))))))))))))));
+ { uint64_t x32 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + ((0x2 * ((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) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (0x15 * ((uint64_t)x29 * x29)));
+ { uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((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)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * (((uint64_t)x30 * x29) + ((uint64_t)x29 * x30))));
+ { uint64_t x34 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((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)) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ { uint64_t x35 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * (((uint64_t)x26 * x29) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((uint64_t)x29 * x26))))));
+ { uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x15 * (((uint64_t)x24 * x29) + (((uint64_t)x26 * x30) + ((0x2 * ((uint64_t)x28 * x28)) + (((uint64_t)x30 * x26) + ((uint64_t)x29 * x24)))))));
+ { uint64_t x37 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((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)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x15 * ((0x2 * ((uint64_t)x22 * x29)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ { uint64_t x38 = ((((uint64_t)x2 * x18) + ((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)x18 * x2))))))))) + (0x15 * (((uint64_t)x20 * x29) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + (((uint64_t)x26 * x26) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + ((uint64_t)x29 * x20)))))))));
+ { uint64_t x39 = ((((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)))))))) + (0x15 * (((uint64_t)x18 * x29) + (((uint64_t)x20 * x30) + ((0x2 * ((uint64_t)x22 * x28)) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + ((0x2 * ((uint64_t)x28 * x22)) + (((uint64_t)x30 * x20) + ((uint64_t)x29 * x18))))))))));
+ { uint64_t x40 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x29)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ { uint64_t x41 = ((((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)))))) + (0x15 * (((uint64_t)x14 * x29) + ((0x2 * ((uint64_t)x16 * x30)) + ((0x2 * ((uint64_t)x18 * x28)) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + ((0x2 * ((uint64_t)x28 * x18)) + ((0x2 * ((uint64_t)x30 * x16)) + ((uint64_t)x29 * x14))))))))))));
+ { uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x15 * (((uint64_t)x12 * x29) + (((uint64_t)x14 * x30) + ((0x2 * ((uint64_t)x16 * x28)) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + ((0x2 * ((uint64_t)x28 * x16)) + (((uint64_t)x30 * x14) + ((uint64_t)x29 * x12)))))))))))));
+ { uint64_t x43 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x15 * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ { uint64_t x44 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x15 * (((uint64_t)x8 * x29) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((uint64_t)x29 * x8)))))))))))))));
+ { uint64_t x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x15 * (((uint64_t)x6 * x29) + (((uint64_t)x8 * x30) + ((0x2 * ((uint64_t)x10 * x28)) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + ((0x2 * ((uint64_t)x28 * x10)) + (((uint64_t)x30 * x8) + ((uint64_t)x29 * x6))))))))))))))));
+ { uint64_t x46 = (((uint64_t)x2 * x2) + (0x15 * ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ { uint64_t x47 = (x46 >> 0x19);
+ { uint32_t x48 = ((uint32_t)x46 & 0x1ffffff);
+ { uint64_t x49 = (x47 + x45);
+ { uint64_t x50 = (x49 >> 0x18);
+ { uint32_t x51 = ((uint32_t)x49 & 0xffffff);
+ { uint64_t x52 = (x50 + x44);
+ { uint64_t x53 = (x52 >> 0x18);
+ { uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ { uint64_t x55 = (x53 + x43);
+ { uint64_t x56 = (x55 >> 0x19);
+ { uint32_t x57 = ((uint32_t)x55 & 0x1ffffff);
+ { uint64_t x58 = (x56 + x42);
+ { uint64_t x59 = (x58 >> 0x18);
+ { uint32_t x60 = ((uint32_t)x58 & 0xffffff);
+ { uint64_t x61 = (x59 + x41);
+ { uint64_t x62 = (x61 >> 0x18);
+ { uint32_t x63 = ((uint32_t)x61 & 0xffffff);
+ { uint64_t x64 = (x62 + x40);
+ { uint64_t x65 = (x64 >> 0x19);
+ { uint32_t x66 = ((uint32_t)x64 & 0x1ffffff);
+ { uint64_t x67 = (x65 + x39);
+ { uint64_t x68 = (x67 >> 0x18);
+ { uint32_t x69 = ((uint32_t)x67 & 0xffffff);
+ { uint64_t x70 = (x68 + x38);
+ { uint64_t x71 = (x70 >> 0x18);
+ { uint32_t x72 = ((uint32_t)x70 & 0xffffff);
+ { uint64_t x73 = (x71 + x37);
+ { uint64_t x74 = (x73 >> 0x19);
+ { uint32_t x75 = ((uint32_t)x73 & 0x1ffffff);
+ { uint64_t x76 = (x74 + x36);
+ { uint64_t x77 = (x76 >> 0x18);
+ { uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ { uint64_t x79 = (x77 + x35);
+ { uint64_t x80 = (x79 >> 0x18);
+ { uint32_t x81 = ((uint32_t)x79 & 0xffffff);
+ { uint64_t x82 = (x80 + x34);
+ { uint64_t x83 = (x82 >> 0x19);
+ { uint32_t x84 = ((uint32_t)x82 & 0x1ffffff);
+ { uint64_t x85 = (x83 + x33);
+ { uint64_t x86 = (x85 >> 0x18);
+ { uint32_t x87 = ((uint32_t)x85 & 0xffffff);
+ { uint64_t x88 = (x86 + x32);
+ { uint64_t x89 = (x88 >> 0x18);
+ { uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ { uint64_t x91 = (x89 + x31);
+ { uint64_t x92 = (x91 >> 0x18);
+ { uint32_t x93 = ((uint32_t)x91 & 0xffffff);
+ { uint64_t x94 = (x48 + (0x15 * x92));
+ { uint32_t x95 = (uint32_t) (x94 >> 0x19);
+ { uint32_t x96 = ((uint32_t)x94 & 0x1ffffff);
+ { uint32_t x97 = (x95 + x51);
+ { uint32_t x98 = (x97 >> 0x18);
+ { uint32_t x99 = (x97 & 0xffffff);
+ out[0] = x96;
+ out[1] = x99;
+ out[2] = (x98 + x54);
+ out[3] = x57;
+ out[4] = x60;
+ out[5] = x63;
+ out[6] = x66;
+ out[7] = x69;
+ out[8] = x72;
+ out[9] = x75;
+ out[10] = x78;
+ out[11] = x81;
+ out[12] = x84;
+ out[13] = x87;
+ out[14] = x90;
+ out[15] = x93;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_16limbs/fesquareDisplay.log b/src/Specific/solinas32_2e389m21_16limbs/fesquareDisplay.log
new file mode 100644
index 000000000..1e95b9d9b
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/fesquareDisplay.log
@@ -0,0 +1,76 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x31 = (((uint64_t)x2 * x29) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + (((uint64_t)x8 * x26) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + (((uint64_t)x26 * x8) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x29 * x2))))))))))))))));
+ uint64_t x32 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + ((0x2 * ((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) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (0x15 * ((uint64_t)x29 * x29)));
+ uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((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)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * (((uint64_t)x30 * x29) + ((uint64_t)x29 * x30))));
+ uint64_t x34 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + (((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)) + (((uint64_t)x20 * x8) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ uint64_t x35 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * (((uint64_t)x26 * x29) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((uint64_t)x29 * x26))))));
+ uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x15 * (((uint64_t)x24 * x29) + (((uint64_t)x26 * x30) + ((0x2 * ((uint64_t)x28 * x28)) + (((uint64_t)x30 * x26) + ((uint64_t)x29 * x24)))))));
+ uint64_t x37 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((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)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x15 * ((0x2 * ((uint64_t)x22 * x29)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ uint64_t x38 = ((((uint64_t)x2 * x18) + ((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)x18 * x2))))))))) + (0x15 * (((uint64_t)x20 * x29) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + (((uint64_t)x26 * x26) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + ((uint64_t)x29 * x20)))))))));
+ uint64_t x39 = ((((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)))))))) + (0x15 * (((uint64_t)x18 * x29) + (((uint64_t)x20 * x30) + ((0x2 * ((uint64_t)x22 * x28)) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + ((0x2 * ((uint64_t)x28 * x22)) + (((uint64_t)x30 * x20) + ((uint64_t)x29 * x18))))))))));
+ uint64_t x40 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x29)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ uint64_t x41 = ((((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)))))) + (0x15 * (((uint64_t)x14 * x29) + ((0x2 * ((uint64_t)x16 * x30)) + ((0x2 * ((uint64_t)x18 * x28)) + (((uint64_t)x20 * x26) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + (((uint64_t)x26 * x20) + ((0x2 * ((uint64_t)x28 * x18)) + ((0x2 * ((uint64_t)x30 * x16)) + ((uint64_t)x29 * x14))))))))))));
+ uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x15 * (((uint64_t)x12 * x29) + (((uint64_t)x14 * x30) + ((0x2 * ((uint64_t)x16 * x28)) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + ((0x2 * ((uint64_t)x28 * x16)) + (((uint64_t)x30 * x14) + ((uint64_t)x29 * x12)))))))))))));
+ uint64_t x43 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x15 * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ uint64_t x44 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x15 * (((uint64_t)x8 * x29) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + ((0x2 * ((uint64_t)x18 * x22)) + (((uint64_t)x20 * x20) + ((0x2 * ((uint64_t)x22 * x18)) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + ((uint64_t)x29 * x8)))))))))))))));
+ uint64_t x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x15 * (((uint64_t)x6 * x29) + (((uint64_t)x8 * x30) + ((0x2 * ((uint64_t)x10 * x28)) + (((uint64_t)x12 * x26) + (((uint64_t)x14 * x24) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + (((uint64_t)x24 * x14) + (((uint64_t)x26 * x12) + ((0x2 * ((uint64_t)x28 * x10)) + (((uint64_t)x30 * x8) + ((uint64_t)x29 * x6))))))))))))))));
+ uint64_t x46 = (((uint64_t)x2 * x2) + (0x15 * ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ uint64_t x47 = (x46 >> 0x19);
+ uint32_t x48 = ((uint32_t)x46 & 0x1ffffff);
+ uint64_t x49 = (x47 + x45);
+ uint64_t x50 = (x49 >> 0x18);
+ uint32_t x51 = ((uint32_t)x49 & 0xffffff);
+ uint64_t x52 = (x50 + x44);
+ uint64_t x53 = (x52 >> 0x18);
+ uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ uint64_t x55 = (x53 + x43);
+ uint64_t x56 = (x55 >> 0x19);
+ uint32_t x57 = ((uint32_t)x55 & 0x1ffffff);
+ uint64_t x58 = (x56 + x42);
+ uint64_t x59 = (x58 >> 0x18);
+ uint32_t x60 = ((uint32_t)x58 & 0xffffff);
+ uint64_t x61 = (x59 + x41);
+ uint64_t x62 = (x61 >> 0x18);
+ uint32_t x63 = ((uint32_t)x61 & 0xffffff);
+ uint64_t x64 = (x62 + x40);
+ uint64_t x65 = (x64 >> 0x19);
+ uint32_t x66 = ((uint32_t)x64 & 0x1ffffff);
+ uint64_t x67 = (x65 + x39);
+ uint64_t x68 = (x67 >> 0x18);
+ uint32_t x69 = ((uint32_t)x67 & 0xffffff);
+ uint64_t x70 = (x68 + x38);
+ uint64_t x71 = (x70 >> 0x18);
+ uint32_t x72 = ((uint32_t)x70 & 0xffffff);
+ uint64_t x73 = (x71 + x37);
+ uint64_t x74 = (x73 >> 0x19);
+ uint32_t x75 = ((uint32_t)x73 & 0x1ffffff);
+ uint64_t x76 = (x74 + x36);
+ uint64_t x77 = (x76 >> 0x18);
+ uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ uint64_t x79 = (x77 + x35);
+ uint64_t x80 = (x79 >> 0x18);
+ uint32_t x81 = ((uint32_t)x79 & 0xffffff);
+ uint64_t x82 = (x80 + x34);
+ uint64_t x83 = (x82 >> 0x19);
+ uint32_t x84 = ((uint32_t)x82 & 0x1ffffff);
+ uint64_t x85 = (x83 + x33);
+ uint64_t x86 = (x85 >> 0x18);
+ uint32_t x87 = ((uint32_t)x85 & 0xffffff);
+ uint64_t x88 = (x86 + x32);
+ uint64_t x89 = (x88 >> 0x18);
+ uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ uint64_t x91 = (x89 + x31);
+ uint64_t x92 = (x91 >> 0x18);
+ uint32_t x93 = ((uint32_t)x91 & 0xffffff);
+ uint64_t x94 = (x48 + (0x15 * x92));
+ uint32_t x95 = (uint32_t) (x94 >> 0x19);
+ uint32_t x96 = ((uint32_t)x94 & 0x1ffffff);
+ uint32_t x97 = (x95 + x51);
+ uint32_t x98 = (x97 >> 0x18);
+ uint32_t x99 = (x97 & 0xffffff);
+ return (Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, Return x57, (x98 + x54), Return x99, Return x96))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_16limbs/fesub.c b/src/Specific/solinas32_2e389m21_16limbs/fesub.c
new file mode 100644
index 000000000..dd4a1b3cc
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/fesub.c
@@ -0,0 +1,51 @@
+static void fesub(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = ((Const 67108822 + x5) - x35);
+ out[1] = ((0x1fffffe + x7) - x37);
+ out[2] = ((0x1fffffe + x9) - x39);
+ out[3] = ((0x3fffffe + x11) - x41);
+ out[4] = ((0x1fffffe + x13) - x43);
+ out[5] = ((0x1fffffe + x15) - x45);
+ out[6] = ((0x3fffffe + x17) - x47);
+ out[7] = ((0x1fffffe + x19) - x49);
+ out[8] = ((0x1fffffe + x21) - x51);
+ out[9] = ((0x3fffffe + x23) - x53);
+ out[10] = ((0x1fffffe + x25) - x55);
+ out[11] = ((0x1fffffe + x27) - x57);
+ out[12] = ((0x3fffffe + x29) - x59);
+ out[13] = ((0x1fffffe + x31) - x61);
+ out[14] = ((0x1fffffe + x33) - x63);
+ out[15] = ((0x1fffffe + x32) - x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_16limbs/fesubDisplay.log b/src/Specific/solinas32_2e389m21_16limbs/fesubDisplay.log
new file mode 100644
index 000000000..7ebb8f2f8
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ (((0x1fffffe + x32) - x62), ((0x1fffffe + x33) - x63), ((0x1fffffe + x31) - x61), ((0x3fffffe + x29) - x59), ((0x1fffffe + x27) - x57), ((0x1fffffe + x25) - x55), ((0x3fffffe + x23) - x53), ((0x1fffffe + x21) - x51), ((0x1fffffe + x19) - x49), ((0x3fffffe + x17) - x47), ((0x1fffffe + x15) - x45), ((0x1fffffe + x13) - x43), ((0x3fffffe + x11) - x41), ((0x1fffffe + x9) - x39), ((0x1fffffe + x7) - x37), ((Const 67108822 + x5) - x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e389m21_16limbs/freeze.c b/src/Specific/solinas32_2e389m21_16limbs/freeze.c
new file mode 100644
index 000000000..33dc4e655
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/freeze.c
@@ -0,0 +1,84 @@
+static void freeze(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554411);
+ { uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
+ { 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 x6, 0xffffff);
+ { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0x1ffffff);
+ { 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 x10, 0xffffff);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0xffffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0x1ffffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0xffffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0xffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0x1ffffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0xffffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0xffffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0x1ffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0xffffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0xffffff);
+ { uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ { uint32_t x80 = (x79 & Const 33554411);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ { uint32_t x84 = (x79 & 0xffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ { uint32_t x88 = (x79 & 0xffffff);
+ { uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ { uint32_t x92 = (x79 & 0x1ffffff);
+ { uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ { uint32_t x96 = (x79 & 0xffffff);
+ { uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ { uint32_t x100 = (x79 & 0xffffff);
+ { uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ { uint32_t x104 = (x79 & 0x1ffffff);
+ { uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ { uint32_t x108 = (x79 & 0xffffff);
+ { uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ { uint32_t x112 = (x79 & 0xffffff);
+ { uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ { uint32_t x116 = (x79 & 0x1ffffff);
+ { uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ { uint32_t x120 = (x79 & 0xffffff);
+ { uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ { uint32_t x124 = (x79 & 0xffffff);
+ { uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ { uint32_t x128 = (x79 & 0x1ffffff);
+ { uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ { uint32_t x132 = (x79 & 0xffffff);
+ { uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ { uint32_t x136 = (x79 & 0xffffff);
+ { uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ { uint32_t x140 = (x79 & 0xffffff);
+ { uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ out[0] = x82;
+ out[1] = x86;
+ out[2] = x90;
+ out[3] = x94;
+ out[4] = x98;
+ out[5] = x102;
+ out[6] = x106;
+ out[7] = x110;
+ out[8] = x114;
+ out[9] = x118;
+ out[10] = x122;
+ out[11] = x126;
+ out[12] = x130;
+ out[13] = x134;
+ out[14] = x138;
+ out[15] = x142;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e389m21_16limbs/freezeDisplay.log b/src/Specific/solinas32_2e389m21_16limbs/freezeDisplay.log
new file mode 100644
index 000000000..a9ecd8117
--- /dev/null
+++ b/src/Specific/solinas32_2e389m21_16limbs/freezeDisplay.log
@@ -0,0 +1,56 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554411);
+ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0xffffff);
+ 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 x6, 0xffffff);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0x1ffffff);
+ 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 x10, 0xffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0xffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0x1ffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0xffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0xffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0x1ffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0xffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0xffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0x1ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0xffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0xffffff);
+ uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ uint32_t x80 = (x79 & Const 33554411);
+ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ uint32_t x84 = (x79 & 0xffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ uint32_t x88 = (x79 & 0xffffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ uint32_t x92 = (x79 & 0x1ffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ uint32_t x96 = (x79 & 0xffffff);
+ uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ uint32_t x100 = (x79 & 0xffffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ uint32_t x104 = (x79 & 0x1ffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ uint32_t x108 = (x79 & 0xffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ uint32_t x112 = (x79 & 0xffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ uint32_t x116 = (x79 & 0x1ffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ uint32_t x120 = (x79 & 0xffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ uint32_t x124 = (x79 & 0xffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ uint32_t x128 = (x79 & 0x1ffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ uint32_t x132 = (x79 & 0xffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ uint32_t x136 = (x79 & 0xffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ uint32_t x140 = (x79 & 0xffffff);
+ uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ (Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102, Return x98, Return x94, Return x90, Return x86, Return x82))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e401m31_17limbs/feadd.c b/src/Specific/solinas32_2e401m31_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e401m31_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e401m31_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e401m31_17limbs/fesquare.c b/src/Specific/solinas32_2e401m31_17limbs/fesquare.c
new file mode 100644
index 000000000..598997beb
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/fesquare.c
@@ -0,0 +1,110 @@
+static void fesquare(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x33 = (((uint64_t)x2 * x31) + (((uint64_t)x4 * x32) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + ((0x2 * ((uint64_t)x10 * x26)) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + ((0x2 * ((uint64_t)x26 * x10)) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + (((uint64_t)x32 * x4) + ((uint64_t)x31 * x2)))))))))))))))));
+ { uint64_t x34 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + (((uint64_t)x12 * x22) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + (((uint64_t)x22 * x12) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x1f * (0x2 * ((uint64_t)x31 * x31))));
+ { uint64_t x35 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + ((0x2 * ((uint64_t)x6 * x26)) + (((uint64_t)x8 * x24) + (((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)x24 * x8) + ((0x2 * ((uint64_t)x26 * x6)) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x1f * (((uint64_t)x32 * x31) + ((uint64_t)x31 * x32))));
+ { uint64_t x36 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + (((uint64_t)x8 * x22) + ((0x2 * ((uint64_t)x10 * x20)) + (((uint64_t)x12 * x18) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + (((uint64_t)x18 * x12) + ((0x2 * ((uint64_t)x20 * x10)) + (((uint64_t)x22 * x8) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x1f * ((0x2 * ((uint64_t)x30 * x31)) + (((uint64_t)x32 * x32) + (0x2 * ((uint64_t)x31 * x30))))));
+ { uint64_t x37 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((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)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x1f * (((uint64_t)x28 * x31) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + ((uint64_t)x31 * x28))))));
+ { uint64_t x38 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + ((0x2 * ((uint64_t)x6 * x20)) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + ((0x2 * ((uint64_t)x20 * x6)) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x1f * ((0x2 * ((uint64_t)x26 * x31)) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (0x2 * ((uint64_t)x31 * x26))))))));
+ { uint64_t x39 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + ((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)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0x1f * ((0x2 * ((uint64_t)x24 * x31)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + (0x2 * ((uint64_t)x31 * x24)))))))));
+ { uint64_t x40 = ((((uint64_t)x2 * x20) + (((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)) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x1f * (((uint64_t)x22 * x31) + (((uint64_t)x24 * x32) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + (((uint64_t)x32 * x24) + ((uint64_t)x31 * x22)))))))));
+ { uint64_t x41 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x1f * ((0x2 * ((uint64_t)x20 * x31)) + (((uint64_t)x22 * x32) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (((uint64_t)x32 * x22) + (0x2 * ((uint64_t)x31 * x20)))))))))));
+ { uint64_t x42 = ((((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)))))))) + (0x1f * (((uint64_t)x18 * x31) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + ((0x2 * ((uint64_t)x26 * x26)) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + ((uint64_t)x31 * x18)))))))))));
+ { uint64_t x43 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x1f * ((0x2 * ((uint64_t)x16 * x31)) + (((uint64_t)x18 * x32) + ((0x2 * ((uint64_t)x20 * x30)) + (((uint64_t)x22 * x28) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + (((uint64_t)x28 * x22) + ((0x2 * ((uint64_t)x30 * x20)) + (((uint64_t)x32 * x18) + (0x2 * ((uint64_t)x31 * x16)))))))))))));
+ { uint64_t x44 = ((((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)))))) + (0x1f * ((0x2 * ((uint64_t)x14 * x31)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + (0x2 * ((uint64_t)x31 * x14))))))))))))));
+ { uint64_t x45 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + ((0x2 * ((uint64_t)x6 * x6)) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x1f * (((uint64_t)x12 * x31) + (((uint64_t)x14 * x32) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + ((0x2 * ((uint64_t)x20 * x26)) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + ((0x2 * ((uint64_t)x26 * x20)) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + (((uint64_t)x32 * x14) + ((uint64_t)x31 * x12))))))))))))));
+ { uint64_t x46 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x1f * ((0x2 * ((uint64_t)x10 * x31)) + (((uint64_t)x12 * x32) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + (((uint64_t)x32 * x12) + (0x2 * ((uint64_t)x31 * x10))))))))))))))));
+ { uint64_t x47 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x1f * (((uint64_t)x8 * x31) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + ((0x2 * ((uint64_t)x16 * x26)) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + ((0x2 * ((uint64_t)x26 * x16)) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + ((uint64_t)x31 * x8))))))))))))))));
+ { uint64_t x48 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1f * ((0x2 * ((uint64_t)x6 * x31)) + (((uint64_t)x8 * x32) + ((0x2 * ((uint64_t)x10 * x30)) + (((uint64_t)x12 * x28) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + (((uint64_t)x28 * x12) + ((0x2 * ((uint64_t)x30 * x10)) + (((uint64_t)x32 * x8) + (0x2 * ((uint64_t)x31 * x6))))))))))))))))));
+ { uint64_t x49 = (((uint64_t)x2 * x2) + (0x1f * ((0x2 * ((uint64_t)x4 * x31)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + (0x2 * ((uint64_t)x31 * x4)))))))))))))))))));
+ { uint64_t x50 = (x49 >> 0x18);
+ { uint32_t x51 = ((uint32_t)x49 & 0xffffff);
+ { uint64_t x52 = (x50 + x48);
+ { uint64_t x53 = (x52 >> 0x18);
+ { uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ { uint64_t x55 = (x53 + x47);
+ { uint64_t x56 = (x55 >> 0x17);
+ { uint32_t x57 = ((uint32_t)x55 & 0x7fffff);
+ { uint64_t x58 = (x56 + x46);
+ { uint64_t x59 = (x58 >> 0x18);
+ { uint32_t x60 = ((uint32_t)x58 & 0xffffff);
+ { uint64_t x61 = (x59 + x45);
+ { uint64_t x62 = (x61 >> 0x17);
+ { uint32_t x63 = ((uint32_t)x61 & 0x7fffff);
+ { uint64_t x64 = (x62 + x44);
+ { uint64_t x65 = (x64 >> 0x18);
+ { uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ { uint64_t x67 = (x65 + x43);
+ { uint64_t x68 = (x67 >> 0x18);
+ { uint32_t x69 = ((uint32_t)x67 & 0xffffff);
+ { uint64_t x70 = (x68 + x42);
+ { uint64_t x71 = (x70 >> 0x17);
+ { uint32_t x72 = ((uint32_t)x70 & 0x7fffff);
+ { uint64_t x73 = (x71 + x41);
+ { uint64_t x74 = (x73 >> 0x18);
+ { uint32_t x75 = ((uint32_t)x73 & 0xffffff);
+ { uint64_t x76 = (x74 + x40);
+ { uint64_t x77 = (x76 >> 0x17);
+ { uint32_t x78 = ((uint32_t)x76 & 0x7fffff);
+ { uint64_t x79 = (x77 + x39);
+ { uint64_t x80 = (x79 >> 0x18);
+ { uint32_t x81 = ((uint32_t)x79 & 0xffffff);
+ { uint64_t x82 = (x80 + x38);
+ { uint64_t x83 = (x82 >> 0x18);
+ { uint32_t x84 = ((uint32_t)x82 & 0xffffff);
+ { uint64_t x85 = (x83 + x37);
+ { uint64_t x86 = (x85 >> 0x17);
+ { uint32_t x87 = ((uint32_t)x85 & 0x7fffff);
+ { uint64_t x88 = (x86 + x36);
+ { uint64_t x89 = (x88 >> 0x18);
+ { uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ { uint64_t x91 = (x89 + x35);
+ { uint64_t x92 = (x91 >> 0x17);
+ { uint32_t x93 = ((uint32_t)x91 & 0x7fffff);
+ { uint64_t x94 = (x92 + x34);
+ { uint64_t x95 = (x94 >> 0x18);
+ { uint32_t x96 = ((uint32_t)x94 & 0xffffff);
+ { uint64_t x97 = (x95 + x33);
+ { uint64_t x98 = (x97 >> 0x17);
+ { uint32_t x99 = ((uint32_t)x97 & 0x7fffff);
+ { uint64_t x100 = (x51 + (0x1f * x98));
+ { uint32_t x101 = (uint32_t) (x100 >> 0x18);
+ { uint32_t x102 = ((uint32_t)x100 & 0xffffff);
+ { uint32_t x103 = (x101 + x54);
+ { uint32_t x104 = (x103 >> 0x18);
+ { uint32_t x105 = (x103 & 0xffffff);
+ out[0] = x102;
+ out[1] = x105;
+ out[2] = (x104 + x57);
+ out[3] = x60;
+ out[4] = x63;
+ out[5] = x66;
+ out[6] = x69;
+ out[7] = x72;
+ out[8] = x75;
+ out[9] = x78;
+ out[10] = x81;
+ out[11] = x84;
+ out[12] = x87;
+ out[13] = x90;
+ out[14] = x93;
+ out[15] = x96;
+ out[16] = x99;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e401m31_17limbs/fesquareDisplay.log b/src/Specific/solinas32_2e401m31_17limbs/fesquareDisplay.log
new file mode 100644
index 000000000..e6d2e372c
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/fesquareDisplay.log
@@ -0,0 +1,80 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x33 = (((uint64_t)x2 * x31) + (((uint64_t)x4 * x32) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + ((0x2 * ((uint64_t)x10 * x26)) + (((uint64_t)x12 * x24) + (((uint64_t)x14 * x22) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + (((uint64_t)x22 * x14) + (((uint64_t)x24 * x12) + ((0x2 * ((uint64_t)x26 * x10)) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + (((uint64_t)x32 * x4) + ((uint64_t)x31 * x2)))))))))))))))));
+ uint64_t x34 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + (((uint64_t)x12 * x22) + ((0x2 * ((uint64_t)x14 * x20)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + ((0x2 * ((uint64_t)x20 * x14)) + (((uint64_t)x22 * x12) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x1f * (0x2 * ((uint64_t)x31 * x31))));
+ uint64_t x35 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + ((0x2 * ((uint64_t)x6 * x26)) + (((uint64_t)x8 * x24) + (((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)x24 * x8) + ((0x2 * ((uint64_t)x26 * x6)) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x1f * (((uint64_t)x32 * x31) + ((uint64_t)x31 * x32))));
+ uint64_t x36 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + (((uint64_t)x8 * x22) + ((0x2 * ((uint64_t)x10 * x20)) + (((uint64_t)x12 * x18) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + (((uint64_t)x18 * x12) + ((0x2 * ((uint64_t)x20 * x10)) + (((uint64_t)x22 * x8) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x1f * ((0x2 * ((uint64_t)x30 * x31)) + (((uint64_t)x32 * x32) + (0x2 * ((uint64_t)x31 * x30))))));
+ uint64_t x37 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((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)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x1f * (((uint64_t)x28 * x31) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + ((uint64_t)x31 * x28))))));
+ uint64_t x38 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + ((0x2 * ((uint64_t)x6 * x20)) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + ((0x2 * ((uint64_t)x20 * x6)) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x1f * ((0x2 * ((uint64_t)x26 * x31)) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + (0x2 * ((uint64_t)x31 * x26))))))));
+ uint64_t x39 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + ((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)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0x1f * ((0x2 * ((uint64_t)x24 * x31)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + (0x2 * ((uint64_t)x31 * x24)))))))));
+ uint64_t x40 = ((((uint64_t)x2 * x20) + (((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)) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x1f * (((uint64_t)x22 * x31) + (((uint64_t)x24 * x32) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + (((uint64_t)x32 * x24) + ((uint64_t)x31 * x22)))))))));
+ uint64_t x41 = ((((uint64_t)x2 * x18) + ((0x2 * ((uint64_t)x4 * x16)) + ((0x2 * ((uint64_t)x6 * x14)) + (((uint64_t)x8 * x12) + ((0x2 * ((uint64_t)x10 * x10)) + (((uint64_t)x12 * x8) + ((0x2 * ((uint64_t)x14 * x6)) + ((0x2 * ((uint64_t)x16 * x4)) + ((uint64_t)x18 * x2))))))))) + (0x1f * ((0x2 * ((uint64_t)x20 * x31)) + (((uint64_t)x22 * x32) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (((uint64_t)x32 * x22) + (0x2 * ((uint64_t)x31 * x20)))))))))));
+ uint64_t x42 = ((((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)))))))) + (0x1f * (((uint64_t)x18 * x31) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + ((0x2 * ((uint64_t)x26 * x26)) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + ((uint64_t)x31 * x18)))))))))));
+ uint64_t x43 = ((((uint64_t)x2 * x14) + (((uint64_t)x4 * x12) + ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + ((0x2 * ((uint64_t)x10 * x6)) + (((uint64_t)x12 * x4) + ((uint64_t)x14 * x2))))))) + (0x1f * ((0x2 * ((uint64_t)x16 * x31)) + (((uint64_t)x18 * x32) + ((0x2 * ((uint64_t)x20 * x30)) + (((uint64_t)x22 * x28) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + (((uint64_t)x28 * x22) + ((0x2 * ((uint64_t)x30 * x20)) + (((uint64_t)x32 * x18) + (0x2 * ((uint64_t)x31 * x16)))))))))))));
+ uint64_t x44 = ((((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)))))) + (0x1f * ((0x2 * ((uint64_t)x14 * x31)) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + (0x2 * ((uint64_t)x31 * x14))))))))))))));
+ uint64_t x45 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + ((0x2 * ((uint64_t)x6 * x6)) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x1f * (((uint64_t)x12 * x31) + (((uint64_t)x14 * x32) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + ((0x2 * ((uint64_t)x20 * x26)) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + ((0x2 * ((uint64_t)x26 * x20)) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + (((uint64_t)x32 * x14) + ((uint64_t)x31 * x12))))))))))))));
+ uint64_t x46 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x1f * ((0x2 * ((uint64_t)x10 * x31)) + (((uint64_t)x12 * x32) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + (((uint64_t)x32 * x12) + (0x2 * ((uint64_t)x31 * x10))))))))))))))));
+ uint64_t x47 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x1f * (((uint64_t)x8 * x31) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + ((0x2 * ((uint64_t)x16 * x26)) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + ((0x2 * ((uint64_t)x26 * x16)) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + ((uint64_t)x31 * x8))))))))))))))));
+ uint64_t x48 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x1f * ((0x2 * ((uint64_t)x6 * x31)) + (((uint64_t)x8 * x32) + ((0x2 * ((uint64_t)x10 * x30)) + (((uint64_t)x12 * x28) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + (((uint64_t)x28 * x12) + ((0x2 * ((uint64_t)x30 * x10)) + (((uint64_t)x32 * x8) + (0x2 * ((uint64_t)x31 * x6))))))))))))))))));
+ uint64_t x49 = (((uint64_t)x2 * x2) + (0x1f * ((0x2 * ((uint64_t)x4 * x31)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + (0x2 * ((uint64_t)x31 * x4)))))))))))))))))));
+ uint64_t x50 = (x49 >> 0x18);
+ uint32_t x51 = ((uint32_t)x49 & 0xffffff);
+ uint64_t x52 = (x50 + x48);
+ uint64_t x53 = (x52 >> 0x18);
+ uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ uint64_t x55 = (x53 + x47);
+ uint64_t x56 = (x55 >> 0x17);
+ uint32_t x57 = ((uint32_t)x55 & 0x7fffff);
+ uint64_t x58 = (x56 + x46);
+ uint64_t x59 = (x58 >> 0x18);
+ uint32_t x60 = ((uint32_t)x58 & 0xffffff);
+ uint64_t x61 = (x59 + x45);
+ uint64_t x62 = (x61 >> 0x17);
+ uint32_t x63 = ((uint32_t)x61 & 0x7fffff);
+ uint64_t x64 = (x62 + x44);
+ uint64_t x65 = (x64 >> 0x18);
+ uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ uint64_t x67 = (x65 + x43);
+ uint64_t x68 = (x67 >> 0x18);
+ uint32_t x69 = ((uint32_t)x67 & 0xffffff);
+ uint64_t x70 = (x68 + x42);
+ uint64_t x71 = (x70 >> 0x17);
+ uint32_t x72 = ((uint32_t)x70 & 0x7fffff);
+ uint64_t x73 = (x71 + x41);
+ uint64_t x74 = (x73 >> 0x18);
+ uint32_t x75 = ((uint32_t)x73 & 0xffffff);
+ uint64_t x76 = (x74 + x40);
+ uint64_t x77 = (x76 >> 0x17);
+ uint32_t x78 = ((uint32_t)x76 & 0x7fffff);
+ uint64_t x79 = (x77 + x39);
+ uint64_t x80 = (x79 >> 0x18);
+ uint32_t x81 = ((uint32_t)x79 & 0xffffff);
+ uint64_t x82 = (x80 + x38);
+ uint64_t x83 = (x82 >> 0x18);
+ uint32_t x84 = ((uint32_t)x82 & 0xffffff);
+ uint64_t x85 = (x83 + x37);
+ uint64_t x86 = (x85 >> 0x17);
+ uint32_t x87 = ((uint32_t)x85 & 0x7fffff);
+ uint64_t x88 = (x86 + x36);
+ uint64_t x89 = (x88 >> 0x18);
+ uint32_t x90 = ((uint32_t)x88 & 0xffffff);
+ uint64_t x91 = (x89 + x35);
+ uint64_t x92 = (x91 >> 0x17);
+ uint32_t x93 = ((uint32_t)x91 & 0x7fffff);
+ uint64_t x94 = (x92 + x34);
+ uint64_t x95 = (x94 >> 0x18);
+ uint32_t x96 = ((uint32_t)x94 & 0xffffff);
+ uint64_t x97 = (x95 + x33);
+ uint64_t x98 = (x97 >> 0x17);
+ uint32_t x99 = ((uint32_t)x97 & 0x7fffff);
+ uint64_t x100 = (x51 + (0x1f * x98));
+ uint32_t x101 = (uint32_t) (x100 >> 0x18);
+ uint32_t x102 = ((uint32_t)x100 & 0xffffff);
+ uint32_t x103 = (x101 + x54);
+ uint32_t x104 = (x103 >> 0x18);
+ uint32_t x105 = (x103 & 0xffffff);
+ return (Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, (x104 + x57), Return x105, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e401m31_17limbs/fesub.c b/src/Specific/solinas32_2e401m31_17limbs/fesub.c
new file mode 100644
index 000000000..56268d308
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((Const 33554370 + x5) - x37);
+ out[1] = ((0x1fffffe + x7) - x39);
+ out[2] = ((0xfffffe + x9) - x41);
+ out[3] = ((0x1fffffe + x11) - x43);
+ out[4] = ((0xfffffe + x13) - x45);
+ out[5] = ((0x1fffffe + x15) - x47);
+ out[6] = ((0x1fffffe + x17) - x49);
+ out[7] = ((0xfffffe + x19) - x51);
+ out[8] = ((0x1fffffe + x21) - x53);
+ out[9] = ((0xfffffe + x23) - x55);
+ out[10] = ((0x1fffffe + x25) - x57);
+ out[11] = ((0x1fffffe + x27) - x59);
+ out[12] = ((0xfffffe + x29) - x61);
+ out[13] = ((0x1fffffe + x31) - x63);
+ out[14] = ((0xfffffe + x33) - x65);
+ out[15] = ((0x1fffffe + x35) - x67);
+ out[16] = ((0xfffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e401m31_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e401m31_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..cbaedfc26
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0xfffffe + x34) - x66), ((0x1fffffe + x35) - x67), ((0xfffffe + x33) - x65), ((0x1fffffe + x31) - x63), ((0xfffffe + x29) - x61), ((0x1fffffe + x27) - x59), ((0x1fffffe + x25) - x57), ((0xfffffe + x23) - x55), ((0x1fffffe + x21) - x53), ((0xfffffe + x19) - x51), ((0x1fffffe + x17) - x49), ((0x1fffffe + x15) - x47), ((0xfffffe + x13) - x45), ((0x1fffffe + x11) - x43), ((0xfffffe + x9) - x41), ((0x1fffffe + x7) - x39), ((Const 33554370 + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e401m31_17limbs/freeze.c b/src/Specific/solinas32_2e401m31_17limbs/freeze.c
new file mode 100644
index 000000000..162e05c9f
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, Const 16777185);
+ { 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 x4, 0xffffff);
+ { uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x7fffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0xffffff);
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0x7fffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0xffffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0xffffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x7fffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0xffffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x7fffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0xffffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0xffffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x7fffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0xffffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x7fffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0xffffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x7fffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & Const 16777185);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0xffffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0x7fffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0xffffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0x7fffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0xffffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0xffffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0x7fffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0xffffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0x7fffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0xffffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0xffffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0x7fffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0xffffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0x7fffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0xffffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0x7fffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e401m31_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e401m31_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..a735c9b96
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, Const 16777185);
+ 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 x4, 0xffffff);
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x7fffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0xffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0x7fffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0xffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0xffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x7fffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0xffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x7fffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0xffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0xffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x7fffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0xffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x7fffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0xffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x7fffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & Const 16777185);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0xffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0x7fffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0xffffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0x7fffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0xffffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0xffffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0x7fffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0xffffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0x7fffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0xffffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0xffffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0x7fffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0xffffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0x7fffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0xffffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0x7fffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_16limbs/feadd.c b/src/Specific/solinas32_2e413m21_16limbs/feadd.c
new file mode 100644
index 000000000..18b150e21
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/feadd.c
@@ -0,0 +1,51 @@
+static void feadd(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = (x5 + x35);
+ out[1] = (x7 + x37);
+ out[2] = (x9 + x39);
+ out[3] = (x11 + x41);
+ out[4] = (x13 + x43);
+ out[5] = (x15 + x45);
+ out[6] = (x17 + x47);
+ out[7] = (x19 + x49);
+ out[8] = (x21 + x51);
+ out[9] = (x23 + x53);
+ out[10] = (x25 + x55);
+ out[11] = (x27 + x57);
+ out[12] = (x29 + x59);
+ out[13] = (x31 + x61);
+ out[14] = (x33 + x63);
+ out[15] = (x32 + x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_16limbs/feaddDisplay.log b/src/Specific/solinas32_2e413m21_16limbs/feaddDisplay.log
new file mode 100644
index 000000000..130c31964
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ ((x32 + x62), (x33 + x63), (x31 + x61), (x29 + x59), (x27 + x57), (x25 + x55), (x23 + x53), (x21 + x51), (x19 + x49), (x17 + x47), (x15 + x45), (x13 + x43), (x11 + x41), (x9 + x39), (x7 + x37), (x5 + x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_16limbs/fesquare.c b/src/Specific/solinas32_2e413m21_16limbs/fesquare.c
new file mode 100644
index 000000000..08b5c83ec
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/fesquare.c
@@ -0,0 +1,104 @@
+static void fesquare(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x31 = (((uint64_t)x2 * x29) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x29 * x2))))))))))))))));
+ { uint64_t x32 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + ((0x2 * ((uint64_t)x10 * x22)) + ((0x2 * ((uint64_t)x12 * x20)) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + ((0x2 * ((uint64_t)x20 * x12)) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x15 * (0x2 * ((uint64_t)x29 * x29))));
+ { uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x30 * x29)) + (0x2 * ((uint64_t)x29 * x30)))));
+ { uint64_t x34 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + ((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)) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ { uint64_t x35 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((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)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * ((0x2 * ((uint64_t)x26 * x29)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (0x2 * ((uint64_t)x29 * x26)))))));
+ { uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x15 * (((uint64_t)x24 * x29) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + ((uint64_t)x29 * x24)))))));
+ { uint64_t x37 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x15 * ((0x2 * ((uint64_t)x22 * x29)) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ { uint64_t x38 = ((((uint64_t)x2 * x18) + (((uint64_t)x4 * x16) + (((uint64_t)x6 * x14) + ((0x2 * ((uint64_t)x8 * x12)) + ((0x2 * ((uint64_t)x10 * x10)) + ((0x2 * ((uint64_t)x12 * x8)) + (((uint64_t)x14 * x6) + (((uint64_t)x16 * x4) + ((uint64_t)x18 * x2))))))))) + (0x15 * ((0x2 * ((uint64_t)x20 * x29)) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + (0x2 * ((uint64_t)x29 * x20))))))))));
+ { uint64_t x39 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + ((0x2 * ((uint64_t)x6 * x12)) + ((0x2 * ((uint64_t)x8 * x10)) + ((0x2 * ((uint64_t)x10 * x8)) + ((0x2 * ((uint64_t)x12 * x6)) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x15 * ((0x2 * ((uint64_t)x18 * x29)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + (0x2 * ((uint64_t)x29 * x18)))))))))));
+ { uint64_t x40 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x29)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + (((uint64_t)x24 * x24) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ { uint64_t x41 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x15 * (((uint64_t)x14 * x29) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + ((uint64_t)x29 * x14))))))))))));
+ { uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x15 * ((0x2 * ((uint64_t)x12 * x29)) + (((uint64_t)x14 * x30) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + (((uint64_t)x30 * x14) + (0x2 * ((uint64_t)x29 * x12))))))))))))));
+ { uint64_t x43 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x15 * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ { uint64_t x44 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x15 * ((0x2 * ((uint64_t)x8 * x29)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (0x2 * ((uint64_t)x29 * x8))))))))))))))));
+ { ℤ x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x6 * x29)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + (((uint64_t)x14 * x24) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + (((uint64_t)x24 * x14) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + (0x2 * ((uint64_t)x29 * x6)))))))))))))))));
+ { ℤ x46 = (((uint64_t)x2 * x2) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ { uint64_t x47 = (x46 >> 0x1a);
+ { uint32_t x48 = (x46 & 0x3ffffff);
+ { ℤ x49 = (x47 +ℤ x45);
+ { uint64_t x50 = (x49 >> 0x1a);
+ { uint32_t x51 = (x49 & 0x3ffffff);
+ { uint64_t x52 = (x50 + x44);
+ { uint64_t x53 = (x52 >> 0x1a);
+ { uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ { uint64_t x55 = (x53 + x43);
+ { uint64_t x56 = (x55 >> 0x1a);
+ { uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ { uint64_t x58 = (x56 + x42);
+ { uint64_t x59 = (x58 >> 0x1a);
+ { uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ { uint64_t x61 = (x59 + x41);
+ { uint64_t x62 = (x61 >> 0x19);
+ { uint32_t x63 = ((uint32_t)x61 & 0x1ffffff);
+ { uint64_t x64 = (x62 + x40);
+ { uint64_t x65 = (x64 >> 0x1a);
+ { uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ { uint64_t x67 = (x65 + x39);
+ { uint64_t x68 = (x67 >> 0x1a);
+ { uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ { uint64_t x70 = (x68 + x38);
+ { uint64_t x71 = (x70 >> 0x1a);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ { uint64_t x73 = (x71 + x37);
+ { uint64_t x74 = (x73 >> 0x1a);
+ { uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ { uint64_t x76 = (x74 + x36);
+ { uint64_t x77 = (x76 >> 0x19);
+ { uint32_t x78 = ((uint32_t)x76 & 0x1ffffff);
+ { uint64_t x79 = (x77 + x35);
+ { uint64_t x80 = (x79 >> 0x1a);
+ { uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ { uint64_t x82 = (x80 + x34);
+ { uint64_t x83 = (x82 >> 0x1a);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ { uint64_t x85 = (x83 + x33);
+ { uint64_t x86 = (x85 >> 0x1a);
+ { uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ { uint64_t x88 = (x86 + x32);
+ { uint64_t x89 = (x88 >> 0x1a);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ { uint64_t x91 = (x89 + x31);
+ { uint64_t x92 = (x91 >> 0x19);
+ { uint32_t x93 = ((uint32_t)x91 & 0x1ffffff);
+ { uint64_t x94 = (x48 + (0x15 * x92));
+ { uint32_t x95 = (uint32_t) (x94 >> 0x1a);
+ { uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ { uint32_t x97 = (x95 + x51);
+ { uint32_t x98 = (x97 >> 0x1a);
+ { uint32_t x99 = (x97 & 0x3ffffff);
+ out[0] = x96;
+ out[1] = x99;
+ out[2] = (x98 + x54);
+ out[3] = x57;
+ out[4] = x60;
+ out[5] = x63;
+ out[6] = x66;
+ out[7] = x69;
+ out[8] = x72;
+ out[9] = x75;
+ out[10] = x78;
+ out[11] = x81;
+ out[12] = x84;
+ out[13] = x87;
+ out[14] = x90;
+ out[15] = x93;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_16limbs/fesquareDisplay.log b/src/Specific/solinas32_2e413m21_16limbs/fesquareDisplay.log
new file mode 100644
index 000000000..c0237da32
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/fesquareDisplay.log
@@ -0,0 +1,76 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x31 = (((uint64_t)x2 * x29) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + ((0x2 * ((uint64_t)x12 * x22)) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + ((0x2 * ((uint64_t)x22 * x12)) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x29 * x2))))))))))))))));
+ uint64_t x32 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + ((0x2 * ((uint64_t)x10 * x22)) + ((0x2 * ((uint64_t)x12 * x20)) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + ((0x2 * ((uint64_t)x20 * x12)) + ((0x2 * ((uint64_t)x22 * x10)) + (((uint64_t)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x15 * (0x2 * ((uint64_t)x29 * x29))));
+ uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x30 * x29)) + (0x2 * ((uint64_t)x29 * x30)))));
+ uint64_t x34 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + ((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)) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ uint64_t x35 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((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)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * ((0x2 * ((uint64_t)x26 * x29)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (0x2 * ((uint64_t)x29 * x26)))))));
+ uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + ((0x2 * ((uint64_t)x12 * x12)) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x15 * (((uint64_t)x24 * x29) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + ((uint64_t)x29 * x24)))))));
+ uint64_t x37 = ((((uint64_t)x2 * x20) + (((uint64_t)x4 * x18) + (((uint64_t)x6 * x16) + (((uint64_t)x8 * x14) + ((0x2 * ((uint64_t)x10 * x12)) + ((0x2 * ((uint64_t)x12 * x10)) + (((uint64_t)x14 * x8) + (((uint64_t)x16 * x6) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x15 * ((0x2 * ((uint64_t)x22 * x29)) + (((uint64_t)x24 * x30) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + (((uint64_t)x30 * x24) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ uint64_t x38 = ((((uint64_t)x2 * x18) + (((uint64_t)x4 * x16) + (((uint64_t)x6 * x14) + ((0x2 * ((uint64_t)x8 * x12)) + ((0x2 * ((uint64_t)x10 * x10)) + ((0x2 * ((uint64_t)x12 * x8)) + (((uint64_t)x14 * x6) + (((uint64_t)x16 * x4) + ((uint64_t)x18 * x2))))))))) + (0x15 * ((0x2 * ((uint64_t)x20 * x29)) + ((0x2 * ((uint64_t)x22 * x30)) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + ((0x2 * ((uint64_t)x30 * x22)) + (0x2 * ((uint64_t)x29 * x20))))))))));
+ uint64_t x39 = ((((uint64_t)x2 * x16) + (((uint64_t)x4 * x14) + ((0x2 * ((uint64_t)x6 * x12)) + ((0x2 * ((uint64_t)x8 * x10)) + ((0x2 * ((uint64_t)x10 * x8)) + ((0x2 * ((uint64_t)x12 * x6)) + (((uint64_t)x14 * x4) + ((uint64_t)x16 * x2)))))))) + (0x15 * ((0x2 * ((uint64_t)x18 * x29)) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + (0x2 * ((uint64_t)x29 * x18)))))))))));
+ uint64_t x40 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x29)) + ((0x2 * ((uint64_t)x18 * x30)) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + (((uint64_t)x24 * x24) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + ((0x2 * ((uint64_t)x30 * x18)) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ uint64_t x41 = ((((uint64_t)x2 * x12) + (((uint64_t)x4 * x10) + (((uint64_t)x6 * x8) + (((uint64_t)x8 * x6) + (((uint64_t)x10 * x4) + ((uint64_t)x12 * x2)))))) + (0x15 * (((uint64_t)x14 * x29) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + ((uint64_t)x29 * x14))))))))))));
+ uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x15 * ((0x2 * ((uint64_t)x12 * x29)) + (((uint64_t)x14 * x30) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + ((0x2 * ((uint64_t)x22 * x22)) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + (((uint64_t)x30 * x14) + (0x2 * ((uint64_t)x29 * x12))))))))))))));
+ uint64_t x43 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x15 * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ uint64_t x44 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x15 * ((0x2 * ((uint64_t)x8 * x29)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + ((0x2 * ((uint64_t)x18 * x22)) + ((0x2 * ((uint64_t)x20 * x20)) + ((0x2 * ((uint64_t)x22 * x18)) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (0x2 * ((uint64_t)x29 * x8))))))))))))))));
+ ℤ x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x6 * x29)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + (((uint64_t)x14 * x24) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + (((uint64_t)x24 * x14) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + (0x2 * ((uint64_t)x29 * x6)))))))))))))))));
+ ℤ x46 = (((uint64_t)x2 * x2) +ℤ (0x15 *ℤ ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ uint64_t x47 = (x46 >> 0x1a);
+ uint32_t x48 = (x46 & 0x3ffffff);
+ ℤ x49 = (x47 +ℤ x45);
+ uint64_t x50 = (x49 >> 0x1a);
+ uint32_t x51 = (x49 & 0x3ffffff);
+ uint64_t x52 = (x50 + x44);
+ uint64_t x53 = (x52 >> 0x1a);
+ uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ uint64_t x55 = (x53 + x43);
+ uint64_t x56 = (x55 >> 0x1a);
+ uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ uint64_t x58 = (x56 + x42);
+ uint64_t x59 = (x58 >> 0x1a);
+ uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ uint64_t x61 = (x59 + x41);
+ uint64_t x62 = (x61 >> 0x19);
+ uint32_t x63 = ((uint32_t)x61 & 0x1ffffff);
+ uint64_t x64 = (x62 + x40);
+ uint64_t x65 = (x64 >> 0x1a);
+ uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ uint64_t x67 = (x65 + x39);
+ uint64_t x68 = (x67 >> 0x1a);
+ uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ uint64_t x70 = (x68 + x38);
+ uint64_t x71 = (x70 >> 0x1a);
+ uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ uint64_t x73 = (x71 + x37);
+ uint64_t x74 = (x73 >> 0x1a);
+ uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ uint64_t x76 = (x74 + x36);
+ uint64_t x77 = (x76 >> 0x19);
+ uint32_t x78 = ((uint32_t)x76 & 0x1ffffff);
+ uint64_t x79 = (x77 + x35);
+ uint64_t x80 = (x79 >> 0x1a);
+ uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ uint64_t x82 = (x80 + x34);
+ uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ uint64_t x85 = (x83 + x33);
+ uint64_t x86 = (x85 >> 0x1a);
+ uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ uint64_t x88 = (x86 + x32);
+ uint64_t x89 = (x88 >> 0x1a);
+ uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ uint64_t x91 = (x89 + x31);
+ uint64_t x92 = (x91 >> 0x19);
+ uint32_t x93 = ((uint32_t)x91 & 0x1ffffff);
+ uint64_t x94 = (x48 + (0x15 * x92));
+ uint32_t x95 = (uint32_t) (x94 >> 0x1a);
+ uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ uint32_t x97 = (x95 + x51);
+ uint32_t x98 = (x97 >> 0x1a);
+ uint32_t x99 = (x97 & 0x3ffffff);
+ return (Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, Return x57, (x98 + x54), Return x99, Return x96))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_16limbs/fesub.c b/src/Specific/solinas32_2e413m21_16limbs/fesub.c
new file mode 100644
index 000000000..9f63c1f80
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/fesub.c
@@ -0,0 +1,51 @@
+static void fesub(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = ((Const 134217686 + x5) - x35);
+ out[1] = ((0x7fffffe + x7) - x37);
+ out[2] = ((0x7fffffe + x9) - x39);
+ out[3] = ((0x7fffffe + x11) - x41);
+ out[4] = ((0x7fffffe + x13) - x43);
+ out[5] = ((0x3fffffe + x15) - x45);
+ out[6] = ((0x7fffffe + x17) - x47);
+ out[7] = ((0x7fffffe + x19) - x49);
+ out[8] = ((0x7fffffe + x21) - x51);
+ out[9] = ((0x7fffffe + x23) - x53);
+ out[10] = ((0x3fffffe + x25) - x55);
+ out[11] = ((0x7fffffe + x27) - x57);
+ out[12] = ((0x7fffffe + x29) - x59);
+ out[13] = ((0x7fffffe + x31) - x61);
+ out[14] = ((0x7fffffe + x33) - x63);
+ out[15] = ((0x3fffffe + x32) - x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_16limbs/fesubDisplay.log b/src/Specific/solinas32_2e413m21_16limbs/fesubDisplay.log
new file mode 100644
index 000000000..8334c6c76
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ (((0x3fffffe + x32) - x62), ((0x7fffffe + x33) - x63), ((0x7fffffe + x31) - x61), ((0x7fffffe + x29) - x59), ((0x7fffffe + x27) - x57), ((0x3fffffe + x25) - x55), ((0x7fffffe + x23) - x53), ((0x7fffffe + x21) - x51), ((0x7fffffe + x19) - x49), ((0x7fffffe + x17) - x47), ((0x3fffffe + x15) - x45), ((0x7fffffe + x13) - x43), ((0x7fffffe + x11) - x41), ((0x7fffffe + x9) - x39), ((0x7fffffe + x7) - x37), ((Const 134217686 + x5) - x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_16limbs/freeze.c b/src/Specific/solinas32_2e413m21_16limbs/freeze.c
new file mode 100644
index 000000000..bfb462de2
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/freeze.c
@@ -0,0 +1,84 @@
+static void freeze(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 67108843);
+ { uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0x3ffffff);
+ { uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x6, 0x3ffffff);
+ { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0x3ffffff);
+ { uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x10, 0x3ffffff);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0x1ffffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0x3ffffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0x3ffffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0x3ffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0x3ffffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0x1ffffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0x3ffffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0x3ffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0x3ffffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0x3ffffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x1ffffff);
+ { uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ { uint32_t x80 = (x79 & Const 67108843);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ { uint32_t x84 = (x79 & 0x3ffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ { uint32_t x88 = (x79 & 0x3ffffff);
+ { uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ { uint32_t x92 = (x79 & 0x3ffffff);
+ { uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ { uint32_t x96 = (x79 & 0x3ffffff);
+ { uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ { uint32_t x100 = (x79 & 0x1ffffff);
+ { uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ { uint32_t x104 = (x79 & 0x3ffffff);
+ { uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ { uint32_t x108 = (x79 & 0x3ffffff);
+ { uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ { uint32_t x112 = (x79 & 0x3ffffff);
+ { uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ { uint32_t x116 = (x79 & 0x3ffffff);
+ { uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ { uint32_t x120 = (x79 & 0x1ffffff);
+ { uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ { uint32_t x124 = (x79 & 0x3ffffff);
+ { uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ { uint32_t x128 = (x79 & 0x3ffffff);
+ { uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ { uint32_t x132 = (x79 & 0x3ffffff);
+ { uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ { uint32_t x136 = (x79 & 0x3ffffff);
+ { uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ { uint32_t x140 = (x79 & 0x1ffffff);
+ { uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ out[0] = x82;
+ out[1] = x86;
+ out[2] = x90;
+ out[3] = x94;
+ out[4] = x98;
+ out[5] = x102;
+ out[6] = x106;
+ out[7] = x110;
+ out[8] = x114;
+ out[9] = x118;
+ out[10] = x122;
+ out[11] = x126;
+ out[12] = x130;
+ out[13] = x134;
+ out[14] = x138;
+ out[15] = x142;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_16limbs/freezeDisplay.log b/src/Specific/solinas32_2e413m21_16limbs/freezeDisplay.log
new file mode 100644
index 000000000..fb328ab3b
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_16limbs/freezeDisplay.log
@@ -0,0 +1,56 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 67108843);
+ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0x3ffffff);
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x6, 0x3ffffff);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0x3ffffff);
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x10, 0x3ffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0x1ffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0x3ffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0x3ffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0x3ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0x3ffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0x1ffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0x3ffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0x3ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0x3ffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0x3ffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x1ffffff);
+ uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ uint32_t x80 = (x79 & Const 67108843);
+ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ uint32_t x84 = (x79 & 0x3ffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ uint32_t x88 = (x79 & 0x3ffffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ uint32_t x92 = (x79 & 0x3ffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ uint32_t x96 = (x79 & 0x3ffffff);
+ uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ uint32_t x100 = (x79 & 0x1ffffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ uint32_t x104 = (x79 & 0x3ffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ uint32_t x108 = (x79 & 0x3ffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ uint32_t x112 = (x79 & 0x3ffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ uint32_t x116 = (x79 & 0x3ffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ uint32_t x120 = (x79 & 0x1ffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ uint32_t x124 = (x79 & 0x3ffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ uint32_t x128 = (x79 & 0x3ffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ uint32_t x132 = (x79 & 0x3ffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ uint32_t x136 = (x79 & 0x3ffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ uint32_t x140 = (x79 & 0x1ffffff);
+ uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ (Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102, Return x98, Return x94, Return x90, Return x86, Return x82))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_17limbs/feadd.c b/src/Specific/solinas32_2e413m21_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e413m21_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_17limbs/fesquare.c b/src/Specific/solinas32_2e413m21_17limbs/fesquare.c
new file mode 100644
index 000000000..52d60a008
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/fesquare.c
@@ -0,0 +1,110 @@
+static void fesquare(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x33 = (((uint64_t)x2 * x31) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + (((uint64_t)x14 * x22) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + (((uint64_t)x22 * x14) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x31 * x2)))))))))))))))));
+ { uint64_t x34 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + ((0x2 * ((uint64_t)x10 * x24)) + (((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) + ((0x2 * ((uint64_t)x24 * x10)) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x15 * ((uint64_t)x31 * x31)));
+ { uint64_t x35 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((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)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x15 * (((uint64_t)x32 * x31) + ((uint64_t)x31 * x32))));
+ { uint64_t x36 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + (((uint64_t)x8 * x22) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + (((uint64_t)x22 * x8) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x30 * x31)) + ((0x2 * ((uint64_t)x32 * x32)) + (0x2 * ((uint64_t)x31 * x30))))));
+ { uint64_t x37 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + (((uint64_t)x6 * x22) + (((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)) + (((uint64_t)x20 * x8) + (((uint64_t)x22 * x6) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * (((uint64_t)x28 * x31) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + ((uint64_t)x31 * x28))))));
+ { uint64_t x38 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * (((uint64_t)x26 * x31) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + ((uint64_t)x31 * x26)))))));
+ { uint64_t x39 = ((((uint64_t)x2 * x22) + ((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)x22 * x2))))))))))) + (0x15 * ((0x2 * ((uint64_t)x24 * x31)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + (0x2 * ((uint64_t)x31 * x24)))))))));
+ { uint64_t x40 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((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)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x15 * (((uint64_t)x22 * x31) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((uint64_t)x31 * x22)))))))));
+ { uint64_t x41 = ((((uint64_t)x2 * x18) + ((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)x18 * x2))))))))) + (0x15 * (((uint64_t)x20 * x31) + (((uint64_t)x22 * x32) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + (((uint64_t)x32 * x22) + ((uint64_t)x31 * x20))))))))));
+ { uint64_t x42 = ((((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)))))))) + (0x15 * (((uint64_t)x18 * x31) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + ((uint64_t)x31 * x18)))))))))));
+ { uint64_t x43 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x31)) + ((0x2 * ((uint64_t)x18 * x32)) + ((0x2 * ((uint64_t)x20 * x30)) + (((uint64_t)x22 * x28) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + (((uint64_t)x28 * x22) + ((0x2 * ((uint64_t)x30 * x20)) + ((0x2 * ((uint64_t)x32 * x18)) + (0x2 * ((uint64_t)x31 * x16)))))))))))));
+ { uint64_t x44 = ((((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)))))) + (0x15 * (((uint64_t)x14 * x31) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + ((0x2 * ((uint64_t)x24 * x24)) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((uint64_t)x31 * x14)))))))))))));
+ { uint64_t x45 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x15 * (((uint64_t)x12 * x31) + (((uint64_t)x14 * x32) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + (((uint64_t)x32 * x14) + ((uint64_t)x31 * x12))))))))))))));
+ { uint64_t x46 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x15 * ((0x2 * ((uint64_t)x10 * x31)) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (0x2 * ((uint64_t)x31 * x10))))))))))))))));
+ { uint64_t x47 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x15 * (((uint64_t)x8 * x31) + ((0x2 * ((uint64_t)x10 * x32)) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + ((0x2 * ((uint64_t)x32 * x10)) + ((uint64_t)x31 * x8))))))))))))))));
+ { uint64_t x48 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x15 * (((uint64_t)x6 * x31) + (((uint64_t)x8 * x32) + ((0x2 * ((uint64_t)x10 * x30)) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + (((uint64_t)x20 * x20) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + ((0x2 * ((uint64_t)x30 * x10)) + (((uint64_t)x32 * x8) + ((uint64_t)x31 * x6)))))))))))))))));
+ { uint64_t x49 = (((uint64_t)x2 * x2) + (0x15 * ((0x2 * ((uint64_t)x4 * x31)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + (0x2 * ((uint64_t)x31 * x4)))))))))))))))))));
+ { uint64_t x50 = (x49 >> 0x19);
+ { uint32_t x51 = ((uint32_t)x49 & 0x1ffffff);
+ { uint64_t x52 = (x50 + x48);
+ { uint64_t x53 = (x52 >> 0x18);
+ { uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ { uint64_t x55 = (x53 + x47);
+ { uint64_t x56 = (x55 >> 0x18);
+ { uint32_t x57 = ((uint32_t)x55 & 0xffffff);
+ { uint64_t x58 = (x56 + x46);
+ { uint64_t x59 = (x58 >> 0x19);
+ { uint32_t x60 = ((uint32_t)x58 & 0x1ffffff);
+ { uint64_t x61 = (x59 + x45);
+ { uint64_t x62 = (x61 >> 0x18);
+ { uint32_t x63 = ((uint32_t)x61 & 0xffffff);
+ { uint64_t x64 = (x62 + x44);
+ { uint64_t x65 = (x64 >> 0x18);
+ { uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ { uint64_t x67 = (x65 + x43);
+ { uint64_t x68 = (x67 >> 0x19);
+ { uint32_t x69 = ((uint32_t)x67 & 0x1ffffff);
+ { uint64_t x70 = (x68 + x42);
+ { uint64_t x71 = (x70 >> 0x18);
+ { uint32_t x72 = ((uint32_t)x70 & 0xffffff);
+ { uint64_t x73 = (x71 + x41);
+ { uint64_t x74 = (x73 >> 0x18);
+ { uint32_t x75 = ((uint32_t)x73 & 0xffffff);
+ { uint64_t x76 = (x74 + x40);
+ { uint64_t x77 = (x76 >> 0x18);
+ { uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ { uint64_t x79 = (x77 + x39);
+ { uint64_t x80 = (x79 >> 0x19);
+ { uint32_t x81 = ((uint32_t)x79 & 0x1ffffff);
+ { uint64_t x82 = (x80 + x38);
+ { uint64_t x83 = (x82 >> 0x18);
+ { uint32_t x84 = ((uint32_t)x82 & 0xffffff);
+ { uint64_t x85 = (x83 + x37);
+ { uint64_t x86 = (x85 >> 0x18);
+ { uint32_t x87 = ((uint32_t)x85 & 0xffffff);
+ { uint64_t x88 = (x86 + x36);
+ { uint64_t x89 = (x88 >> 0x19);
+ { uint32_t x90 = ((uint32_t)x88 & 0x1ffffff);
+ { uint64_t x91 = (x89 + x35);
+ { uint64_t x92 = (x91 >> 0x18);
+ { uint32_t x93 = ((uint32_t)x91 & 0xffffff);
+ { uint64_t x94 = (x92 + x34);
+ { uint64_t x95 = (x94 >> 0x18);
+ { uint32_t x96 = ((uint32_t)x94 & 0xffffff);
+ { uint64_t x97 = (x95 + x33);
+ { uint64_t x98 = (x97 >> 0x18);
+ { uint32_t x99 = ((uint32_t)x97 & 0xffffff);
+ { uint64_t x100 = (x51 + (0x15 * x98));
+ { uint32_t x101 = (uint32_t) (x100 >> 0x19);
+ { uint32_t x102 = ((uint32_t)x100 & 0x1ffffff);
+ { uint32_t x103 = (x101 + x54);
+ { uint32_t x104 = (x103 >> 0x18);
+ { uint32_t x105 = (x103 & 0xffffff);
+ out[0] = x102;
+ out[1] = x105;
+ out[2] = (x104 + x57);
+ out[3] = x60;
+ out[4] = x63;
+ out[5] = x66;
+ out[6] = x69;
+ out[7] = x72;
+ out[8] = x75;
+ out[9] = x78;
+ out[10] = x81;
+ out[11] = x84;
+ out[12] = x87;
+ out[13] = x90;
+ out[14] = x93;
+ out[15] = x96;
+ out[16] = x99;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_17limbs/fesquareDisplay.log b/src/Specific/solinas32_2e413m21_17limbs/fesquareDisplay.log
new file mode 100644
index 000000000..4c8f706fe
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/fesquareDisplay.log
@@ -0,0 +1,80 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x33 = (((uint64_t)x2 * x31) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + (((uint64_t)x8 * x28) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + (((uint64_t)x14 * x22) + ((0x2 * ((uint64_t)x16 * x20)) + ((0x2 * ((uint64_t)x18 * x18)) + ((0x2 * ((uint64_t)x20 * x16)) + (((uint64_t)x22 * x14) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + (((uint64_t)x28 * x8) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x31 * x2)))))))))))))))));
+ uint64_t x34 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + ((0x2 * ((uint64_t)x10 * x24)) + (((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) + ((0x2 * ((uint64_t)x24 * x10)) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x15 * ((uint64_t)x31 * x31)));
+ uint64_t x35 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((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)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x15 * (((uint64_t)x32 * x31) + ((uint64_t)x31 * x32))));
+ uint64_t x36 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + (((uint64_t)x8 * x22) + ((0x2 * ((uint64_t)x10 * x20)) + ((0x2 * ((uint64_t)x12 * x18)) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((0x2 * ((uint64_t)x18 * x12)) + ((0x2 * ((uint64_t)x20 * x10)) + (((uint64_t)x22 * x8) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x15 * ((0x2 * ((uint64_t)x30 * x31)) + ((0x2 * ((uint64_t)x32 * x32)) + (0x2 * ((uint64_t)x31 * x30))))));
+ uint64_t x37 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + (((uint64_t)x6 * x22) + (((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)) + (((uint64_t)x20 * x8) + (((uint64_t)x22 * x6) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x15 * (((uint64_t)x28 * x31) + ((0x2 * ((uint64_t)x30 * x32)) + ((0x2 * ((uint64_t)x32 * x30)) + ((uint64_t)x31 * x28))))));
+ uint64_t x38 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x15 * (((uint64_t)x26 * x31) + (((uint64_t)x28 * x32) + ((0x2 * ((uint64_t)x30 * x30)) + (((uint64_t)x32 * x28) + ((uint64_t)x31 * x26)))))));
+ uint64_t x39 = ((((uint64_t)x2 * x22) + ((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)x22 * x2))))))))))) + (0x15 * ((0x2 * ((uint64_t)x24 * x31)) + ((0x2 * ((uint64_t)x26 * x32)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + ((0x2 * ((uint64_t)x32 * x26)) + (0x2 * ((uint64_t)x31 * x24)))))))));
+ uint64_t x40 = ((((uint64_t)x2 * x20) + ((0x2 * ((uint64_t)x4 * x18)) + ((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)x18 * x4)) + ((uint64_t)x20 * x2)))))))))) + (0x15 * (((uint64_t)x22 * x31) + ((0x2 * ((uint64_t)x24 * x32)) + ((0x2 * ((uint64_t)x26 * x30)) + (((uint64_t)x28 * x28) + ((0x2 * ((uint64_t)x30 * x26)) + ((0x2 * ((uint64_t)x32 * x24)) + ((uint64_t)x31 * x22)))))))));
+ uint64_t x41 = ((((uint64_t)x2 * x18) + ((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)x18 * x2))))))))) + (0x15 * (((uint64_t)x20 * x31) + (((uint64_t)x22 * x32) + ((0x2 * ((uint64_t)x24 * x30)) + (((uint64_t)x26 * x28) + (((uint64_t)x28 * x26) + ((0x2 * ((uint64_t)x30 * x24)) + (((uint64_t)x32 * x22) + ((uint64_t)x31 * x20))))))))));
+ uint64_t x42 = ((((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)))))))) + (0x15 * (((uint64_t)x18 * x31) + (((uint64_t)x20 * x32) + (((uint64_t)x22 * x30) + (((uint64_t)x24 * x28) + (((uint64_t)x26 * x26) + (((uint64_t)x28 * x24) + (((uint64_t)x30 * x22) + (((uint64_t)x32 * x20) + ((uint64_t)x31 * x18)))))))))));
+ uint64_t x43 = ((((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))))))) + (0x15 * ((0x2 * ((uint64_t)x16 * x31)) + ((0x2 * ((uint64_t)x18 * x32)) + ((0x2 * ((uint64_t)x20 * x30)) + (((uint64_t)x22 * x28) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + (((uint64_t)x28 * x22) + ((0x2 * ((uint64_t)x30 * x20)) + ((0x2 * ((uint64_t)x32 * x18)) + (0x2 * ((uint64_t)x31 * x16)))))))))))));
+ uint64_t x44 = ((((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)))))) + (0x15 * (((uint64_t)x14 * x31) + ((0x2 * ((uint64_t)x16 * x32)) + ((0x2 * ((uint64_t)x18 * x30)) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + ((0x2 * ((uint64_t)x24 * x24)) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + ((0x2 * ((uint64_t)x30 * x18)) + ((0x2 * ((uint64_t)x32 * x16)) + ((uint64_t)x31 * x14)))))))))))));
+ uint64_t x45 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x15 * (((uint64_t)x12 * x31) + (((uint64_t)x14 * x32) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + (((uint64_t)x32 * x14) + ((uint64_t)x31 * x12))))))))))))));
+ uint64_t x46 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x15 * ((0x2 * ((uint64_t)x10 * x31)) + ((0x2 * ((uint64_t)x12 * x32)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + ((0x2 * ((uint64_t)x18 * x26)) + ((0x2 * ((uint64_t)x20 * x24)) + (((uint64_t)x22 * x22) + ((0x2 * ((uint64_t)x24 * x20)) + ((0x2 * ((uint64_t)x26 * x18)) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + ((0x2 * ((uint64_t)x32 * x12)) + (0x2 * ((uint64_t)x31 * x10))))))))))))))));
+ uint64_t x47 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x15 * (((uint64_t)x8 * x31) + ((0x2 * ((uint64_t)x10 * x32)) + ((0x2 * ((uint64_t)x12 * x30)) + (((uint64_t)x14 * x28) + ((0x2 * ((uint64_t)x16 * x26)) + ((0x2 * ((uint64_t)x18 * x24)) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + ((0x2 * ((uint64_t)x24 * x18)) + ((0x2 * ((uint64_t)x26 * x16)) + (((uint64_t)x28 * x14) + ((0x2 * ((uint64_t)x30 * x12)) + ((0x2 * ((uint64_t)x32 * x10)) + ((uint64_t)x31 * x8))))))))))))))));
+ uint64_t x48 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x15 * (((uint64_t)x6 * x31) + (((uint64_t)x8 * x32) + ((0x2 * ((uint64_t)x10 * x30)) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + (((uint64_t)x20 * x20) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + ((0x2 * ((uint64_t)x30 * x10)) + (((uint64_t)x32 * x8) + ((uint64_t)x31 * x6)))))))))))))))));
+ uint64_t x49 = (((uint64_t)x2 * x2) + (0x15 * ((0x2 * ((uint64_t)x4 * x31)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + (0x2 * ((uint64_t)x31 * x4)))))))))))))))))));
+ uint64_t x50 = (x49 >> 0x19);
+ uint32_t x51 = ((uint32_t)x49 & 0x1ffffff);
+ uint64_t x52 = (x50 + x48);
+ uint64_t x53 = (x52 >> 0x18);
+ uint32_t x54 = ((uint32_t)x52 & 0xffffff);
+ uint64_t x55 = (x53 + x47);
+ uint64_t x56 = (x55 >> 0x18);
+ uint32_t x57 = ((uint32_t)x55 & 0xffffff);
+ uint64_t x58 = (x56 + x46);
+ uint64_t x59 = (x58 >> 0x19);
+ uint32_t x60 = ((uint32_t)x58 & 0x1ffffff);
+ uint64_t x61 = (x59 + x45);
+ uint64_t x62 = (x61 >> 0x18);
+ uint32_t x63 = ((uint32_t)x61 & 0xffffff);
+ uint64_t x64 = (x62 + x44);
+ uint64_t x65 = (x64 >> 0x18);
+ uint32_t x66 = ((uint32_t)x64 & 0xffffff);
+ uint64_t x67 = (x65 + x43);
+ uint64_t x68 = (x67 >> 0x19);
+ uint32_t x69 = ((uint32_t)x67 & 0x1ffffff);
+ uint64_t x70 = (x68 + x42);
+ uint64_t x71 = (x70 >> 0x18);
+ uint32_t x72 = ((uint32_t)x70 & 0xffffff);
+ uint64_t x73 = (x71 + x41);
+ uint64_t x74 = (x73 >> 0x18);
+ uint32_t x75 = ((uint32_t)x73 & 0xffffff);
+ uint64_t x76 = (x74 + x40);
+ uint64_t x77 = (x76 >> 0x18);
+ uint32_t x78 = ((uint32_t)x76 & 0xffffff);
+ uint64_t x79 = (x77 + x39);
+ uint64_t x80 = (x79 >> 0x19);
+ uint32_t x81 = ((uint32_t)x79 & 0x1ffffff);
+ uint64_t x82 = (x80 + x38);
+ uint64_t x83 = (x82 >> 0x18);
+ uint32_t x84 = ((uint32_t)x82 & 0xffffff);
+ uint64_t x85 = (x83 + x37);
+ uint64_t x86 = (x85 >> 0x18);
+ uint32_t x87 = ((uint32_t)x85 & 0xffffff);
+ uint64_t x88 = (x86 + x36);
+ uint64_t x89 = (x88 >> 0x19);
+ uint32_t x90 = ((uint32_t)x88 & 0x1ffffff);
+ uint64_t x91 = (x89 + x35);
+ uint64_t x92 = (x91 >> 0x18);
+ uint32_t x93 = ((uint32_t)x91 & 0xffffff);
+ uint64_t x94 = (x92 + x34);
+ uint64_t x95 = (x94 >> 0x18);
+ uint32_t x96 = ((uint32_t)x94 & 0xffffff);
+ uint64_t x97 = (x95 + x33);
+ uint64_t x98 = (x97 >> 0x18);
+ uint32_t x99 = ((uint32_t)x97 & 0xffffff);
+ uint64_t x100 = (x51 + (0x15 * x98));
+ uint32_t x101 = (uint32_t) (x100 >> 0x19);
+ uint32_t x102 = ((uint32_t)x100 & 0x1ffffff);
+ uint32_t x103 = (x101 + x54);
+ uint32_t x104 = (x103 >> 0x18);
+ uint32_t x105 = (x103 & 0xffffff);
+ return (Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, (x104 + x57), Return x105, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_17limbs/fesub.c b/src/Specific/solinas32_2e413m21_17limbs/fesub.c
new file mode 100644
index 000000000..62d684887
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((Const 67108822 + x5) - x37);
+ out[1] = ((0x1fffffe + x7) - x39);
+ out[2] = ((0x1fffffe + x9) - x41);
+ out[3] = ((0x3fffffe + x11) - x43);
+ out[4] = ((0x1fffffe + x13) - x45);
+ out[5] = ((0x1fffffe + x15) - x47);
+ out[6] = ((0x3fffffe + x17) - x49);
+ out[7] = ((0x1fffffe + x19) - x51);
+ out[8] = ((0x1fffffe + x21) - x53);
+ out[9] = ((0x1fffffe + x23) - x55);
+ out[10] = ((0x3fffffe + x25) - x57);
+ out[11] = ((0x1fffffe + x27) - x59);
+ out[12] = ((0x1fffffe + x29) - x61);
+ out[13] = ((0x3fffffe + x31) - x63);
+ out[14] = ((0x1fffffe + x33) - x65);
+ out[15] = ((0x1fffffe + x35) - x67);
+ out[16] = ((0x1fffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e413m21_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..8820d51dc
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0x1fffffe + x34) - x66), ((0x1fffffe + x35) - x67), ((0x1fffffe + x33) - x65), ((0x3fffffe + x31) - x63), ((0x1fffffe + x29) - x61), ((0x1fffffe + x27) - x59), ((0x3fffffe + x25) - x57), ((0x1fffffe + x23) - x55), ((0x1fffffe + x21) - x53), ((0x1fffffe + x19) - x51), ((0x3fffffe + x17) - x49), ((0x1fffffe + x15) - x47), ((0x1fffffe + x13) - x45), ((0x3fffffe + x11) - x43), ((0x1fffffe + x9) - x41), ((0x1fffffe + x7) - x39), ((Const 67108822 + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e413m21_17limbs/freeze.c b/src/Specific/solinas32_2e413m21_17limbs/freeze.c
new file mode 100644
index 000000000..2b78a5f33
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554411);
+ { 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 x4, 0xffffff);
+ { uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0xffffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x1ffffff);
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0xffffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0xffffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x1ffffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0xffffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0xffffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0xffffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x1ffffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0xffffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0xffffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x1ffffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0xffffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0xffffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0xffffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & Const 33554411);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0xffffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0xffffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0x1ffffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0xffffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0xffffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0x1ffffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0xffffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0xffffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0xffffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0x1ffffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0xffffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0xffffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0x1ffffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0xffffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0xffffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0xffffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e413m21_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e413m21_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..aed06efd5
--- /dev/null
+++ b/src/Specific/solinas32_2e413m21_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554411);
+ 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 x4, 0xffffff);
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0xffffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x1ffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0xffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0xffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x1ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0xffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0xffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0xffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x1ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0xffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0xffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x1ffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0xffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0xffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0xffffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & Const 33554411);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0xffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0xffffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0x1ffffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0xffffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0xffffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0x1ffffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0xffffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0xffffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0xffffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0x1ffffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0xffffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0xffffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0x1ffffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0xffffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0xffffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0xffffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e414m17_16limbs/feadd.c b/src/Specific/solinas32_2e414m17_16limbs/feadd.c
new file mode 100644
index 000000000..18b150e21
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/feadd.c
@@ -0,0 +1,51 @@
+static void feadd(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = (x5 + x35);
+ out[1] = (x7 + x37);
+ out[2] = (x9 + x39);
+ out[3] = (x11 + x41);
+ out[4] = (x13 + x43);
+ out[5] = (x15 + x45);
+ out[6] = (x17 + x47);
+ out[7] = (x19 + x49);
+ out[8] = (x21 + x51);
+ out[9] = (x23 + x53);
+ out[10] = (x25 + x55);
+ out[11] = (x27 + x57);
+ out[12] = (x29 + x59);
+ out[13] = (x31 + x61);
+ out[14] = (x33 + x63);
+ out[15] = (x32 + x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17_16limbs/feaddDisplay.log b/src/Specific/solinas32_2e414m17_16limbs/feaddDisplay.log
new file mode 100644
index 000000000..130c31964
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ ((x32 + x62), (x33 + x63), (x31 + x61), (x29 + x59), (x27 + x57), (x25 + x55), (x23 + x53), (x21 + x51), (x19 + x49), (x17 + x47), (x15 + x45), (x13 + x43), (x11 + x41), (x9 + x39), (x7 + x37), (x5 + x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e414m17_16limbs/fesquare.c b/src/Specific/solinas32_2e414m17_16limbs/fesquare.c
new file mode 100644
index 000000000..833a39627
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/fesquare.c
@@ -0,0 +1,104 @@
+static void fesquare(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x31 = (((uint64_t)x2 * x29) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x29 * x2))))))))))))))));
+ { uint64_t x32 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((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)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x11 * (0x2 * ((uint64_t)x29 * x29))));
+ { uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((uint64_t)x8 * x22) + (((uint64_t)x10 * x20) + (((uint64_t)x12 * x18) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + (((uint64_t)x18 * x12) + (((uint64_t)x20 * x10) + (((uint64_t)x22 * x8) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x11 * ((0x2 * ((uint64_t)x30 * x29)) + (0x2 * ((uint64_t)x29 * x30)))));
+ { uint64_t x34 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + (((uint64_t)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x11 * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ { uint64_t x35 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x11 * ((0x2 * ((uint64_t)x26 * x29)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (0x2 * ((uint64_t)x29 * x26)))))));
+ { uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((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)) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x11 * ((0x2 * ((uint64_t)x24 * x29)) + ((0x2 * ((uint64_t)x26 * x30)) + ((0x2 * ((uint64_t)x28 * x28)) + ((0x2 * ((uint64_t)x30 * x26)) + (0x2 * ((uint64_t)x29 * x24))))))));
+ { uint64_t x37 = ((((uint64_t)x2 * x20) + (((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)) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x11 * ((0x2 * ((uint64_t)x22 * x29)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ { uint64_t x38 = ((((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))))))))) + (0x11 * ((0x2 * ((uint64_t)x20 * x29)) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + (0x2 * ((uint64_t)x29 * x20))))))))));
+ { uint64_t x39 = ((((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)x18 * x29) + (((uint64_t)x20 * x30) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + (((uint64_t)x30 * x20) + ((uint64_t)x29 * x18))))))))));
+ { uint64_t x40 = ((((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 * ((0x2 * ((uint64_t)x16 * x29)) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ { uint64_t x41 = ((((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 * ((0x2 * ((uint64_t)x14 * x29)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + (0x2 * ((uint64_t)x29 * x14)))))))))))));
+ { uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x11 * ((0x2 * ((uint64_t)x12 * x29)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + (((uint64_t)x22 * x22) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + (0x2 * ((uint64_t)x29 * x12))))))))))))));
+ { uint64_t x43 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x11 * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ { uint64_t x44 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x11 * ((0x2 * ((uint64_t)x8 * x29)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + (((uint64_t)x20 * x20) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (0x2 * ((uint64_t)x29 * x8))))))))))))))));
+ { ℤ x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) +ℤ (0x11 *ℤ ((0x2 * ((uint64_t)x6 * x29)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + (0x2 * ((uint64_t)x29 * x6)))))))))))))))));
+ { ℤ x46 = (((uint64_t)x2 * x2) +ℤ (0x11 *ℤ ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ { uint64_t x47 = (x46 >> 0x1a);
+ { uint32_t x48 = (x46 & 0x3ffffff);
+ { ℤ x49 = (x47 +ℤ x45);
+ { uint64_t x50 = (x49 >> 0x1a);
+ { uint32_t x51 = (x49 & 0x3ffffff);
+ { uint64_t x52 = (x50 + x44);
+ { uint64_t x53 = (x52 >> 0x1a);
+ { uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ { uint64_t x55 = (x53 + x43);
+ { uint64_t x56 = (x55 >> 0x1a);
+ { uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ { uint64_t x58 = (x56 + x42);
+ { uint64_t x59 = (x58 >> 0x1a);
+ { uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ { uint64_t x61 = (x59 + x41);
+ { uint64_t x62 = (x61 >> 0x1a);
+ { uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ { uint64_t x64 = (x62 + x40);
+ { uint64_t x65 = (x64 >> 0x1a);
+ { uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ { uint64_t x67 = (x65 + x39);
+ { uint64_t x68 = (x67 >> 0x19);
+ { uint32_t x69 = ((uint32_t)x67 & 0x1ffffff);
+ { uint64_t x70 = (x68 + x38);
+ { uint64_t x71 = (x70 >> 0x1a);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ { uint64_t x73 = (x71 + x37);
+ { uint64_t x74 = (x73 >> 0x1a);
+ { uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ { uint64_t x76 = (x74 + x36);
+ { uint64_t x77 = (x76 >> 0x1a);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ { uint64_t x79 = (x77 + x35);
+ { uint64_t x80 = (x79 >> 0x1a);
+ { uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ { uint64_t x82 = (x80 + x34);
+ { uint64_t x83 = (x82 >> 0x1a);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ { uint64_t x85 = (x83 + x33);
+ { uint64_t x86 = (x85 >> 0x1a);
+ { uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ { uint64_t x88 = (x86 + x32);
+ { uint64_t x89 = (x88 >> 0x1a);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ { uint64_t x91 = (x89 + x31);
+ { uint64_t x92 = (x91 >> 0x19);
+ { uint32_t x93 = ((uint32_t)x91 & 0x1ffffff);
+ { uint64_t x94 = (x48 + (0x11 * x92));
+ { uint32_t x95 = (uint32_t) (x94 >> 0x1a);
+ { uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ { uint32_t x97 = (x95 + x51);
+ { uint32_t x98 = (x97 >> 0x1a);
+ { uint32_t x99 = (x97 & 0x3ffffff);
+ out[0] = x96;
+ out[1] = x99;
+ out[2] = (x98 + x54);
+ out[3] = x57;
+ out[4] = x60;
+ out[5] = x63;
+ out[6] = x66;
+ out[7] = x69;
+ out[8] = x72;
+ out[9] = x75;
+ out[10] = x78;
+ out[11] = x81;
+ out[12] = x84;
+ out[13] = x87;
+ out[14] = x90;
+ out[15] = x93;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17_16limbs/fesquareDisplay.log b/src/Specific/solinas32_2e414m17_16limbs/fesquareDisplay.log
new file mode 100644
index 000000000..936df4db8
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/fesquareDisplay.log
@@ -0,0 +1,76 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x31 = (((uint64_t)x2 * x29) + (((uint64_t)x4 * x30) + (((uint64_t)x6 * x28) + (((uint64_t)x8 * x26) + (((uint64_t)x10 * x24) + (((uint64_t)x12 * x22) + (((uint64_t)x14 * x20) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + (((uint64_t)x20 * x14) + (((uint64_t)x22 * x12) + (((uint64_t)x24 * x10) + (((uint64_t)x26 * x8) + (((uint64_t)x28 * x6) + (((uint64_t)x30 * x4) + ((uint64_t)x29 * x2))))))))))))))));
+ uint64_t x32 = ((((uint64_t)x2 * x30) + (((uint64_t)x4 * x28) + (((uint64_t)x6 * x26) + (((uint64_t)x8 * x24) + (((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)x24 * x8) + (((uint64_t)x26 * x6) + (((uint64_t)x28 * x4) + ((uint64_t)x30 * x2))))))))))))))) + (0x11 * (0x2 * ((uint64_t)x29 * x29))));
+ uint64_t x33 = ((((uint64_t)x2 * x28) + (((uint64_t)x4 * x26) + (((uint64_t)x6 * x24) + (((uint64_t)x8 * x22) + (((uint64_t)x10 * x20) + (((uint64_t)x12 * x18) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + (((uint64_t)x18 * x12) + (((uint64_t)x20 * x10) + (((uint64_t)x22 * x8) + (((uint64_t)x24 * x6) + (((uint64_t)x26 * x4) + ((uint64_t)x28 * x2)))))))))))))) + (0x11 * ((0x2 * ((uint64_t)x30 * x29)) + (0x2 * ((uint64_t)x29 * x30)))));
+ uint64_t x34 = ((((uint64_t)x2 * x26) + (((uint64_t)x4 * x24) + (((uint64_t)x6 * x22) + (((uint64_t)x8 * x20) + (((uint64_t)x10 * x18) + ((0x2 * ((uint64_t)x12 * x16)) + ((0x2 * ((uint64_t)x14 * x14)) + ((0x2 * ((uint64_t)x16 * x12)) + (((uint64_t)x18 * x10) + (((uint64_t)x20 * x8) + (((uint64_t)x22 * x6) + (((uint64_t)x24 * x4) + ((uint64_t)x26 * x2))))))))))))) + (0x11 * ((0x2 * ((uint64_t)x28 * x29)) + ((0x2 * ((uint64_t)x30 * x30)) + (0x2 * ((uint64_t)x29 * x28))))));
+ uint64_t x35 = ((((uint64_t)x2 * x24) + (((uint64_t)x4 * x22) + (((uint64_t)x6 * x20) + (((uint64_t)x8 * x18) + ((0x2 * ((uint64_t)x10 * x16)) + ((0x2 * ((uint64_t)x12 * x14)) + ((0x2 * ((uint64_t)x14 * x12)) + ((0x2 * ((uint64_t)x16 * x10)) + (((uint64_t)x18 * x8) + (((uint64_t)x20 * x6) + (((uint64_t)x22 * x4) + ((uint64_t)x24 * x2)))))))))))) + (0x11 * ((0x2 * ((uint64_t)x26 * x29)) + ((0x2 * ((uint64_t)x28 * x30)) + ((0x2 * ((uint64_t)x30 * x28)) + (0x2 * ((uint64_t)x29 * x26)))))));
+ uint64_t x36 = ((((uint64_t)x2 * x22) + (((uint64_t)x4 * x20) + (((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)) + (((uint64_t)x18 * x6) + (((uint64_t)x20 * x4) + ((uint64_t)x22 * x2))))))))))) + (0x11 * ((0x2 * ((uint64_t)x24 * x29)) + ((0x2 * ((uint64_t)x26 * x30)) + ((0x2 * ((uint64_t)x28 * x28)) + ((0x2 * ((uint64_t)x30 * x26)) + (0x2 * ((uint64_t)x29 * x24))))))));
+ uint64_t x37 = ((((uint64_t)x2 * x20) + (((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)) + (((uint64_t)x18 * x4) + ((uint64_t)x20 * x2)))))))))) + (0x11 * ((0x2 * ((uint64_t)x22 * x29)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + (0x2 * ((uint64_t)x29 * x22)))))))));
+ uint64_t x38 = ((((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))))))))) + (0x11 * ((0x2 * ((uint64_t)x20 * x29)) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + (0x2 * ((uint64_t)x29 * x20))))))))));
+ uint64_t x39 = ((((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)x18 * x29) + (((uint64_t)x20 * x30) + (((uint64_t)x22 * x28) + (((uint64_t)x24 * x26) + (((uint64_t)x26 * x24) + (((uint64_t)x28 * x22) + (((uint64_t)x30 * x20) + ((uint64_t)x29 * x18))))))))));
+ uint64_t x40 = ((((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 * ((0x2 * ((uint64_t)x16 * x29)) + (((uint64_t)x18 * x30) + (((uint64_t)x20 * x28) + (((uint64_t)x22 * x26) + (((uint64_t)x24 * x24) + (((uint64_t)x26 * x22) + (((uint64_t)x28 * x20) + (((uint64_t)x30 * x18) + (0x2 * ((uint64_t)x29 * x16))))))))))));
+ uint64_t x41 = ((((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 * ((0x2 * ((uint64_t)x14 * x29)) + ((0x2 * ((uint64_t)x16 * x30)) + (((uint64_t)x18 * x28) + (((uint64_t)x20 * x26) + (((uint64_t)x22 * x24) + (((uint64_t)x24 * x22) + (((uint64_t)x26 * x20) + (((uint64_t)x28 * x18) + ((0x2 * ((uint64_t)x30 * x16)) + (0x2 * ((uint64_t)x29 * x14)))))))))))));
+ uint64_t x42 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + (((uint64_t)x6 * x6) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (0x11 * ((0x2 * ((uint64_t)x12 * x29)) + ((0x2 * ((uint64_t)x14 * x30)) + ((0x2 * ((uint64_t)x16 * x28)) + (((uint64_t)x18 * x26) + (((uint64_t)x20 * x24) + (((uint64_t)x22 * x22) + (((uint64_t)x24 * x20) + (((uint64_t)x26 * x18) + ((0x2 * ((uint64_t)x28 * x16)) + ((0x2 * ((uint64_t)x30 * x14)) + (0x2 * ((uint64_t)x29 * x12))))))))))))));
+ uint64_t x43 = ((((uint64_t)x2 * x8) + (((uint64_t)x4 * x6) + (((uint64_t)x6 * x4) + ((uint64_t)x8 * x2)))) + (0x11 * ((0x2 * ((uint64_t)x10 * x29)) + ((0x2 * ((uint64_t)x12 * x30)) + ((0x2 * ((uint64_t)x14 * x28)) + ((0x2 * ((uint64_t)x16 * x26)) + (((uint64_t)x18 * x24) + (((uint64_t)x20 * x22) + (((uint64_t)x22 * x20) + (((uint64_t)x24 * x18) + ((0x2 * ((uint64_t)x26 * x16)) + ((0x2 * ((uint64_t)x28 * x14)) + ((0x2 * ((uint64_t)x30 * x12)) + (0x2 * ((uint64_t)x29 * x10)))))))))))))));
+ uint64_t x44 = ((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (0x11 * ((0x2 * ((uint64_t)x8 * x29)) + ((0x2 * ((uint64_t)x10 * x30)) + ((0x2 * ((uint64_t)x12 * x28)) + ((0x2 * ((uint64_t)x14 * x26)) + ((0x2 * ((uint64_t)x16 * x24)) + (((uint64_t)x18 * x22) + (((uint64_t)x20 * x20) + (((uint64_t)x22 * x18) + ((0x2 * ((uint64_t)x24 * x16)) + ((0x2 * ((uint64_t)x26 * x14)) + ((0x2 * ((uint64_t)x28 * x12)) + ((0x2 * ((uint64_t)x30 * x10)) + (0x2 * ((uint64_t)x29 * x8))))))))))))))));
+ ℤ x45 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) +ℤ (0x11 *ℤ ((0x2 * ((uint64_t)x6 * x29)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + (((uint64_t)x18 * x20) + (((uint64_t)x20 * x18) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + (0x2 * ((uint64_t)x29 * x6)))))))))))))))));
+ ℤ x46 = (((uint64_t)x2 * x2) +ℤ (0x11 *ℤ ((0x2 * ((uint64_t)x4 * x29)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + (0x2 * ((uint64_t)x29 * x4))))))))))))))))));
+ uint64_t x47 = (x46 >> 0x1a);
+ uint32_t x48 = (x46 & 0x3ffffff);
+ ℤ x49 = (x47 +ℤ x45);
+ uint64_t x50 = (x49 >> 0x1a);
+ uint32_t x51 = (x49 & 0x3ffffff);
+ uint64_t x52 = (x50 + x44);
+ uint64_t x53 = (x52 >> 0x1a);
+ uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ uint64_t x55 = (x53 + x43);
+ uint64_t x56 = (x55 >> 0x1a);
+ uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ uint64_t x58 = (x56 + x42);
+ uint64_t x59 = (x58 >> 0x1a);
+ uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ uint64_t x61 = (x59 + x41);
+ uint64_t x62 = (x61 >> 0x1a);
+ uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ uint64_t x64 = (x62 + x40);
+ uint64_t x65 = (x64 >> 0x1a);
+ uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ uint64_t x67 = (x65 + x39);
+ uint64_t x68 = (x67 >> 0x19);
+ uint32_t x69 = ((uint32_t)x67 & 0x1ffffff);
+ uint64_t x70 = (x68 + x38);
+ uint64_t x71 = (x70 >> 0x1a);
+ uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ uint64_t x73 = (x71 + x37);
+ uint64_t x74 = (x73 >> 0x1a);
+ uint32_t x75 = ((uint32_t)x73 & 0x3ffffff);
+ uint64_t x76 = (x74 + x36);
+ uint64_t x77 = (x76 >> 0x1a);
+ uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ uint64_t x79 = (x77 + x35);
+ uint64_t x80 = (x79 >> 0x1a);
+ uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ uint64_t x82 = (x80 + x34);
+ uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ uint64_t x85 = (x83 + x33);
+ uint64_t x86 = (x85 >> 0x1a);
+ uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ uint64_t x88 = (x86 + x32);
+ uint64_t x89 = (x88 >> 0x1a);
+ uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ uint64_t x91 = (x89 + x31);
+ uint64_t x92 = (x91 >> 0x19);
+ uint32_t x93 = ((uint32_t)x91 & 0x1ffffff);
+ uint64_t x94 = (x48 + (0x11 * x92));
+ uint32_t x95 = (uint32_t) (x94 >> 0x1a);
+ uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ uint32_t x97 = (x95 + x51);
+ uint32_t x98 = (x97 >> 0x1a);
+ uint32_t x99 = (x97 & 0x3ffffff);
+ return (Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, Return x57, (x98 + x54), Return x99, Return x96))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e414m17_16limbs/fesub.c b/src/Specific/solinas32_2e414m17_16limbs/fesub.c
new file mode 100644
index 000000000..c9c886634
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/fesub.c
@@ -0,0 +1,51 @@
+static void fesub(uint32_t out[16], const uint32_t in1[16], const uint32_t in2[16]) {
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x62 = in2[15];
+ { const uint32_t x63 = in2[14];
+ { const uint32_t x61 = in2[13];
+ { const uint32_t x59 = in2[12];
+ { const uint32_t x57 = in2[11];
+ { const uint32_t x55 = in2[10];
+ { const uint32_t x53 = in2[9];
+ { const uint32_t x51 = in2[8];
+ { const uint32_t x49 = in2[7];
+ { const uint32_t x47 = in2[6];
+ { const uint32_t x45 = in2[5];
+ { const uint32_t x43 = in2[4];
+ { const uint32_t x41 = in2[3];
+ { const uint32_t x39 = in2[2];
+ { const uint32_t x37 = in2[1];
+ { const uint32_t x35 = in2[0];
+ out[0] = ((0x7ffffde + x5) - x35);
+ out[1] = ((0x7fffffe + x7) - x37);
+ out[2] = ((0x7fffffe + x9) - x39);
+ out[3] = ((0x7fffffe + x11) - x41);
+ out[4] = ((0x7fffffe + x13) - x43);
+ out[5] = ((0x7fffffe + x15) - x45);
+ out[6] = ((0x7fffffe + x17) - x47);
+ out[7] = ((0x3fffffe + x19) - x49);
+ out[8] = ((0x7fffffe + x21) - x51);
+ out[9] = ((0x7fffffe + x23) - x53);
+ out[10] = ((0x7fffffe + x25) - x55);
+ out[11] = ((0x7fffffe + x27) - x57);
+ out[12] = ((0x7fffffe + x29) - x59);
+ out[13] = ((0x7fffffe + x31) - x61);
+ out[14] = ((0x7fffffe + x33) - x63);
+ out[15] = ((0x3fffffe + x32) - x62);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17_16limbs/fesubDisplay.log b/src/Specific/solinas32_2e414m17_16limbs/fesubDisplay.log
new file mode 100644
index 000000000..f659e725a
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x32, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x62, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37, x35))%core,
+ (((0x3fffffe + x32) - x62), ((0x7fffffe + x33) - x63), ((0x7fffffe + x31) - x61), ((0x7fffffe + x29) - x59), ((0x7fffffe + x27) - x57), ((0x7fffffe + x25) - x55), ((0x7fffffe + x23) - x53), ((0x7fffffe + x21) - x51), ((0x3fffffe + x19) - x49), ((0x7fffffe + x17) - x47), ((0x7fffffe + x15) - x45), ((0x7fffffe + x13) - x43), ((0x7fffffe + x11) - x41), ((0x7fffffe + x9) - x39), ((0x7fffffe + x7) - x37), ((0x7ffffde + x5) - x35)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e414m17_16limbs/freeze.c b/src/Specific/solinas32_2e414m17_16limbs/freeze.c
new file mode 100644
index 000000000..2a5789ed7
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/freeze.c
@@ -0,0 +1,84 @@
+static void freeze(uint32_t out[16], const uint32_t in1[16]) {
+ { const uint32_t x29 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffef);
+ { uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0x3ffffff);
+ { uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x6, 0x3ffffff);
+ { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0x3ffffff);
+ { uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x10, 0x3ffffff);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0x3ffffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0x3ffffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0x1ffffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0x3ffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0x3ffffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0x3ffffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0x3ffffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0x3ffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0x3ffffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0x3ffffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x1ffffff);
+ { uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ { uint32_t x80 = (x79 & 0x3ffffef);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ { uint32_t x84 = (x79 & 0x3ffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ { uint32_t x88 = (x79 & 0x3ffffff);
+ { uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ { uint32_t x92 = (x79 & 0x3ffffff);
+ { uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ { uint32_t x96 = (x79 & 0x3ffffff);
+ { uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ { uint32_t x100 = (x79 & 0x3ffffff);
+ { uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ { uint32_t x104 = (x79 & 0x3ffffff);
+ { uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ { uint32_t x108 = (x79 & 0x1ffffff);
+ { uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ { uint32_t x112 = (x79 & 0x3ffffff);
+ { uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ { uint32_t x116 = (x79 & 0x3ffffff);
+ { uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ { uint32_t x120 = (x79 & 0x3ffffff);
+ { uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ { uint32_t x124 = (x79 & 0x3ffffff);
+ { uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ { uint32_t x128 = (x79 & 0x3ffffff);
+ { uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ { uint32_t x132 = (x79 & 0x3ffffff);
+ { uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ { uint32_t x136 = (x79 & 0x3ffffff);
+ { uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ { uint32_t x140 = (x79 & 0x1ffffff);
+ { uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ out[0] = x82;
+ out[1] = x86;
+ out[2] = x90;
+ out[3] = x94;
+ out[4] = x98;
+ out[5] = x102;
+ out[6] = x106;
+ out[7] = x110;
+ out[8] = x114;
+ out[9] = x118;
+ out[10] = x122;
+ out[11] = x126;
+ out[12] = x130;
+ out[13] = x134;
+ out[14] = x138;
+ out[15] = x142;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17_16limbs/freezeDisplay.log b/src/Specific/solinas32_2e414m17_16limbs/freezeDisplay.log
new file mode 100644
index 000000000..13f2855ea
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_16limbs/freezeDisplay.log
@@ -0,0 +1,56 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x29, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffef);
+ uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x4, 0x3ffffff);
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x6, 0x3ffffff);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x8, 0x3ffffff);
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x10, 0x3ffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x12, 0x3ffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x14, 0x3ffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x16, 0x1ffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x18, 0x3ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x20, 0x3ffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x22, 0x3ffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x24, 0x3ffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x26, 0x3ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x28, 0x3ffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0x3ffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0x1ffffff);
+ uint32_t x79 = cmovznz32(x78, 0x0, 0xffffffff);
+ uint32_t x80 = (x79 & 0x3ffffef);
+ uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
+ uint32_t x84 = (x79 & 0x3ffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
+ uint32_t x88 = (x79 & 0x3ffffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, Return x88);
+ uint32_t x92 = (x79 & 0x3ffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x41, Return x92);
+ uint32_t x96 = (x79 & 0x3ffffff);
+ uint32_t x98, uint8_t x99 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x44, Return x96);
+ uint32_t x100 = (x79 & 0x3ffffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x99, Return x47, Return x100);
+ uint32_t x104 = (x79 & 0x3ffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x50, Return x104);
+ uint32_t x108 = (x79 & 0x1ffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x53, Return x108);
+ uint32_t x112 = (x79 & 0x3ffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x56, Return x112);
+ uint32_t x116 = (x79 & 0x3ffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x59, Return x116);
+ uint32_t x120 = (x79 & 0x3ffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x62, Return x120);
+ uint32_t x124 = (x79 & 0x3ffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x65, Return x124);
+ uint32_t x128 = (x79 & 0x3ffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x68, Return x128);
+ uint32_t x132 = (x79 & 0x3ffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x71, Return x132);
+ uint32_t x136 = (x79 & 0x3ffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x74, Return x136);
+ uint32_t x140 = (x79 & 0x1ffffff);
+ uint32_t x142, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x77, Return x140);
+ (Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102, Return x98, Return x94, Return x90, Return x86, Return x82))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e414m17_17limbs/feadd.c b/src/Specific/solinas32_2e414m17_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e414m17_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e414m17_17limbs/fesub.c b/src/Specific/solinas32_2e414m17_17limbs/fesub.c
new file mode 100644
index 000000000..c8bff2b31
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((0x3ffffde + x5) - x37);
+ out[1] = ((0x1fffffe + x7) - x39);
+ out[2] = ((0x3fffffe + x9) - x41);
+ out[3] = ((0x1fffffe + x11) - x43);
+ out[4] = ((0x1fffffe + x13) - x45);
+ out[5] = ((0x3fffffe + x15) - x47);
+ out[6] = ((0x1fffffe + x17) - x49);
+ out[7] = ((0x1fffffe + x19) - x51);
+ out[8] = ((0x3fffffe + x21) - x53);
+ out[9] = ((0x1fffffe + x23) - x55);
+ out[10] = ((0x1fffffe + x25) - x57);
+ out[11] = ((0x3fffffe + x27) - x59);
+ out[12] = ((0x1fffffe + x29) - x61);
+ out[13] = ((0x1fffffe + x31) - x63);
+ out[14] = ((0x3fffffe + x33) - x65);
+ out[15] = ((0x1fffffe + x35) - x67);
+ out[16] = ((0x1fffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e414m17_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..e6d4c2e1d
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0x1fffffe + x34) - x66), ((0x1fffffe + x35) - x67), ((0x3fffffe + x33) - x65), ((0x1fffffe + x31) - x63), ((0x1fffffe + x29) - x61), ((0x3fffffe + x27) - x59), ((0x1fffffe + x25) - x57), ((0x1fffffe + x23) - x55), ((0x3fffffe + x21) - x53), ((0x1fffffe + x19) - x51), ((0x1fffffe + x17) - x49), ((0x3fffffe + x15) - x47), ((0x1fffffe + x13) - x45), ((0x1fffffe + x11) - x43), ((0x3fffffe + x9) - x41), ((0x1fffffe + x7) - x39), ((0x3ffffde + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e414m17_17limbs/freeze.c b/src/Specific/solinas32_2e414m17_17limbs/freeze.c
new file mode 100644
index 000000000..53eddd6b0
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffef);
+ { 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 x4, 0xffffff);
+ { uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x1ffffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0xffffff);
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0xffffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x1ffffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0xffffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0xffffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x1ffffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0xffffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0xffffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x1ffffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0xffffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0xffffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x1ffffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0xffffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0xffffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & 0x1ffffef);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0xffffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0x1ffffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0xffffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0xffffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0x1ffffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0xffffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0xffffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0x1ffffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0xffffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0xffffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0x1ffffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0xffffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0xffffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0x1ffffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0xffffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0xffffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e414m17_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e414m17_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..a4c51d315
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x34, uint8_t x35 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffef);
+ 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 x4, 0xffffff);
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x1ffffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0xffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0xffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x1ffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0xffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0xffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x1ffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0xffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0xffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x1ffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0xffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0xffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x1ffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0xffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0xffffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & 0x1ffffef);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0xffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0x1ffffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0xffffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0xffffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0x1ffffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0xffffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0xffffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0x1ffffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0xffffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0xffffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0x1ffffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0xffffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0xffffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0x1ffffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0xffffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0xffffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e416m2e208m1_18limbs/feadd.c b/src/Specific/solinas32_2e416m2e208m1_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e416m2e208m1_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e416m2e208m1_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e416m2e208m1_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e416m2e208m1_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e416m2e208m1_18limbs/fesub.c b/src/Specific/solinas32_2e416m2e208m1_18limbs/fesub.c
new file mode 100644
index 000000000..06c838baf
--- /dev/null
+++ b/src/Specific/solinas32_2e416m2e208m1_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((0x1fffffe + x5) - x39);
+ out[1] = ((0xfffffe + x7) - x41);
+ out[2] = ((0xfffffe + x9) - x43);
+ out[3] = ((0xfffffe + x11) - x45);
+ out[4] = ((0xfffffe + x13) - x47);
+ out[5] = ((0xfffffe + x15) - x49);
+ out[6] = ((0xfffffe + x17) - x51);
+ out[7] = ((0xfffffe + x19) - x53);
+ out[8] = ((0xfffffe + x21) - x55);
+ out[9] = ((Const 33554428 + x23) - x57);
+ out[10] = ((0xfffffe + x25) - x59);
+ out[11] = ((0xfffffe + x27) - x61);
+ out[12] = ((0xfffffe + x29) - x63);
+ out[13] = ((0xfffffe + x31) - x65);
+ out[14] = ((0xfffffe + x33) - x67);
+ out[15] = ((0xfffffe + x35) - x69);
+ out[16] = ((0xfffffe + x37) - x71);
+ out[17] = ((0xfffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e416m2e208m1_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e416m2e208m1_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..53315a232
--- /dev/null
+++ b/src/Specific/solinas32_2e416m2e208m1_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0xfffffe + x36) - x70), ((0xfffffe + x37) - x71), ((0xfffffe + x35) - x69), ((0xfffffe + x33) - x67), ((0xfffffe + x31) - x65), ((0xfffffe + x29) - x63), ((0xfffffe + x27) - x61), ((0xfffffe + x25) - x59), ((Const 33554428 + x23) - x57), ((0xfffffe + x21) - x55), ((0xfffffe + x19) - x53), ((0xfffffe + x17) - x51), ((0xfffffe + x15) - x49), ((0xfffffe + x13) - x47), ((0xfffffe + x11) - x45), ((0xfffffe + x9) - x43), ((0xfffffe + x7) - x41), ((0x1fffffe + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e416m2e208m1_18limbs/freeze.c b/src/Specific/solinas32_2e416m2e208m1_18limbs/freeze.c
new file mode 100644
index 000000000..5d4796729
--- /dev/null
+++ b/src/Specific/solinas32_2e416m2e208m1_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffff);
+ { uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x4, 0x7fffff);
+ { uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0x7fffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x7fffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x7fffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x7fffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x7fffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x7fffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x7fffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0xfffffe);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x7fffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x7fffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x7fffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x7fffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x7fffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x7fffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x7fffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x7fffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & 0xffffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x7fffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0x7fffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x7fffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x7fffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0x7fffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x7fffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x7fffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0x7fffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0xfffffe);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x7fffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0x7fffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x7fffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x7fffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0x7fffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x7fffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x7fffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0x7fffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e416m2e208m1_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e416m2e208m1_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..61cd9ffe5
--- /dev/null
+++ b/src/Specific/solinas32_2e416m2e208m1_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffff);
+ uint32_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x37, Return x4, 0x7fffff);
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0x7fffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x7fffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x7fffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x7fffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x7fffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x7fffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x7fffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0xfffffe);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x7fffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x7fffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x7fffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x7fffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x7fffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x7fffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x7fffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x7fffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0xffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x7fffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0x7fffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x7fffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x7fffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0x7fffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x7fffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x7fffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0x7fffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0xfffffe);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x7fffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0x7fffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x7fffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x7fffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0x7fffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x7fffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x7fffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0x7fffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e444m17_17limbs/feadd.c b/src/Specific/solinas32_2e444m17_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e444m17_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e444m17_17limbs/fesquare.c b/src/Specific/solinas32_2e444m17_17limbs/fesquare.c
new file mode 100644
index 000000000..932f53329
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/fesquare.c
@@ -0,0 +1,110 @@
+static void fesquare(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint64_t x33 = (((uint64_t)x2 * x31) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x31 * x2)))))))))))))))));
+ { uint64_t x34 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x11 * ((uint64_t)x31 * x31)));
+ { uint64_t x35 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + ((0x2 * ((uint64_t)x6 * x26)) + ((0x2 * ((uint64_t)x8 * x24)) + ((0x2 * ((uint64_t)x10 * x22)) + ((0x2 * ((uint64_t)x12 * x20)) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + ((0x2 * ((uint64_t)x20 * x12)) + ((0x2 * ((uint64_t)x22 * x10)) + ((0x2 * ((uint64_t)x24 * x8)) + ((0x2 * ((uint64_t)x26 * x6)) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (0x11 * (((uint64_t)x32 * x31) + ((uint64_t)x31 * x32))));
+ { uint64_t x36 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + (((uint64_t)x12 * x18) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + (((uint64_t)x18 * x12) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x11 * (((uint64_t)x30 * x31) + (((uint64_t)x32 * x32) + ((uint64_t)x31 * x30)))));
+ { uint64_t x37 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + ((0x2 * ((uint64_t)x8 * x20)) + (((uint64_t)x10 * x18) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + (((uint64_t)x18 * x10) + ((0x2 * ((uint64_t)x20 * x8)) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x11 * (((uint64_t)x28 * x31) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + ((uint64_t)x31 * x28))))));
+ { uint64_t x38 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((0x2 * ((uint64_t)x6 * x20)) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + ((0x2 * ((uint64_t)x20 * x6)) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x11 * (((uint64_t)x26 * x31) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + ((uint64_t)x31 * x26)))))));
+ { uint64_t x39 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0x11 * (((uint64_t)x24 * x31) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + ((uint64_t)x31 * x24))))))));
+ { uint64_t x40 = ((((uint64_t)x2 * x20) + (((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)x20 * x2)))))))))) + (0x11 * (((uint64_t)x22 * x31) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + ((uint64_t)x31 * x22)))))))));
+ { uint64_t x41 = ((((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))))))))) + (0x11 * ((0x2 * ((uint64_t)x20 * x31)) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + (0x2 * ((uint64_t)x31 * x20)))))))))));
+ { uint64_t x42 = ((((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)))))))) + (0x11 * (((uint64_t)x18 * x31) + ((0x2 * ((uint64_t)x20 * x32)) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + ((0x2 * ((uint64_t)x32 * x20)) + ((uint64_t)x31 * x18)))))))))));
+ { uint64_t x43 = ((((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))))))) + (0x11 * (((uint64_t)x16 * x31) + (((uint64_t)x18 * x32) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + (((uint64_t)x32 * x18) + ((uint64_t)x31 * x16))))))))))));
+ { uint64_t x44 = ((((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)))))) + (0x11 * (((uint64_t)x14 * x31) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + ((uint64_t)x31 * x14)))))))))))));
+ { uint64_t x45 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x11 * (((uint64_t)x12 * x31) + (((uint64_t)x14 * x32) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + (((uint64_t)x32 * x14) + ((uint64_t)x31 * x12))))))))))))));
+ { uint64_t x46 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x11 * (((uint64_t)x10 * x31) + (((uint64_t)x12 * x32) + (((uint64_t)x14 * x30) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + (((uint64_t)x30 * x14) + (((uint64_t)x32 * x12) + ((uint64_t)x31 * x10)))))))))))))));
+ { uint64_t x47 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x11 * (((uint64_t)x8 * x31) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + ((uint64_t)x31 * x8))))))))))))))));
+ { uint64_t x48 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x11 * (((uint64_t)x6 * x31) + (((uint64_t)x8 * x32) + (((uint64_t)x10 * x30) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + (((uint64_t)x30 * x10) + (((uint64_t)x32 * x8) + ((uint64_t)x31 * x6)))))))))))))))));
+ { ℤ x49 = (((uint64_t)x2 * x2) +ℤ (0x11 *ℤ ((0x2 * ((uint64_t)x4 * x31)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + (0x2 * ((uint64_t)x31 * x4)))))))))))))))))));
+ { uint64_t x50 = (x49 >> 0x1b);
+ { uint32_t x51 = (x49 & 0x7ffffff);
+ { uint64_t x52 = (x50 + x48);
+ { uint64_t x53 = (x52 >> 0x1a);
+ { uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ { uint64_t x55 = (x53 + x47);
+ { uint64_t x56 = (x55 >> 0x1a);
+ { uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ { uint64_t x58 = (x56 + x46);
+ { uint64_t x59 = (x58 >> 0x1a);
+ { uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ { uint64_t x61 = (x59 + x45);
+ { uint64_t x62 = (x61 >> 0x1a);
+ { uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ { uint64_t x64 = (x62 + x44);
+ { uint64_t x65 = (x64 >> 0x1a);
+ { uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ { uint64_t x67 = (x65 + x43);
+ { uint64_t x68 = (x67 >> 0x1a);
+ { uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ { uint64_t x70 = (x68 + x42);
+ { uint64_t x71 = (x70 >> 0x1a);
+ { uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ { uint64_t x73 = (x71 + x41);
+ { uint64_t x74 = (x73 >> 0x1b);
+ { uint32_t x75 = ((uint32_t)x73 & 0x7ffffff);
+ { uint64_t x76 = (x74 + x40);
+ { uint64_t x77 = (x76 >> 0x1a);
+ { uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ { uint64_t x79 = (x77 + x39);
+ { uint64_t x80 = (x79 >> 0x1a);
+ { uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ { uint64_t x82 = (x80 + x38);
+ { uint64_t x83 = (x82 >> 0x1a);
+ { uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ { uint64_t x85 = (x83 + x37);
+ { uint64_t x86 = (x85 >> 0x1a);
+ { uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ { uint64_t x88 = (x86 + x36);
+ { uint64_t x89 = (x88 >> 0x1a);
+ { uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ { uint64_t x91 = (x89 + x35);
+ { uint64_t x92 = (x91 >> 0x1a);
+ { uint32_t x93 = ((uint32_t)x91 & 0x3ffffff);
+ { uint64_t x94 = (x92 + x34);
+ { uint64_t x95 = (x94 >> 0x1a);
+ { uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ { uint64_t x97 = (x95 + x33);
+ { uint64_t x98 = (x97 >> 0x1a);
+ { uint32_t x99 = ((uint32_t)x97 & 0x3ffffff);
+ { uint64_t x100 = (x51 + (0x11 * x98));
+ { uint32_t x101 = (uint32_t) (x100 >> 0x1b);
+ { uint32_t x102 = ((uint32_t)x100 & 0x7ffffff);
+ { uint32_t x103 = (x101 + x54);
+ { uint32_t x104 = (x103 >> 0x1a);
+ { uint32_t x105 = (x103 & 0x3ffffff);
+ out[0] = x102;
+ out[1] = x105;
+ out[2] = (x104 + x57);
+ out[3] = x60;
+ out[4] = x63;
+ out[5] = x66;
+ out[6] = x69;
+ out[7] = x72;
+ out[8] = x75;
+ out[9] = x78;
+ out[10] = x81;
+ out[11] = x84;
+ out[12] = x87;
+ out[13] = x90;
+ out[14] = x93;
+ out[15] = x96;
+ out[16] = x99;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17_17limbs/fesquareDisplay.log b/src/Specific/solinas32_2e444m17_17limbs/fesquareDisplay.log
new file mode 100644
index 000000000..fc75b2e14
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/fesquareDisplay.log
@@ -0,0 +1,80 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint64_t x33 = (((uint64_t)x2 * x31) + ((0x2 * ((uint64_t)x4 * x32)) + ((0x2 * ((uint64_t)x6 * x30)) + ((0x2 * ((uint64_t)x8 * x28)) + ((0x2 * ((uint64_t)x10 * x26)) + ((0x2 * ((uint64_t)x12 * x24)) + ((0x2 * ((uint64_t)x14 * x22)) + ((0x2 * ((uint64_t)x16 * x20)) + (((uint64_t)x18 * x18) + ((0x2 * ((uint64_t)x20 * x16)) + ((0x2 * ((uint64_t)x22 * x14)) + ((0x2 * ((uint64_t)x24 * x12)) + ((0x2 * ((uint64_t)x26 * x10)) + ((0x2 * ((uint64_t)x28 * x8)) + ((0x2 * ((uint64_t)x30 * x6)) + ((0x2 * ((uint64_t)x32 * x4)) + ((uint64_t)x31 * x2)))))))))))))))));
+ uint64_t x34 = ((((uint64_t)x2 * x32) + ((0x2 * ((uint64_t)x4 * x30)) + ((0x2 * ((uint64_t)x6 * x28)) + ((0x2 * ((uint64_t)x8 * x26)) + ((0x2 * ((uint64_t)x10 * x24)) + ((0x2 * ((uint64_t)x12 * x22)) + ((0x2 * ((uint64_t)x14 * x20)) + (((uint64_t)x16 * x18) + (((uint64_t)x18 * x16) + ((0x2 * ((uint64_t)x20 * x14)) + ((0x2 * ((uint64_t)x22 * x12)) + ((0x2 * ((uint64_t)x24 * x10)) + ((0x2 * ((uint64_t)x26 * x8)) + ((0x2 * ((uint64_t)x28 * x6)) + ((0x2 * ((uint64_t)x30 * x4)) + ((uint64_t)x32 * x2)))))))))))))))) + (0x11 * ((uint64_t)x31 * x31)));
+ uint64_t x35 = ((((uint64_t)x2 * x30) + ((0x2 * ((uint64_t)x4 * x28)) + ((0x2 * ((uint64_t)x6 * x26)) + ((0x2 * ((uint64_t)x8 * x24)) + ((0x2 * ((uint64_t)x10 * x22)) + ((0x2 * ((uint64_t)x12 * x20)) + (((uint64_t)x14 * x18) + (((uint64_t)x16 * x16) + (((uint64_t)x18 * x14) + ((0x2 * ((uint64_t)x20 * x12)) + ((0x2 * ((uint64_t)x22 * x10)) + ((0x2 * ((uint64_t)x24 * x8)) + ((0x2 * ((uint64_t)x26 * x6)) + ((0x2 * ((uint64_t)x28 * x4)) + ((uint64_t)x30 * x2))))))))))))))) + (0x11 * (((uint64_t)x32 * x31) + ((uint64_t)x31 * x32))));
+ uint64_t x36 = ((((uint64_t)x2 * x28) + ((0x2 * ((uint64_t)x4 * x26)) + ((0x2 * ((uint64_t)x6 * x24)) + ((0x2 * ((uint64_t)x8 * x22)) + ((0x2 * ((uint64_t)x10 * x20)) + (((uint64_t)x12 * x18) + (((uint64_t)x14 * x16) + (((uint64_t)x16 * x14) + (((uint64_t)x18 * x12) + ((0x2 * ((uint64_t)x20 * x10)) + ((0x2 * ((uint64_t)x22 * x8)) + ((0x2 * ((uint64_t)x24 * x6)) + ((0x2 * ((uint64_t)x26 * x4)) + ((uint64_t)x28 * x2)))))))))))))) + (0x11 * (((uint64_t)x30 * x31) + (((uint64_t)x32 * x32) + ((uint64_t)x31 * x30)))));
+ uint64_t x37 = ((((uint64_t)x2 * x26) + ((0x2 * ((uint64_t)x4 * x24)) + ((0x2 * ((uint64_t)x6 * x22)) + ((0x2 * ((uint64_t)x8 * x20)) + (((uint64_t)x10 * x18) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + (((uint64_t)x16 * x12) + (((uint64_t)x18 * x10) + ((0x2 * ((uint64_t)x20 * x8)) + ((0x2 * ((uint64_t)x22 * x6)) + ((0x2 * ((uint64_t)x24 * x4)) + ((uint64_t)x26 * x2))))))))))))) + (0x11 * (((uint64_t)x28 * x31) + (((uint64_t)x30 * x32) + (((uint64_t)x32 * x30) + ((uint64_t)x31 * x28))))));
+ uint64_t x38 = ((((uint64_t)x2 * x24) + ((0x2 * ((uint64_t)x4 * x22)) + ((0x2 * ((uint64_t)x6 * x20)) + (((uint64_t)x8 * x18) + (((uint64_t)x10 * x16) + (((uint64_t)x12 * x14) + (((uint64_t)x14 * x12) + (((uint64_t)x16 * x10) + (((uint64_t)x18 * x8) + ((0x2 * ((uint64_t)x20 * x6)) + ((0x2 * ((uint64_t)x22 * x4)) + ((uint64_t)x24 * x2)))))))))))) + (0x11 * (((uint64_t)x26 * x31) + (((uint64_t)x28 * x32) + (((uint64_t)x30 * x30) + (((uint64_t)x32 * x28) + ((uint64_t)x31 * x26)))))));
+ uint64_t x39 = ((((uint64_t)x2 * x22) + ((0x2 * ((uint64_t)x4 * x20)) + (((uint64_t)x6 * x18) + (((uint64_t)x8 * x16) + (((uint64_t)x10 * x14) + (((uint64_t)x12 * x12) + (((uint64_t)x14 * x10) + (((uint64_t)x16 * x8) + (((uint64_t)x18 * x6) + ((0x2 * ((uint64_t)x20 * x4)) + ((uint64_t)x22 * x2))))))))))) + (0x11 * (((uint64_t)x24 * x31) + (((uint64_t)x26 * x32) + (((uint64_t)x28 * x30) + (((uint64_t)x30 * x28) + (((uint64_t)x32 * x26) + ((uint64_t)x31 * x24))))))));
+ uint64_t x40 = ((((uint64_t)x2 * x20) + (((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)x20 * x2)))))))))) + (0x11 * (((uint64_t)x22 * x31) + (((uint64_t)x24 * x32) + (((uint64_t)x26 * x30) + (((uint64_t)x28 * x28) + (((uint64_t)x30 * x26) + (((uint64_t)x32 * x24) + ((uint64_t)x31 * x22)))))))));
+ uint64_t x41 = ((((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))))))))) + (0x11 * ((0x2 * ((uint64_t)x20 * x31)) + ((0x2 * ((uint64_t)x22 * x32)) + ((0x2 * ((uint64_t)x24 * x30)) + ((0x2 * ((uint64_t)x26 * x28)) + ((0x2 * ((uint64_t)x28 * x26)) + ((0x2 * ((uint64_t)x30 * x24)) + ((0x2 * ((uint64_t)x32 * x22)) + (0x2 * ((uint64_t)x31 * x20)))))))))));
+ uint64_t x42 = ((((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)))))))) + (0x11 * (((uint64_t)x18 * x31) + ((0x2 * ((uint64_t)x20 * x32)) + ((0x2 * ((uint64_t)x22 * x30)) + ((0x2 * ((uint64_t)x24 * x28)) + ((0x2 * ((uint64_t)x26 * x26)) + ((0x2 * ((uint64_t)x28 * x24)) + ((0x2 * ((uint64_t)x30 * x22)) + ((0x2 * ((uint64_t)x32 * x20)) + ((uint64_t)x31 * x18)))))))))));
+ uint64_t x43 = ((((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))))))) + (0x11 * (((uint64_t)x16 * x31) + (((uint64_t)x18 * x32) + ((0x2 * ((uint64_t)x20 * x30)) + ((0x2 * ((uint64_t)x22 * x28)) + ((0x2 * ((uint64_t)x24 * x26)) + ((0x2 * ((uint64_t)x26 * x24)) + ((0x2 * ((uint64_t)x28 * x22)) + ((0x2 * ((uint64_t)x30 * x20)) + (((uint64_t)x32 * x18) + ((uint64_t)x31 * x16))))))))))));
+ uint64_t x44 = ((((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)))))) + (0x11 * (((uint64_t)x14 * x31) + (((uint64_t)x16 * x32) + (((uint64_t)x18 * x30) + ((0x2 * ((uint64_t)x20 * x28)) + ((0x2 * ((uint64_t)x22 * x26)) + ((0x2 * ((uint64_t)x24 * x24)) + ((0x2 * ((uint64_t)x26 * x22)) + ((0x2 * ((uint64_t)x28 * x20)) + (((uint64_t)x30 * x18) + (((uint64_t)x32 * x16) + ((uint64_t)x31 * x14)))))))))))));
+ uint64_t x45 = ((((uint64_t)x2 * x10) + ((0x2 * ((uint64_t)x4 * x8)) + ((0x2 * ((uint64_t)x6 * x6)) + ((0x2 * ((uint64_t)x8 * x4)) + ((uint64_t)x10 * x2))))) + (0x11 * (((uint64_t)x12 * x31) + (((uint64_t)x14 * x32) + (((uint64_t)x16 * x30) + (((uint64_t)x18 * x28) + ((0x2 * ((uint64_t)x20 * x26)) + ((0x2 * ((uint64_t)x22 * x24)) + ((0x2 * ((uint64_t)x24 * x22)) + ((0x2 * ((uint64_t)x26 * x20)) + (((uint64_t)x28 * x18) + (((uint64_t)x30 * x16) + (((uint64_t)x32 * x14) + ((uint64_t)x31 * x12))))))))))))));
+ uint64_t x46 = ((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (0x11 * (((uint64_t)x10 * x31) + (((uint64_t)x12 * x32) + (((uint64_t)x14 * x30) + (((uint64_t)x16 * x28) + (((uint64_t)x18 * x26) + ((0x2 * ((uint64_t)x20 * x24)) + ((0x2 * ((uint64_t)x22 * x22)) + ((0x2 * ((uint64_t)x24 * x20)) + (((uint64_t)x26 * x18) + (((uint64_t)x28 * x16) + (((uint64_t)x30 * x14) + (((uint64_t)x32 * x12) + ((uint64_t)x31 * x10)))))))))))))));
+ uint64_t x47 = ((((uint64_t)x2 * x6) + ((0x2 * ((uint64_t)x4 * x4)) + ((uint64_t)x6 * x2))) + (0x11 * (((uint64_t)x8 * x31) + (((uint64_t)x10 * x32) + (((uint64_t)x12 * x30) + (((uint64_t)x14 * x28) + (((uint64_t)x16 * x26) + (((uint64_t)x18 * x24) + ((0x2 * ((uint64_t)x20 * x22)) + ((0x2 * ((uint64_t)x22 * x20)) + (((uint64_t)x24 * x18) + (((uint64_t)x26 * x16) + (((uint64_t)x28 * x14) + (((uint64_t)x30 * x12) + (((uint64_t)x32 * x10) + ((uint64_t)x31 * x8))))))))))))))));
+ uint64_t x48 = ((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (0x11 * (((uint64_t)x6 * x31) + (((uint64_t)x8 * x32) + (((uint64_t)x10 * x30) + (((uint64_t)x12 * x28) + (((uint64_t)x14 * x26) + (((uint64_t)x16 * x24) + (((uint64_t)x18 * x22) + ((0x2 * ((uint64_t)x20 * x20)) + (((uint64_t)x22 * x18) + (((uint64_t)x24 * x16) + (((uint64_t)x26 * x14) + (((uint64_t)x28 * x12) + (((uint64_t)x30 * x10) + (((uint64_t)x32 * x8) + ((uint64_t)x31 * x6)))))))))))))))));
+ ℤ x49 = (((uint64_t)x2 * x2) +ℤ (0x11 *ℤ ((0x2 * ((uint64_t)x4 * x31)) + ((0x2 * ((uint64_t)x6 * x32)) + ((0x2 * ((uint64_t)x8 * x30)) + ((0x2 * ((uint64_t)x10 * x28)) + ((0x2 * ((uint64_t)x12 * x26)) + ((0x2 * ((uint64_t)x14 * x24)) + ((0x2 * ((uint64_t)x16 * x22)) + ((0x2 * ((uint64_t)x18 * x20)) + ((0x2 * ((uint64_t)x20 * x18)) + ((0x2 * ((uint64_t)x22 * x16)) + ((0x2 * ((uint64_t)x24 * x14)) + ((0x2 * ((uint64_t)x26 * x12)) + ((0x2 * ((uint64_t)x28 * x10)) + ((0x2 * ((uint64_t)x30 * x8)) + ((0x2 * ((uint64_t)x32 * x6)) + (0x2 * ((uint64_t)x31 * x4)))))))))))))))))));
+ uint64_t x50 = (x49 >> 0x1b);
+ uint32_t x51 = (x49 & 0x7ffffff);
+ uint64_t x52 = (x50 + x48);
+ uint64_t x53 = (x52 >> 0x1a);
+ uint32_t x54 = ((uint32_t)x52 & 0x3ffffff);
+ uint64_t x55 = (x53 + x47);
+ uint64_t x56 = (x55 >> 0x1a);
+ uint32_t x57 = ((uint32_t)x55 & 0x3ffffff);
+ uint64_t x58 = (x56 + x46);
+ uint64_t x59 = (x58 >> 0x1a);
+ uint32_t x60 = ((uint32_t)x58 & 0x3ffffff);
+ uint64_t x61 = (x59 + x45);
+ uint64_t x62 = (x61 >> 0x1a);
+ uint32_t x63 = ((uint32_t)x61 & 0x3ffffff);
+ uint64_t x64 = (x62 + x44);
+ uint64_t x65 = (x64 >> 0x1a);
+ uint32_t x66 = ((uint32_t)x64 & 0x3ffffff);
+ uint64_t x67 = (x65 + x43);
+ uint64_t x68 = (x67 >> 0x1a);
+ uint32_t x69 = ((uint32_t)x67 & 0x3ffffff);
+ uint64_t x70 = (x68 + x42);
+ uint64_t x71 = (x70 >> 0x1a);
+ uint32_t x72 = ((uint32_t)x70 & 0x3ffffff);
+ uint64_t x73 = (x71 + x41);
+ uint64_t x74 = (x73 >> 0x1b);
+ uint32_t x75 = ((uint32_t)x73 & 0x7ffffff);
+ uint64_t x76 = (x74 + x40);
+ uint64_t x77 = (x76 >> 0x1a);
+ uint32_t x78 = ((uint32_t)x76 & 0x3ffffff);
+ uint64_t x79 = (x77 + x39);
+ uint64_t x80 = (x79 >> 0x1a);
+ uint32_t x81 = ((uint32_t)x79 & 0x3ffffff);
+ uint64_t x82 = (x80 + x38);
+ uint64_t x83 = (x82 >> 0x1a);
+ uint32_t x84 = ((uint32_t)x82 & 0x3ffffff);
+ uint64_t x85 = (x83 + x37);
+ uint64_t x86 = (x85 >> 0x1a);
+ uint32_t x87 = ((uint32_t)x85 & 0x3ffffff);
+ uint64_t x88 = (x86 + x36);
+ uint64_t x89 = (x88 >> 0x1a);
+ uint32_t x90 = ((uint32_t)x88 & 0x3ffffff);
+ uint64_t x91 = (x89 + x35);
+ uint64_t x92 = (x91 >> 0x1a);
+ uint32_t x93 = ((uint32_t)x91 & 0x3ffffff);
+ uint64_t x94 = (x92 + x34);
+ uint64_t x95 = (x94 >> 0x1a);
+ uint32_t x96 = ((uint32_t)x94 & 0x3ffffff);
+ uint64_t x97 = (x95 + x33);
+ uint64_t x98 = (x97 >> 0x1a);
+ uint32_t x99 = ((uint32_t)x97 & 0x3ffffff);
+ uint64_t x100 = (x51 + (0x11 * x98));
+ uint32_t x101 = (uint32_t) (x100 >> 0x1b);
+ uint32_t x102 = ((uint32_t)x100 & 0x7ffffff);
+ uint32_t x103 = (x101 + x54);
+ uint32_t x104 = (x103 >> 0x1a);
+ uint32_t x105 = (x103 & 0x3ffffff);
+ return (Return x99, Return x96, Return x93, Return x90, Return x87, Return x84, Return x81, Return x78, Return x75, Return x72, Return x69, Return x66, Return x63, Return x60, (x104 + x57), Return x105, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e444m17_17limbs/fesub.c b/src/Specific/solinas32_2e444m17_17limbs/fesub.c
new file mode 100644
index 000000000..f325955d5
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((Const 268435422 + x5) - x37);
+ out[1] = ((0x7fffffe + x7) - x39);
+ out[2] = ((0x7fffffe + x9) - x41);
+ out[3] = ((0x7fffffe + x11) - x43);
+ out[4] = ((0x7fffffe + x13) - x45);
+ out[5] = ((0x7fffffe + x15) - x47);
+ out[6] = ((0x7fffffe + x17) - x49);
+ out[7] = ((0x7fffffe + x19) - x51);
+ out[8] = ((0xffffffe + x21) - x53);
+ out[9] = ((0x7fffffe + x23) - x55);
+ out[10] = ((0x7fffffe + x25) - x57);
+ out[11] = ((0x7fffffe + x27) - x59);
+ out[12] = ((0x7fffffe + x29) - x61);
+ out[13] = ((0x7fffffe + x31) - x63);
+ out[14] = ((0x7fffffe + x33) - x65);
+ out[15] = ((0x7fffffe + x35) - x67);
+ out[16] = ((0x7fffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e444m17_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..dbbddf7e8
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0x7fffffe + x34) - x66), ((0x7fffffe + x35) - x67), ((0x7fffffe + x33) - x65), ((0x7fffffe + x31) - x63), ((0x7fffffe + x29) - x61), ((0x7fffffe + x27) - x59), ((0x7fffffe + x25) - x57), ((0x7fffffe + x23) - x55), ((0xffffffe + x21) - x53), ((0x7fffffe + x19) - x51), ((0x7fffffe + x17) - x49), ((0x7fffffe + x15) - x47), ((0x7fffffe + x13) - x45), ((0x7fffffe + x11) - x43), ((0x7fffffe + x9) - x41), ((0x7fffffe + x7) - x39), ((Const 268435422 + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e444m17_17limbs/freeze.c b/src/Specific/solinas32_2e444m17_17limbs/freeze.c
new file mode 100644
index 000000000..ef92f9b50
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, Const 134217711);
+ { 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 x4, 0x3ffffff);
+ { uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x3ffffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x3ffffff);
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0x3ffffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x3ffffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x3ffffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x3ffffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x7ffffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x3ffffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x3ffffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x3ffffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3ffffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x3ffffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3ffffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x3ffffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3ffffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & Const 134217711);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0x3ffffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0x3ffffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0x3ffffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0x3ffffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0x3ffffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0x3ffffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0x3ffffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0x7ffffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0x3ffffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0x3ffffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0x3ffffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0x3ffffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0x3ffffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0x3ffffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0x3ffffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0x3ffffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e444m17_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..81d2a8f61
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, Const 134217711);
+ 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 x4, 0x3ffffff);
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x3ffffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x3ffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0x3ffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x3ffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x3ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x3ffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x7ffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x3ffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x3ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x3ffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3ffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x3ffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3ffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x3ffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3ffffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & Const 134217711);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0x3ffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0x3ffffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0x3ffffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0x3ffffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0x3ffffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0x3ffffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0x3ffffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0x7ffffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0x3ffffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0x3ffffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0x3ffffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0x3ffffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0x3ffffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0x3ffffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0x3ffffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0x3ffffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e444m17_18limbs/feadd.c b/src/Specific/solinas32_2e444m17_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e444m17_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e444m17_18limbs/fesub.c b/src/Specific/solinas32_2e444m17_18limbs/fesub.c
new file mode 100644
index 000000000..3e3d1c7e0
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((0x3ffffde + x5) - x39);
+ out[1] = ((0x3fffffe + x7) - x41);
+ out[2] = ((0x1fffffe + x9) - x43);
+ out[3] = ((0x3fffffe + x11) - x45);
+ out[4] = ((0x3fffffe + x13) - x47);
+ out[5] = ((0x1fffffe + x15) - x49);
+ out[6] = ((0x3fffffe + x17) - x51);
+ out[7] = ((0x3fffffe + x19) - x53);
+ out[8] = ((0x1fffffe + x21) - x55);
+ out[9] = ((0x3fffffe + x23) - x57);
+ out[10] = ((0x3fffffe + x25) - x59);
+ out[11] = ((0x1fffffe + x27) - x61);
+ out[12] = ((0x3fffffe + x29) - x63);
+ out[13] = ((0x3fffffe + x31) - x65);
+ out[14] = ((0x1fffffe + x33) - x67);
+ out[15] = ((0x3fffffe + x35) - x69);
+ out[16] = ((0x3fffffe + x37) - x71);
+ out[17] = ((0x1fffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e444m17_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..5f9e0cc11
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0x1fffffe + x36) - x70), ((0x3fffffe + x37) - x71), ((0x3fffffe + x35) - x69), ((0x1fffffe + x33) - x67), ((0x3fffffe + x31) - x65), ((0x3fffffe + x29) - x63), ((0x1fffffe + x27) - x61), ((0x3fffffe + x25) - x59), ((0x3fffffe + x23) - x57), ((0x1fffffe + x21) - x55), ((0x3fffffe + x19) - x53), ((0x3fffffe + x17) - x51), ((0x1fffffe + x15) - x49), ((0x3fffffe + x13) - x47), ((0x3fffffe + x11) - x45), ((0x1fffffe + x9) - x43), ((0x3fffffe + x7) - x41), ((0x3ffffde + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e444m17_18limbs/freeze.c b/src/Specific/solinas32_2e444m17_18limbs/freeze.c
new file mode 100644
index 000000000..8d357ea1e
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, 0x1ffffef);
+ { 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 x4, 0x1ffffff);
+ { uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0xffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0xffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0xffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1ffffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0xffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0xffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0xffffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & 0x1ffffef);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x1ffffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0xffffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x1ffffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x1ffffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0xffffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x1ffffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x1ffffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0xffffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0x1ffffff);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x1ffffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0xffffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x1ffffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x1ffffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0xffffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x1ffffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x1ffffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0xffffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e444m17_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e444m17_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..ad10a3a46
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 0x1ffffef);
+ 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 x4, 0x1ffffff);
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x40, Return x6, 0xffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0xffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0xffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1ffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0xffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0xffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0xffffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0x1ffffef);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x1ffffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0xffffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x1ffffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x1ffffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0xffffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x1ffffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x1ffffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0xffffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0x1ffffff);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x1ffffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0xffffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x1ffffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x1ffffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0xffffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x1ffffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x1ffffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0xffffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e448m2e224m1_18limbs/feadd.c b/src/Specific/solinas32_2e448m2e224m1_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e448m2e224m1_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e448m2e224m1_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e448m2e224m1_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e448m2e224m1_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e448m2e224m1_18limbs/fesub.c b/src/Specific/solinas32_2e448m2e224m1_18limbs/fesub.c
new file mode 100644
index 000000000..dd979f427
--- /dev/null
+++ b/src/Specific/solinas32_2e448m2e224m1_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((0x3fffffe + x5) - x39);
+ out[1] = ((0x3fffffe + x7) - x41);
+ out[2] = ((0x3fffffe + x9) - x43);
+ out[3] = ((0x3fffffe + x11) - x45);
+ out[4] = ((0x3fffffe + x13) - x47);
+ out[5] = ((0x3fffffe + x15) - x49);
+ out[6] = ((0x3fffffe + x17) - x51);
+ out[7] = ((0x3fffffe + x19) - x53);
+ out[8] = ((0x1fffffe + x21) - x55);
+ out[9] = ((Const 67108860 + x23) - x57);
+ out[10] = ((0x3fffffe + x25) - x59);
+ out[11] = ((0x3fffffe + x27) - x61);
+ out[12] = ((0x3fffffe + x29) - x63);
+ out[13] = ((0x3fffffe + x31) - x65);
+ out[14] = ((0x3fffffe + x33) - x67);
+ out[15] = ((0x3fffffe + x35) - x69);
+ out[16] = ((0x3fffffe + x37) - x71);
+ out[17] = ((0x1fffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e448m2e224m1_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e448m2e224m1_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..63cdc73ef
--- /dev/null
+++ b/src/Specific/solinas32_2e448m2e224m1_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0x1fffffe + x36) - x70), ((0x3fffffe + x37) - x71), ((0x3fffffe + x35) - x69), ((0x3fffffe + x33) - x67), ((0x3fffffe + x31) - x65), ((0x3fffffe + x29) - x63), ((0x3fffffe + x27) - x61), ((0x3fffffe + x25) - x59), ((Const 67108860 + x23) - x57), ((0x1fffffe + x21) - x55), ((0x3fffffe + x19) - x53), ((0x3fffffe + x17) - x51), ((0x3fffffe + x15) - x49), ((0x3fffffe + x13) - x47), ((0x3fffffe + x11) - x45), ((0x3fffffe + x9) - x43), ((0x3fffffe + x7) - x41), ((0x3fffffe + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e448m2e224m1_18limbs/freeze.c b/src/Specific/solinas32_2e448m2e224m1_18limbs/freeze.c
new file mode 100644
index 000000000..dc8637431
--- /dev/null
+++ b/src/Specific/solinas32_2e448m2e224m1_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, 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 x4, 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 x6, 0x1ffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1ffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0xffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1fffffe);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1ffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x1ffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0xffffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & 0x1ffffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x1ffffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0x1ffffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x1ffffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x1ffffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0x1ffffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x1ffffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x1ffffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0xffffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0x1fffffe);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x1ffffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0x1ffffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x1ffffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x1ffffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0x1ffffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x1ffffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x1ffffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0xffffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e448m2e224m1_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e448m2e224m1_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..a917fb35d
--- /dev/null
+++ b/src/Specific/solinas32_2e448m2e224m1_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 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 x4, 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 x6, 0x1ffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0xffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1fffffe);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1ffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x1ffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0xffffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0x1ffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x1ffffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0x1ffffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x1ffffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x1ffffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0x1ffffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x1ffffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x1ffffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0xffffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0x1fffffe);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x1ffffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0x1ffffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x1ffffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x1ffffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0x1ffffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x1ffffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x1ffffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0xffffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e450m2e225m1_18limbs/feadd.c b/src/Specific/solinas32_2e450m2e225m1_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e450m2e225m1_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e450m2e225m1_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e450m2e225m1_18limbs/fesub.c b/src/Specific/solinas32_2e450m2e225m1_18limbs/fesub.c
new file mode 100644
index 000000000..8e7b9713c
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((0x3fffffe + x5) - x39);
+ out[1] = ((0x3fffffe + x7) - x41);
+ out[2] = ((0x3fffffe + x9) - x43);
+ out[3] = ((0x3fffffe + x11) - x45);
+ out[4] = ((0x3fffffe + x13) - x47);
+ out[5] = ((0x3fffffe + x15) - x49);
+ out[6] = ((0x3fffffe + x17) - x51);
+ out[7] = ((0x3fffffe + x19) - x53);
+ out[8] = ((0x3fffffe + x21) - x55);
+ out[9] = ((Const 67108860 + x23) - x57);
+ out[10] = ((0x3fffffe + x25) - x59);
+ out[11] = ((0x3fffffe + x27) - x61);
+ out[12] = ((0x3fffffe + x29) - x63);
+ out[13] = ((0x3fffffe + x31) - x65);
+ out[14] = ((0x3fffffe + x33) - x67);
+ out[15] = ((0x3fffffe + x35) - x69);
+ out[16] = ((0x3fffffe + x37) - x71);
+ out[17] = ((0x3fffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e450m2e225m1_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e450m2e225m1_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..aedda4253
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0x3fffffe + x36) - x70), ((0x3fffffe + x37) - x71), ((0x3fffffe + x35) - x69), ((0x3fffffe + x33) - x67), ((0x3fffffe + x31) - x65), ((0x3fffffe + x29) - x63), ((0x3fffffe + x27) - x61), ((0x3fffffe + x25) - x59), ((Const 67108860 + x23) - x57), ((0x3fffffe + x21) - x55), ((0x3fffffe + x19) - x53), ((0x3fffffe + x17) - x51), ((0x3fffffe + x15) - x49), ((0x3fffffe + x13) - x47), ((0x3fffffe + x11) - x45), ((0x3fffffe + x9) - x43), ((0x3fffffe + x7) - x41), ((0x3fffffe + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e450m2e225m1_18limbs/freeze.c b/src/Specific/solinas32_2e450m2e225m1_18limbs/freeze.c
new file mode 100644
index 000000000..a13a54c3d
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, 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 x4, 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 x6, 0x1ffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1ffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x1ffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1fffffe);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1ffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x1ffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x1ffffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & 0x1ffffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x1ffffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0x1ffffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x1ffffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x1ffffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0x1ffffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x1ffffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x1ffffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0x1ffffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0x1fffffe);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x1ffffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0x1ffffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x1ffffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x1ffffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0x1ffffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x1ffffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x1ffffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0x1ffffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e450m2e225m1_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e450m2e225m1_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..405267392
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 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 x4, 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 x6, 0x1ffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x1ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x1fffffe);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1ffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x1ffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x1ffffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0x1ffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x1ffffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0x1ffffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x1ffffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x1ffffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0x1ffffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x1ffffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x1ffffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0x1ffffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0x1fffffe);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x1ffffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0x1ffffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x1ffffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x1ffffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0x1ffffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x1ffffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x1ffffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0x1ffffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e450m2e225m1_20limbs/feaddDisplay.log b/src/Specific/solinas32_2e450m2e225m1_20limbs/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_20limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ ((x40 + x78), (x41 + x79), (x39 + x77), (x37 + x75), (x35 + x73), (x33 + x71), (x31 + x69), (x29 + x67), (x27 + x65), (x25 + x63), (x23 + x61), (x21 + x59), (x19 + x57), (x17 + x55), (x15 + x53), (x13 + x51), (x11 + x49), (x9 + x47), (x7 + x45), (x5 + x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e450m2e225m1_20limbs/fesubDisplay.log b/src/Specific/solinas32_2e450m2e225m1_20limbs/fesubDisplay.log
new file mode 100644
index 000000000..84a9874f5
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_20limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ (((0x7ffffe + x40) - x78), ((0xfffffe + x41) - x79), ((0x7ffffe + x39) - x77), ((0xfffffe + x37) - x75), ((0x7ffffe + x35) - x73), ((0xfffffe + x33) - x71), ((0x7ffffe + x31) - x69), ((0xfffffe + x29) - x67), ((0x7ffffe + x27) - x65), ((0xfffffc + x25) - x63), ((0x7ffffe + x23) - x61), ((0xfffffe + x21) - x59), ((0x7ffffe + x19) - x57), ((0xfffffe + x17) - x55), ((0x7ffffe + x15) - x53), ((0xfffffe + x13) - x51), ((0x7ffffe + x11) - x49), ((0xfffffe + x9) - x47), ((0x7ffffe + x7) - x45), ((0xfffffe + x5) - x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e450m2e225m1_20limbs/freezeDisplay.log b/src/Specific/solinas32_2e450m2e225m1_20limbs/freezeDisplay.log
new file mode 100644
index 000000000..f02273677
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1_20limbs/freezeDisplay.log
@@ -0,0 +1,68 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x37, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffff);
+ 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 x4, 0x3fffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x6, 0x7fffff);
+ 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 x8, 0x3fffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x10, 0x7fffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x12, 0x3fffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x14, 0x7fffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x16, 0x3fffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x18, 0x7fffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x20, 0x3fffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x22, 0x7ffffe);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x24, 0x3fffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x26, 0x7fffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x28, 0x3fffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x30, 0x7fffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x32, 0x3fffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x34, 0x7fffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x36, 0x3fffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x38, 0x7fffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x37, 0x3fffff);
+ uint32_t x99 = cmovznz32(x98, 0x0, 0xffffffff);
+ uint32_t x100 = (x99 & 0x7fffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x40, Return x100);
+ uint32_t x104 = (x99 & 0x3fffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x43, Return x104);
+ uint32_t x108 = (x99 & 0x7fffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x46, Return x108);
+ uint32_t x112 = (x99 & 0x3fffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x49, Return x112);
+ uint32_t x116 = (x99 & 0x7fffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x52, Return x116);
+ uint32_t x120 = (x99 & 0x3fffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x55, Return x120);
+ uint32_t x124 = (x99 & 0x7fffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x58, Return x124);
+ uint32_t x128 = (x99 & 0x3fffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x61, Return x128);
+ uint32_t x132 = (x99 & 0x7fffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x64, Return x132);
+ uint32_t x136 = (x99 & 0x3fffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x67, Return x136);
+ uint32_t x140 = (x99 & 0x7ffffe);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x70, Return x140);
+ uint32_t x144 = (x99 & 0x3fffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x73, Return x144);
+ uint32_t x148 = (x99 & 0x7fffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x76, Return x148);
+ uint32_t x152 = (x99 & 0x3fffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x79, Return x152);
+ uint32_t x156 = (x99 & 0x7fffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x82, Return x156);
+ uint32_t x160 = (x99 & 0x3fffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x85, Return x160);
+ uint32_t x164 = (x99 & 0x7fffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x88, Return x164);
+ uint32_t x168 = (x99 & 0x3fffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x91, Return x168);
+ uint32_t x172 = (x99 & 0x7fffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x94, Return x172);
+ uint32_t x176 = (x99 & 0x3fffff);
+ uint32_t x178, uint8_t _ = Op (Syntax.AddWithGetCarry 22 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x97, Return x176);
+ (Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e452m3_17limbs/feadd.c b/src/Specific/solinas32_2e452m3_17limbs/feadd.c
new file mode 100644
index 000000000..30eb11eae
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_17limbs/feadd.c
@@ -0,0 +1,54 @@
+static void feadd(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = (x5 + x37);
+ out[1] = (x7 + x39);
+ out[2] = (x9 + x41);
+ out[3] = (x11 + x43);
+ out[4] = (x13 + x45);
+ out[5] = (x15 + x47);
+ out[6] = (x17 + x49);
+ out[7] = (x19 + x51);
+ out[8] = (x21 + x53);
+ out[9] = (x23 + x55);
+ out[10] = (x25 + x57);
+ out[11] = (x27 + x59);
+ out[12] = (x29 + x61);
+ out[13] = (x31 + x63);
+ out[14] = (x33 + x65);
+ out[15] = (x35 + x67);
+ out[16] = (x34 + x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e452m3_17limbs/feaddDisplay.log b/src/Specific/solinas32_2e452m3_17limbs/feaddDisplay.log
new file mode 100644
index 000000000..7324e0941
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_17limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ ((x34 + x66), (x35 + x67), (x33 + x65), (x31 + x63), (x29 + x61), (x27 + x59), (x25 + x57), (x23 + x55), (x21 + x53), (x19 + x51), (x17 + x49), (x15 + x47), (x13 + x45), (x11 + x43), (x9 + x41), (x7 + x39), (x5 + x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e452m3_17limbs/fesub.c b/src/Specific/solinas32_2e452m3_17limbs/fesub.c
new file mode 100644
index 000000000..792826292
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_17limbs/fesub.c
@@ -0,0 +1,54 @@
+static void fesub(uint32_t out[17], const uint32_t in1[17], const uint32_t in2[17]) {
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x66 = in2[16];
+ { const uint32_t x67 = in2[15];
+ { const uint32_t x65 = in2[14];
+ { const uint32_t x63 = in2[13];
+ { const uint32_t x61 = in2[12];
+ { const uint32_t x59 = in2[11];
+ { const uint32_t x57 = in2[10];
+ { const uint32_t x55 = in2[9];
+ { const uint32_t x53 = in2[8];
+ { const uint32_t x51 = in2[7];
+ { const uint32_t x49 = in2[6];
+ { const uint32_t x47 = in2[5];
+ { const uint32_t x45 = in2[4];
+ { const uint32_t x43 = in2[3];
+ { const uint32_t x41 = in2[2];
+ { const uint32_t x39 = in2[1];
+ { const uint32_t x37 = in2[0];
+ out[0] = ((0xffffffa + x5) - x37);
+ out[1] = ((0xffffffe + x7) - x39);
+ out[2] = ((0x7fffffe + x9) - x41);
+ out[3] = ((0xffffffe + x11) - x43);
+ out[4] = ((0x7fffffe + x13) - x45);
+ out[5] = ((0xffffffe + x15) - x47);
+ out[6] = ((0xffffffe + x17) - x49);
+ out[7] = ((0x7fffffe + x19) - x51);
+ out[8] = ((0xffffffe + x21) - x53);
+ out[9] = ((0x7fffffe + x23) - x55);
+ out[10] = ((0xffffffe + x25) - x57);
+ out[11] = ((0xffffffe + x27) - x59);
+ out[12] = ((0x7fffffe + x29) - x61);
+ out[13] = ((0xffffffe + x31) - x63);
+ out[14] = ((0x7fffffe + x33) - x65);
+ out[15] = ((0xffffffe + x35) - x67);
+ out[16] = ((0x7fffffe + x34) - x66);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e452m3_17limbs/fesubDisplay.log b/src/Specific/solinas32_2e452m3_17limbs/fesubDisplay.log
new file mode 100644
index 000000000..c717e8328
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_17limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x34, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x66, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39, x37))%core,
+ (((0x7fffffe + x34) - x66), ((0xffffffe + x35) - x67), ((0x7fffffe + x33) - x65), ((0xffffffe + x31) - x63), ((0x7fffffe + x29) - x61), ((0xffffffe + x27) - x59), ((0xffffffe + x25) - x57), ((0x7fffffe + x23) - x55), ((0xffffffe + x21) - x53), ((0x7fffffe + x19) - x51), ((0xffffffe + x17) - x49), ((0xffffffe + x15) - x47), ((0x7fffffe + x13) - x45), ((0xffffffe + x11) - x43), ((0x7fffffe + x9) - x41), ((0xffffffe + x7) - x39), ((0xffffffa + x5) - x37)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e452m3_17limbs/freeze.c b/src/Specific/solinas32_2e452m3_17limbs/freeze.c
new file mode 100644
index 000000000..3bca81046
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_17limbs/freeze.c
@@ -0,0 +1,89 @@
+static void freeze(uint32_t out[17], const uint32_t in1[17]) {
+ { const uint32_t x31 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, 0x7fffffd);
+ { 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 x4, 0x7ffffff);
+ { uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x3ffffff);
+ { uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7ffffff);
+ { uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0x3ffffff);
+ { uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7ffffff);
+ { uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x7ffffff);
+ { uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x3ffffff);
+ { uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x7ffffff);
+ { uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x3ffffff);
+ { uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x7ffffff);
+ { uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7ffffff);
+ { uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3ffffff);
+ { uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7ffffff);
+ { uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3ffffff);
+ { uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7ffffff);
+ { uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3ffffff);
+ { uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ { uint32_t x85 = (x84 & 0x7fffffd);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ { uint32_t x89 = (x84 & 0x7ffffff);
+ { uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ { uint32_t x93 = (x84 & 0x3ffffff);
+ { uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ { uint32_t x97 = (x84 & 0x7ffffff);
+ { uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ { uint32_t x101 = (x84 & 0x3ffffff);
+ { uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ { uint32_t x105 = (x84 & 0x7ffffff);
+ { uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ { uint32_t x109 = (x84 & 0x7ffffff);
+ { uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ { uint32_t x113 = (x84 & 0x3ffffff);
+ { uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ { uint32_t x117 = (x84 & 0x7ffffff);
+ { uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ { uint32_t x121 = (x84 & 0x3ffffff);
+ { uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ { uint32_t x125 = (x84 & 0x7ffffff);
+ { uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ { uint32_t x129 = (x84 & 0x7ffffff);
+ { uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ { uint32_t x133 = (x84 & 0x3ffffff);
+ { uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ { uint32_t x137 = (x84 & 0x7ffffff);
+ { uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ { uint32_t x141 = (x84 & 0x3ffffff);
+ { uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ { uint32_t x145 = (x84 & 0x7ffffff);
+ { uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ { uint32_t x149 = (x84 & 0x3ffffff);
+ { uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ out[0] = x87;
+ out[1] = x91;
+ out[2] = x95;
+ out[3] = x99;
+ out[4] = x103;
+ out[5] = x107;
+ out[6] = x111;
+ out[7] = x115;
+ out[8] = x119;
+ out[9] = x123;
+ out[10] = x127;
+ out[11] = x131;
+ out[12] = x135;
+ out[13] = x139;
+ out[14] = x143;
+ out[15] = x147;
+ out[16] = x151;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e452m3_17limbs/freezeDisplay.log b/src/Specific/solinas32_2e452m3_17limbs/freezeDisplay.log
new file mode 100644
index 000000000..50cf2b436
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_17limbs/freezeDisplay.log
@@ -0,0 +1,59 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x31, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 0x7fffffd);
+ 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 x4, 0x7ffffff);
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x38, Return x6, 0x3ffffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x8, 0x7ffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x10, 0x3ffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x12, 0x7ffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x14, 0x7ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x16, 0x3ffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x18, 0x7ffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x20, 0x3ffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x22, 0x7ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x24, 0x7ffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x26, 0x3ffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x28, 0x7ffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x30, 0x3ffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x32, 0x7ffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x31, 0x3ffffff);
+ uint32_t x84 = cmovznz32(x83, 0x0, 0xffffffff);
+ uint32_t x85 = (x84 & 0x7fffffd);
+ uint32_t x87, uint8_t x88 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x34, Return x85);
+ uint32_t x89 = (x84 & 0x7ffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x37, Return x89);
+ uint32_t x93 = (x84 & 0x3ffffff);
+ uint32_t x95, uint8_t x96 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x40, Return x93);
+ uint32_t x97 = (x84 & 0x7ffffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x96, Return x43, Return x97);
+ uint32_t x101 = (x84 & 0x3ffffff);
+ uint32_t x103, uint8_t x104 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x46, Return x101);
+ uint32_t x105 = (x84 & 0x7ffffff);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x104, Return x49, Return x105);
+ uint32_t x109 = (x84 & 0x7ffffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x52, Return x109);
+ uint32_t x113 = (x84 & 0x3ffffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x55, Return x113);
+ uint32_t x117 = (x84 & 0x7ffffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x58, Return x117);
+ uint32_t x121 = (x84 & 0x3ffffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x61, Return x121);
+ uint32_t x125 = (x84 & 0x7ffffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x64, Return x125);
+ uint32_t x129 = (x84 & 0x7ffffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x67, Return x129);
+ uint32_t x133 = (x84 & 0x3ffffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x70, Return x133);
+ uint32_t x137 = (x84 & 0x7ffffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x73, Return x137);
+ uint32_t x141 = (x84 & 0x3ffffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x76, Return x141);
+ uint32_t x145 = (x84 & 0x7ffffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x79, Return x145);
+ uint32_t x149 = (x84 & 0x3ffffff);
+ uint32_t x151, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x82, Return x149);
+ (Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107, Return x103, Return x99, Return x95, Return x91, Return x87))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e452m3_18limbs/feadd.c b/src/Specific/solinas32_2e452m3_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e452m3_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e452m3_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e452m3_18limbs/fesub.c b/src/Specific/solinas32_2e452m3_18limbs/fesub.c
new file mode 100644
index 000000000..7dedf43e8
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((0x7fffffa + x5) - x39);
+ out[1] = ((0x3fffffe + x7) - x41);
+ out[2] = ((0x3fffffe + x9) - x43);
+ out[3] = ((0x3fffffe + x11) - x45);
+ out[4] = ((0x3fffffe + x13) - x47);
+ out[5] = ((0x3fffffe + x15) - x49);
+ out[6] = ((0x3fffffe + x17) - x51);
+ out[7] = ((0x3fffffe + x19) - x53);
+ out[8] = ((0x3fffffe + x21) - x55);
+ out[9] = ((0x7fffffe + x23) - x57);
+ out[10] = ((0x3fffffe + x25) - x59);
+ out[11] = ((0x3fffffe + x27) - x61);
+ out[12] = ((0x3fffffe + x29) - x63);
+ out[13] = ((0x3fffffe + x31) - x65);
+ out[14] = ((0x3fffffe + x33) - x67);
+ out[15] = ((0x3fffffe + x35) - x69);
+ out[16] = ((0x3fffffe + x37) - x71);
+ out[17] = ((0x3fffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e452m3_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e452m3_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..76c1e1b54
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0x3fffffe + x36) - x70), ((0x3fffffe + x37) - x71), ((0x3fffffe + x35) - x69), ((0x3fffffe + x33) - x67), ((0x3fffffe + x31) - x65), ((0x3fffffe + x29) - x63), ((0x3fffffe + x27) - x61), ((0x3fffffe + x25) - x59), ((0x7fffffe + x23) - x57), ((0x3fffffe + x21) - x55), ((0x3fffffe + x19) - x53), ((0x3fffffe + x17) - x51), ((0x3fffffe + x15) - x49), ((0x3fffffe + x13) - x47), ((0x3fffffe + x11) - x45), ((0x3fffffe + x9) - x43), ((0x3fffffe + x7) - x41), ((0x7fffffa + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e452m3_18limbs/freeze.c b/src/Specific/solinas32_2e452m3_18limbs/freeze.c
new file mode 100644
index 000000000..faa9bb885
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, 0x3fffffd);
+ { 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 x4, 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 x6, 0x1ffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1ffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x1ffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x3ffffff);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1ffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x1ffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x1ffffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & 0x3fffffd);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x1ffffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0x1ffffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x1ffffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x1ffffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0x1ffffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x1ffffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x1ffffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0x1ffffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0x3ffffff);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x1ffffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0x1ffffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x1ffffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x1ffffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0x1ffffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x1ffffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x1ffffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0x1ffffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e452m3_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e452m3_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..90a47f95d
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 0x3fffffd);
+ 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 x4, 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 x6, 0x1ffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x1ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x1ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x1ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x1ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x1ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x1ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x3ffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x1ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x1ffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x1ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x1ffffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x1ffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x1ffffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x1ffffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x1ffffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0x3fffffd);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x1ffffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0x1ffffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x1ffffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x1ffffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0x1ffffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x1ffffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x1ffffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0x1ffffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0x3ffffff);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x1ffffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0x1ffffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x1ffffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x1ffffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0x1ffffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x1ffffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x1ffffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0x1ffffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_19limbs/feadd.c b/src/Specific/solinas32_2e468m17_19limbs/feadd.c
new file mode 100644
index 000000000..7432e2ef1
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_19limbs/feadd.c
@@ -0,0 +1,60 @@
+static void feadd(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = (x5 + x41);
+ out[1] = (x7 + x43);
+ out[2] = (x9 + x45);
+ out[3] = (x11 + x47);
+ out[4] = (x13 + x49);
+ out[5] = (x15 + x51);
+ out[6] = (x17 + x53);
+ out[7] = (x19 + x55);
+ out[8] = (x21 + x57);
+ out[9] = (x23 + x59);
+ out[10] = (x25 + x61);
+ out[11] = (x27 + x63);
+ out[12] = (x29 + x65);
+ out[13] = (x31 + x67);
+ out[14] = (x33 + x69);
+ out[15] = (x35 + x71);
+ out[16] = (x37 + x73);
+ out[17] = (x39 + x75);
+ out[18] = (x38 + x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_19limbs/feaddDisplay.log b/src/Specific/solinas32_2e468m17_19limbs/feaddDisplay.log
new file mode 100644
index 000000000..76a71b356
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_19limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ ((x38 + x74), (x39 + x75), (x37 + x73), (x35 + x71), (x33 + x69), (x31 + x67), (x29 + x65), (x27 + x63), (x25 + x61), (x23 + x59), (x21 + x57), (x19 + x55), (x17 + x53), (x15 + x51), (x13 + x49), (x11 + x47), (x9 + x45), (x7 + x43), (x5 + x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_19limbs/fesub.c b/src/Specific/solinas32_2e468m17_19limbs/fesub.c
new file mode 100644
index 000000000..716f62fd9
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_19limbs/fesub.c
@@ -0,0 +1,60 @@
+static void fesub(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = ((0x3ffffde + x5) - x41);
+ out[1] = ((0x3fffffe + x7) - x43);
+ out[2] = ((0x1fffffe + x9) - x45);
+ out[3] = ((0x3fffffe + x11) - x47);
+ out[4] = ((0x3fffffe + x13) - x49);
+ out[5] = ((0x1fffffe + x15) - x51);
+ out[6] = ((0x3fffffe + x17) - x53);
+ out[7] = ((0x3fffffe + x19) - x55);
+ out[8] = ((0x1fffffe + x21) - x57);
+ out[9] = ((0x3fffffe + x23) - x59);
+ out[10] = ((0x1fffffe + x25) - x61);
+ out[11] = ((0x3fffffe + x27) - x63);
+ out[12] = ((0x3fffffe + x29) - x65);
+ out[13] = ((0x1fffffe + x31) - x67);
+ out[14] = ((0x3fffffe + x33) - x69);
+ out[15] = ((0x3fffffe + x35) - x71);
+ out[16] = ((0x1fffffe + x37) - x73);
+ out[17] = ((0x3fffffe + x39) - x75);
+ out[18] = ((0x1fffffe + x38) - x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_19limbs/fesubDisplay.log b/src/Specific/solinas32_2e468m17_19limbs/fesubDisplay.log
new file mode 100644
index 000000000..24e35ba8f
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_19limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ (((0x1fffffe + x38) - x74), ((0x3fffffe + x39) - x75), ((0x1fffffe + x37) - x73), ((0x3fffffe + x35) - x71), ((0x3fffffe + x33) - x69), ((0x1fffffe + x31) - x67), ((0x3fffffe + x29) - x65), ((0x3fffffe + x27) - x63), ((0x1fffffe + x25) - x61), ((0x3fffffe + x23) - x59), ((0x1fffffe + x21) - x57), ((0x3fffffe + x19) - x55), ((0x3fffffe + x17) - x53), ((0x1fffffe + x15) - x51), ((0x3fffffe + x13) - x49), ((0x3fffffe + x11) - x47), ((0x1fffffe + x9) - x45), ((0x3fffffe + x7) - x43), ((0x3ffffde + x5) - x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e468m17_19limbs/freeze.c b/src/Specific/solinas32_2e468m17_19limbs/freeze.c
new file mode 100644
index 000000000..3a728a145
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_19limbs/freeze.c
@@ -0,0 +1,99 @@
+static void freeze(uint32_t out[19], const uint32_t in1[19]) {
+ { const uint32_t x35 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffef);
+ { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x4, 0x1ffffff);
+ { 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 x6, 0xffffff);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x8, 0x1ffffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, 0x1ffffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0xffffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, 0x1ffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0x1ffffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0xffffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0x1ffffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0xffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0x1ffffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0x1ffffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0xffffff);
+ { uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0x1ffffff);
+ { uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0x1ffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0xffffff);
+ { uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0x1ffffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0xffffff);
+ { uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ { uint32_t x95 = (x94 & 0x1ffffef);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ { uint32_t x99 = (x94 & 0x1ffffff);
+ { uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ { uint32_t x103 = (x94 & 0xffffff);
+ { uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, Return x103);
+ { uint32_t x107 = (x94 & 0x1ffffff);
+ { uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x47, Return x107);
+ { uint32_t x111 = (x94 & 0x1ffffff);
+ { uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x50, Return x111);
+ { uint32_t x115 = (x94 & 0xffffff);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x53, Return x115);
+ { uint32_t x119 = (x94 & 0x1ffffff);
+ { uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x56, Return x119);
+ { uint32_t x123 = (x94 & 0x1ffffff);
+ { uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x59, Return x123);
+ { uint32_t x127 = (x94 & 0xffffff);
+ { uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x62, Return x127);
+ { uint32_t x131 = (x94 & 0x1ffffff);
+ { uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x65, Return x131);
+ { uint32_t x135 = (x94 & 0xffffff);
+ { uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x68, Return x135);
+ { uint32_t x139 = (x94 & 0x1ffffff);
+ { uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x71, Return x139);
+ { uint32_t x143 = (x94 & 0x1ffffff);
+ { uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x74, Return x143);
+ { uint32_t x147 = (x94 & 0xffffff);
+ { uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x77, Return x147);
+ { uint32_t x151 = (x94 & 0x1ffffff);
+ { uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x80, Return x151);
+ { uint32_t x155 = (x94 & 0x1ffffff);
+ { uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x83, Return x155);
+ { uint32_t x159 = (x94 & 0xffffff);
+ { uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x86, Return x159);
+ { uint32_t x163 = (x94 & 0x1ffffff);
+ { uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x89, Return x163);
+ { uint32_t x167 = (x94 & 0xffffff);
+ { uint32_t x169, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x92, Return x167);
+ out[0] = x97;
+ out[1] = x101;
+ out[2] = x105;
+ out[3] = x109;
+ out[4] = x113;
+ out[5] = x117;
+ out[6] = x121;
+ out[7] = x125;
+ out[8] = x129;
+ out[9] = x133;
+ out[10] = x137;
+ out[11] = x141;
+ out[12] = x145;
+ out[13] = x149;
+ out[14] = x153;
+ out[15] = x157;
+ out[16] = x161;
+ out[17] = x165;
+ out[18] = x169;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e468m17_19limbs/freezeDisplay.log b/src/Specific/solinas32_2e468m17_19limbs/freezeDisplay.log
new file mode 100644
index 000000000..a5f3c7bba
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17_19limbs/freezeDisplay.log
@@ -0,0 +1,65 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x35, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffef);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x4, 0x1ffffff);
+ 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 x6, 0xffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x8, 0x1ffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, 0x1ffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0xffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, 0x1ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0x1ffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0xffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0x1ffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0xffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0x1ffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0x1ffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0xffffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0x1ffffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0x1ffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0xffffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0x1ffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0xffffff);
+ uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ uint32_t x95 = (x94 & 0x1ffffef);
+ uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ uint32_t x99 = (x94 & 0x1ffffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ uint32_t x103 = (x94 & 0xffffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, Return x103);
+ uint32_t x107 = (x94 & 0x1ffffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x47, Return x107);
+ uint32_t x111 = (x94 & 0x1ffffff);
+ uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x50, Return x111);
+ uint32_t x115 = (x94 & 0xffffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x53, Return x115);
+ uint32_t x119 = (x94 & 0x1ffffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x56, Return x119);
+ uint32_t x123 = (x94 & 0x1ffffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x59, Return x123);
+ uint32_t x127 = (x94 & 0xffffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x62, Return x127);
+ uint32_t x131 = (x94 & 0x1ffffff);
+ uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x65, Return x131);
+ uint32_t x135 = (x94 & 0xffffff);
+ uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x68, Return x135);
+ uint32_t x139 = (x94 & 0x1ffffff);
+ uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x71, Return x139);
+ uint32_t x143 = (x94 & 0x1ffffff);
+ uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x74, Return x143);
+ uint32_t x147 = (x94 & 0xffffff);
+ uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x77, Return x147);
+ uint32_t x151 = (x94 & 0x1ffffff);
+ uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x80, Return x151);
+ uint32_t x155 = (x94 & 0x1ffffff);
+ uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x83, Return x155);
+ uint32_t x159 = (x94 & 0xffffff);
+ uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x86, Return x159);
+ uint32_t x163 = (x94 & 0x1ffffff);
+ uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x89, Return x163);
+ uint32_t x167 = (x94 & 0xffffff);
+ uint32_t x169, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x92, Return x167);
+ (Return x169, Return x165, Return x161, Return x157, Return x153, Return x149, Return x145, Return x141, Return x137, Return x133, Return x129, Return x125, Return x121, Return x117, Return x113, Return x109, Return x105, Return x101, Return x97))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e480m2e240m1_18limbs/feadd.c b/src/Specific/solinas32_2e480m2e240m1_18limbs/feadd.c
new file mode 100644
index 000000000..7b8380410
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_18limbs/feadd.c
@@ -0,0 +1,57 @@
+static void feadd(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = (x5 + x39);
+ out[1] = (x7 + x41);
+ out[2] = (x9 + x43);
+ out[3] = (x11 + x45);
+ out[4] = (x13 + x47);
+ out[5] = (x15 + x49);
+ out[6] = (x17 + x51);
+ out[7] = (x19 + x53);
+ out[8] = (x21 + x55);
+ out[9] = (x23 + x57);
+ out[10] = (x25 + x59);
+ out[11] = (x27 + x61);
+ out[12] = (x29 + x63);
+ out[13] = (x31 + x65);
+ out[14] = (x33 + x67);
+ out[15] = (x35 + x69);
+ out[16] = (x37 + x71);
+ out[17] = (x36 + x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e480m2e240m1_18limbs/feaddDisplay.log b/src/Specific/solinas32_2e480m2e240m1_18limbs/feaddDisplay.log
new file mode 100644
index 000000000..5e9c243f4
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_18limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ ((x36 + x70), (x37 + x71), (x35 + x69), (x33 + x67), (x31 + x65), (x29 + x63), (x27 + x61), (x25 + x59), (x23 + x57), (x21 + x55), (x19 + x53), (x17 + x51), (x15 + x49), (x13 + x47), (x11 + x45), (x9 + x43), (x7 + x41), (x5 + x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e480m2e240m1_18limbs/fesub.c b/src/Specific/solinas32_2e480m2e240m1_18limbs/fesub.c
new file mode 100644
index 000000000..034ac8f56
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_18limbs/fesub.c
@@ -0,0 +1,57 @@
+static void fesub(uint32_t out[18], const uint32_t in1[18], const uint32_t in2[18]) {
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x70 = in2[17];
+ { const uint32_t x71 = in2[16];
+ { const uint32_t x69 = in2[15];
+ { const uint32_t x67 = in2[14];
+ { const uint32_t x65 = in2[13];
+ { const uint32_t x63 = in2[12];
+ { const uint32_t x61 = in2[11];
+ { const uint32_t x59 = in2[10];
+ { const uint32_t x57 = in2[9];
+ { const uint32_t x55 = in2[8];
+ { const uint32_t x53 = in2[7];
+ { const uint32_t x51 = in2[6];
+ { const uint32_t x49 = in2[5];
+ { const uint32_t x47 = in2[4];
+ { const uint32_t x45 = in2[3];
+ { const uint32_t x43 = in2[2];
+ { const uint32_t x41 = in2[1];
+ { const uint32_t x39 = in2[0];
+ out[0] = ((0xffffffe + x5) - x39);
+ out[1] = ((0xffffffe + x7) - x41);
+ out[2] = ((0x7fffffe + x9) - x43);
+ out[3] = ((0xffffffe + x11) - x45);
+ out[4] = ((0xffffffe + x13) - x47);
+ out[5] = ((0x7fffffe + x15) - x49);
+ out[6] = ((0xffffffe + x17) - x51);
+ out[7] = ((0xffffffe + x19) - x53);
+ out[8] = ((0x7fffffe + x21) - x55);
+ out[9] = ((0xffffffc + x23) - x57);
+ out[10] = ((0xffffffe + x25) - x59);
+ out[11] = ((0x7fffffe + x27) - x61);
+ out[12] = ((0xffffffe + x29) - x63);
+ out[13] = ((0xffffffe + x31) - x65);
+ out[14] = ((0x7fffffe + x33) - x67);
+ out[15] = ((0xffffffe + x35) - x69);
+ out[16] = ((0xffffffe + x37) - x71);
+ out[17] = ((0x7fffffe + x36) - x70);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e480m2e240m1_18limbs/fesubDisplay.log b/src/Specific/solinas32_2e480m2e240m1_18limbs/fesubDisplay.log
new file mode 100644
index 000000000..ab9498c56
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_18limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x36, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x70, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41, x39))%core,
+ (((0x7fffffe + x36) - x70), ((0xffffffe + x37) - x71), ((0xffffffe + x35) - x69), ((0x7fffffe + x33) - x67), ((0xffffffe + x31) - x65), ((0xffffffe + x29) - x63), ((0x7fffffe + x27) - x61), ((0xffffffe + x25) - x59), ((0xffffffc + x23) - x57), ((0x7fffffe + x21) - x55), ((0xffffffe + x19) - x53), ((0xffffffe + x17) - x51), ((0x7fffffe + x15) - x49), ((0xffffffe + x13) - x47), ((0xffffffe + x11) - x45), ((0x7fffffe + x9) - x43), ((0xffffffe + x7) - x41), ((0xffffffe + x5) - x39)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e480m2e240m1_18limbs/freeze.c b/src/Specific/solinas32_2e480m2e240m1_18limbs/freeze.c
new file mode 100644
index 000000000..893a6ba35
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_18limbs/freeze.c
@@ -0,0 +1,94 @@
+static void freeze(uint32_t out[18], const uint32_t in1[18]) {
+ { const uint32_t x33 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { 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)) (0x0, Return x2, 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 x4, 0x7ffffff);
+ { 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 x6, 0x3ffffff);
+ { uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x7ffffff);
+ { uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x7ffffff);
+ { uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x3ffffff);
+ { uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x7ffffff);
+ { uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x7ffffff);
+ { uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x3ffffff);
+ { uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x7fffffe);
+ { uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x7ffffff);
+ { uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x3ffffff);
+ { uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x7ffffff);
+ { uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x7ffffff);
+ { uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x3ffffff);
+ { uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x7ffffff);
+ { uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x7ffffff);
+ { uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x3ffffff);
+ { uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ { uint32_t x90 = (x89 & 0x7ffffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ { uint32_t x94 = (x89 & 0x7ffffff);
+ { uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ { uint32_t x98 = (x89 & 0x3ffffff);
+ { uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ { uint32_t x102 = (x89 & 0x7ffffff);
+ { uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ { uint32_t x106 = (x89 & 0x7ffffff);
+ { uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ { uint32_t x110 = (x89 & 0x3ffffff);
+ { uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ { uint32_t x114 = (x89 & 0x7ffffff);
+ { uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ { uint32_t x118 = (x89 & 0x7ffffff);
+ { uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ { uint32_t x122 = (x89 & 0x3ffffff);
+ { uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ { uint32_t x126 = (x89 & 0x7fffffe);
+ { uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ { uint32_t x130 = (x89 & 0x7ffffff);
+ { uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ { uint32_t x134 = (x89 & 0x3ffffff);
+ { uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ { uint32_t x138 = (x89 & 0x7ffffff);
+ { uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ { uint32_t x142 = (x89 & 0x7ffffff);
+ { uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ { uint32_t x146 = (x89 & 0x3ffffff);
+ { uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ { uint32_t x150 = (x89 & 0x7ffffff);
+ { uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ { uint32_t x154 = (x89 & 0x7ffffff);
+ { uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ { uint32_t x158 = (x89 & 0x3ffffff);
+ { uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ out[0] = x92;
+ out[1] = x96;
+ out[2] = x100;
+ out[3] = x104;
+ out[4] = x108;
+ out[5] = x112;
+ out[6] = x116;
+ out[7] = x120;
+ out[8] = x124;
+ out[9] = x128;
+ out[10] = x132;
+ out[11] = x136;
+ out[12] = x140;
+ out[13] = x144;
+ out[14] = x148;
+ out[15] = x152;
+ out[16] = x156;
+ out[17] = x160;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e480m2e240m1_18limbs/freezeDisplay.log b/src/Specific/solinas32_2e480m2e240m1_18limbs/freezeDisplay.log
new file mode 100644
index 000000000..75988f109
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_18limbs/freezeDisplay.log
@@ -0,0 +1,62 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x33, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ 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)) (0x0, Return x2, 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 x4, 0x7ffffff);
+ 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 x6, 0x3ffffff);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x8, 0x7ffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x10, 0x7ffffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x12, 0x3ffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x14, 0x7ffffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x16, 0x7ffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x18, 0x3ffffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x20, 0x7fffffe);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x22, 0x7ffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x24, 0x3ffffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x26, 0x7ffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x28, 0x7ffffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x30, 0x3ffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x32, 0x7ffffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x34, 0x7ffffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x33, 0x3ffffff);
+ uint32_t x89 = cmovznz32(x88, 0x0, 0xffffffff);
+ uint32_t x90 = (x89 & 0x7ffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x36, Return x90);
+ uint32_t x94 = (x89 & 0x7ffffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x39, Return x94);
+ uint32_t x98 = (x89 & 0x3ffffff);
+ uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x42, Return x98);
+ uint32_t x102 = (x89 & 0x7ffffff);
+ uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x45, Return x102);
+ uint32_t x106 = (x89 & 0x7ffffff);
+ uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x48, Return x106);
+ uint32_t x110 = (x89 & 0x3ffffff);
+ uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x51, Return x110);
+ uint32_t x114 = (x89 & 0x7ffffff);
+ uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x54, Return x114);
+ uint32_t x118 = (x89 & 0x7ffffff);
+ uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x57, Return x118);
+ uint32_t x122 = (x89 & 0x3ffffff);
+ uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x60, Return x122);
+ uint32_t x126 = (x89 & 0x7fffffe);
+ uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x63, Return x126);
+ uint32_t x130 = (x89 & 0x7ffffff);
+ uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x66, Return x130);
+ uint32_t x134 = (x89 & 0x3ffffff);
+ uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x69, Return x134);
+ uint32_t x138 = (x89 & 0x7ffffff);
+ uint32_t x140, uint8_t x141 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x72, Return x138);
+ uint32_t x142 = (x89 & 0x7ffffff);
+ uint32_t x144, uint8_t x145 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x141, Return x75, Return x142);
+ uint32_t x146 = (x89 & 0x3ffffff);
+ uint32_t x148, uint8_t x149 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x145, Return x78, Return x146);
+ uint32_t x150 = (x89 & 0x7ffffff);
+ uint32_t x152, uint8_t x153 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x149, Return x81, Return x150);
+ uint32_t x154 = (x89 & 0x7ffffff);
+ uint32_t x156, uint8_t x157 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x153, Return x84, Return x154);
+ uint32_t x158 = (x89 & 0x3ffffff);
+ uint32_t x160, uint8_t _ = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x157, Return x87, Return x158);
+ (Return x160, Return x156, Return x152, Return x148, Return x144, Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e480m2e240m1_20limbs/feaddDisplay.log b/src/Specific/solinas32_2e480m2e240m1_20limbs/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_20limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ ((x40 + x78), (x41 + x79), (x39 + x77), (x37 + x75), (x35 + x73), (x33 + x71), (x31 + x69), (x29 + x67), (x27 + x65), (x25 + x63), (x23 + x61), (x21 + x59), (x19 + x57), (x17 + x55), (x15 + x53), (x13 + x51), (x11 + x49), (x9 + x47), (x7 + x45), (x5 + x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e480m2e240m1_20limbs/fesubDisplay.log b/src/Specific/solinas32_2e480m2e240m1_20limbs/fesubDisplay.log
new file mode 100644
index 000000000..bbb7f10be
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_20limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ (((0x1fffffe + x40) - x78), ((0x1fffffe + x41) - x79), ((0x1fffffe + x39) - x77), ((0x1fffffe + x37) - x75), ((0x1fffffe + x35) - x73), ((0x1fffffe + x33) - x71), ((0x1fffffe + x31) - x69), ((0x1fffffe + x29) - x67), ((0x1fffffe + x27) - x65), ((Const 33554428 + x25) - x63), ((0x1fffffe + x23) - x61), ((0x1fffffe + x21) - x59), ((0x1fffffe + x19) - x57), ((0x1fffffe + x17) - x55), ((0x1fffffe + x15) - x53), ((0x1fffffe + x13) - x51), ((0x1fffffe + x11) - x49), ((0x1fffffe + x9) - x47), ((0x1fffffe + x7) - x45), ((0x1fffffe + x5) - x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e480m2e240m1_20limbs/freezeDisplay.log b/src/Specific/solinas32_2e480m2e240m1_20limbs/freezeDisplay.log
new file mode 100644
index 000000000..c85195aff
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1_20limbs/freezeDisplay.log
@@ -0,0 +1,68 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x37, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xffffff);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x4, 0xffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x6, 0xffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x8, 0xffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x10, 0xffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x12, 0xffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x14, 0xffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x16, 0xffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x18, 0xffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x20, 0xffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x22, 0xfffffe);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x24, 0xffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x26, 0xffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x28, 0xffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x30, 0xffffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x32, 0xffffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x34, 0xffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x36, 0xffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x38, 0xffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x37, 0xffffff);
+ uint32_t x99 = cmovznz32(x98, 0x0, 0xffffffff);
+ uint32_t x100 = (x99 & 0xffffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x40, Return x100);
+ uint32_t x104 = (x99 & 0xffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x43, Return x104);
+ uint32_t x108 = (x99 & 0xffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x46, Return x108);
+ uint32_t x112 = (x99 & 0xffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x49, Return x112);
+ uint32_t x116 = (x99 & 0xffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x52, Return x116);
+ uint32_t x120 = (x99 & 0xffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x55, Return x120);
+ uint32_t x124 = (x99 & 0xffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x58, Return x124);
+ uint32_t x128 = (x99 & 0xffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x61, Return x128);
+ uint32_t x132 = (x99 & 0xffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x64, Return x132);
+ uint32_t x136 = (x99 & 0xffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x67, Return x136);
+ uint32_t x140 = (x99 & 0xfffffe);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x70, Return x140);
+ uint32_t x144 = (x99 & 0xffffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x73, Return x144);
+ uint32_t x148 = (x99 & 0xffffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x76, Return x148);
+ uint32_t x152 = (x99 & 0xffffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x79, Return x152);
+ uint32_t x156 = (x99 & 0xffffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x82, Return x156);
+ uint32_t x160 = (x99 & 0xffffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x85, Return x160);
+ uint32_t x164 = (x99 & 0xffffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x88, Return x164);
+ uint32_t x168 = (x99 & 0xffffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x91, Return x168);
+ uint32_t x172 = (x99 & 0xffffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x94, Return x172);
+ uint32_t x176 = (x99 & 0xffffff);
+ uint32_t x178, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x97, Return x176);
+ (Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e488m17_19limbs/feadd.c b/src/Specific/solinas32_2e488m17_19limbs/feadd.c
new file mode 100644
index 000000000..7432e2ef1
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_19limbs/feadd.c
@@ -0,0 +1,60 @@
+static void feadd(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = (x5 + x41);
+ out[1] = (x7 + x43);
+ out[2] = (x9 + x45);
+ out[3] = (x11 + x47);
+ out[4] = (x13 + x49);
+ out[5] = (x15 + x51);
+ out[6] = (x17 + x53);
+ out[7] = (x19 + x55);
+ out[8] = (x21 + x57);
+ out[9] = (x23 + x59);
+ out[10] = (x25 + x61);
+ out[11] = (x27 + x63);
+ out[12] = (x29 + x65);
+ out[13] = (x31 + x67);
+ out[14] = (x33 + x69);
+ out[15] = (x35 + x71);
+ out[16] = (x37 + x73);
+ out[17] = (x39 + x75);
+ out[18] = (x38 + x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e488m17_19limbs/feaddDisplay.log b/src/Specific/solinas32_2e488m17_19limbs/feaddDisplay.log
new file mode 100644
index 000000000..76a71b356
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_19limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ ((x38 + x74), (x39 + x75), (x37 + x73), (x35 + x71), (x33 + x69), (x31 + x67), (x29 + x65), (x27 + x63), (x25 + x61), (x23 + x59), (x21 + x57), (x19 + x55), (x17 + x53), (x15 + x51), (x13 + x49), (x11 + x47), (x9 + x45), (x7 + x43), (x5 + x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e488m17_19limbs/fesub.c b/src/Specific/solinas32_2e488m17_19limbs/fesub.c
new file mode 100644
index 000000000..844b8947a
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_19limbs/fesub.c
@@ -0,0 +1,60 @@
+static void fesub(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = ((0x7ffffde + x5) - x41);
+ out[1] = ((0x7fffffe + x7) - x43);
+ out[2] = ((0x7fffffe + x9) - x45);
+ out[3] = ((0x3fffffe + x11) - x47);
+ out[4] = ((0x7fffffe + x13) - x49);
+ out[5] = ((0x7fffffe + x15) - x51);
+ out[6] = ((0x3fffffe + x17) - x53);
+ out[7] = ((0x7fffffe + x19) - x55);
+ out[8] = ((0x7fffffe + x21) - x57);
+ out[9] = ((0x3fffffe + x23) - x59);
+ out[10] = ((0x7fffffe + x25) - x61);
+ out[11] = ((0x7fffffe + x27) - x63);
+ out[12] = ((0x3fffffe + x29) - x65);
+ out[13] = ((0x7fffffe + x31) - x67);
+ out[14] = ((0x7fffffe + x33) - x69);
+ out[15] = ((0x3fffffe + x35) - x71);
+ out[16] = ((0x7fffffe + x37) - x73);
+ out[17] = ((0x7fffffe + x39) - x75);
+ out[18] = ((0x3fffffe + x38) - x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e488m17_19limbs/fesubDisplay.log b/src/Specific/solinas32_2e488m17_19limbs/fesubDisplay.log
new file mode 100644
index 000000000..7e8da590d
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_19limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ (((0x3fffffe + x38) - x74), ((0x7fffffe + x39) - x75), ((0x7fffffe + x37) - x73), ((0x3fffffe + x35) - x71), ((0x7fffffe + x33) - x69), ((0x7fffffe + x31) - x67), ((0x3fffffe + x29) - x65), ((0x7fffffe + x27) - x63), ((0x7fffffe + x25) - x61), ((0x3fffffe + x23) - x59), ((0x7fffffe + x21) - x57), ((0x7fffffe + x19) - x55), ((0x3fffffe + x17) - x53), ((0x7fffffe + x15) - x51), ((0x7fffffe + x13) - x49), ((0x3fffffe + x11) - x47), ((0x7fffffe + x9) - x45), ((0x7fffffe + x7) - x43), ((0x7ffffde + x5) - x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e488m17_19limbs/freeze.c b/src/Specific/solinas32_2e488m17_19limbs/freeze.c
new file mode 100644
index 000000000..4aa6c61f8
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_19limbs/freeze.c
@@ -0,0 +1,99 @@
+static void freeze(uint32_t out[19], const uint32_t in1[19]) {
+ { const uint32_t x35 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffef);
+ { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x4, 0x3ffffff);
+ { uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x6, 0x3ffffff);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x8, 0x1ffffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, 0x3ffffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0x3ffffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, 0x1ffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0x3ffffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0x3ffffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0x1ffffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0x3ffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0x3ffffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0x1ffffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0x3ffffff);
+ { uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0x3ffffff);
+ { uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0x1ffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0x3ffffff);
+ { uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0x3ffffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0x1ffffff);
+ { uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ { uint32_t x95 = (x94 & 0x3ffffef);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ { uint32_t x99 = (x94 & 0x3ffffff);
+ { uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ { uint32_t x103 = (x94 & 0x3ffffff);
+ { uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, Return x103);
+ { uint32_t x107 = (x94 & 0x1ffffff);
+ { uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x47, Return x107);
+ { uint32_t x111 = (x94 & 0x3ffffff);
+ { uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x50, Return x111);
+ { uint32_t x115 = (x94 & 0x3ffffff);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x53, Return x115);
+ { uint32_t x119 = (x94 & 0x1ffffff);
+ { uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x56, Return x119);
+ { uint32_t x123 = (x94 & 0x3ffffff);
+ { uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x59, Return x123);
+ { uint32_t x127 = (x94 & 0x3ffffff);
+ { uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x62, Return x127);
+ { uint32_t x131 = (x94 & 0x1ffffff);
+ { uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x65, Return x131);
+ { uint32_t x135 = (x94 & 0x3ffffff);
+ { uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x68, Return x135);
+ { uint32_t x139 = (x94 & 0x3ffffff);
+ { uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x71, Return x139);
+ { uint32_t x143 = (x94 & 0x1ffffff);
+ { uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x74, Return x143);
+ { uint32_t x147 = (x94 & 0x3ffffff);
+ { uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x77, Return x147);
+ { uint32_t x151 = (x94 & 0x3ffffff);
+ { uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x80, Return x151);
+ { uint32_t x155 = (x94 & 0x1ffffff);
+ { uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x83, Return x155);
+ { uint32_t x159 = (x94 & 0x3ffffff);
+ { uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x86, Return x159);
+ { uint32_t x163 = (x94 & 0x3ffffff);
+ { uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x89, Return x163);
+ { uint32_t x167 = (x94 & 0x1ffffff);
+ { uint32_t x169, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x92, Return x167);
+ out[0] = x97;
+ out[1] = x101;
+ out[2] = x105;
+ out[3] = x109;
+ out[4] = x113;
+ out[5] = x117;
+ out[6] = x121;
+ out[7] = x125;
+ out[8] = x129;
+ out[9] = x133;
+ out[10] = x137;
+ out[11] = x141;
+ out[12] = x145;
+ out[13] = x149;
+ out[14] = x153;
+ out[15] = x157;
+ out[16] = x161;
+ out[17] = x165;
+ out[18] = x169;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e488m17_19limbs/freezeDisplay.log b/src/Specific/solinas32_2e488m17_19limbs/freezeDisplay.log
new file mode 100644
index 000000000..68a85d9df
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_19limbs/freezeDisplay.log
@@ -0,0 +1,65 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x35, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffef);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x4, 0x3ffffff);
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x6, 0x3ffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x8, 0x1ffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, 0x3ffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0x3ffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, 0x1ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0x3ffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0x3ffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0x1ffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0x3ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0x3ffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0x1ffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0x3ffffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0x3ffffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0x1ffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0x3ffffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0x3ffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0x1ffffff);
+ uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ uint32_t x95 = (x94 & 0x3ffffef);
+ uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ uint32_t x99 = (x94 & 0x3ffffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ uint32_t x103 = (x94 & 0x3ffffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, Return x103);
+ uint32_t x107 = (x94 & 0x1ffffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x47, Return x107);
+ uint32_t x111 = (x94 & 0x3ffffff);
+ uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x50, Return x111);
+ uint32_t x115 = (x94 & 0x3ffffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x53, Return x115);
+ uint32_t x119 = (x94 & 0x1ffffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x56, Return x119);
+ uint32_t x123 = (x94 & 0x3ffffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x59, Return x123);
+ uint32_t x127 = (x94 & 0x3ffffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x62, Return x127);
+ uint32_t x131 = (x94 & 0x1ffffff);
+ uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x65, Return x131);
+ uint32_t x135 = (x94 & 0x3ffffff);
+ uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x68, Return x135);
+ uint32_t x139 = (x94 & 0x3ffffff);
+ uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x71, Return x139);
+ uint32_t x143 = (x94 & 0x1ffffff);
+ uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x74, Return x143);
+ uint32_t x147 = (x94 & 0x3ffffff);
+ uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x77, Return x147);
+ uint32_t x151 = (x94 & 0x3ffffff);
+ uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x80, Return x151);
+ uint32_t x155 = (x94 & 0x1ffffff);
+ uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x83, Return x155);
+ uint32_t x159 = (x94 & 0x3ffffff);
+ uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x86, Return x159);
+ uint32_t x163 = (x94 & 0x3ffffff);
+ uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x89, Return x163);
+ uint32_t x167 = (x94 & 0x1ffffff);
+ uint32_t x169, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x92, Return x167);
+ (Return x169, Return x165, Return x161, Return x157, Return x153, Return x149, Return x145, Return x141, Return x137, Return x133, Return x129, Return x125, Return x121, Return x117, Return x113, Return x109, Return x105, Return x101, Return x97))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e488m17_20limbs/feaddDisplay.log b/src/Specific/solinas32_2e488m17_20limbs/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_20limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ ((x40 + x78), (x41 + x79), (x39 + x77), (x37 + x75), (x35 + x73), (x33 + x71), (x31 + x69), (x29 + x67), (x27 + x65), (x25 + x63), (x23 + x61), (x21 + x59), (x19 + x57), (x17 + x55), (x15 + x53), (x13 + x51), (x11 + x49), (x9 + x47), (x7 + x45), (x5 + x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e488m17_20limbs/fesubDisplay.log b/src/Specific/solinas32_2e488m17_20limbs/fesubDisplay.log
new file mode 100644
index 000000000..452ba7d53
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_20limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ (((0x1fffffe + x40) - x78), ((0x1fffffe + x41) - x79), ((0x3fffffe + x39) - x77), ((0x1fffffe + x37) - x75), ((0x3fffffe + x35) - x73), ((0x1fffffe + x33) - x71), ((0x1fffffe + x31) - x69), ((0x3fffffe + x29) - x67), ((0x1fffffe + x27) - x65), ((0x3fffffe + x25) - x63), ((0x1fffffe + x23) - x61), ((0x1fffffe + x21) - x59), ((0x3fffffe + x19) - x57), ((0x1fffffe + x17) - x55), ((0x3fffffe + x15) - x53), ((0x1fffffe + x13) - x51), ((0x1fffffe + x11) - x49), ((0x3fffffe + x9) - x47), ((0x1fffffe + x7) - x45), ((0x3ffffde + x5) - x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e488m17_20limbs/freezeDisplay.log b/src/Specific/solinas32_2e488m17_20limbs/freezeDisplay.log
new file mode 100644
index 000000000..908e52cea
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17_20limbs/freezeDisplay.log
@@ -0,0 +1,68 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x37, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffef);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x4, 0xffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x6, 0x1ffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x8, 0xffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x10, 0xffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x12, 0x1ffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x14, 0xffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x16, 0x1ffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x18, 0xffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x20, 0xffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x22, 0x1ffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x24, 0xffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x26, 0x1ffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x28, 0xffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x30, 0xffffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x32, 0x1ffffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x34, 0xffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x36, 0x1ffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x38, 0xffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x37, 0xffffff);
+ uint32_t x99 = cmovznz32(x98, 0x0, 0xffffffff);
+ uint32_t x100 = (x99 & 0x1ffffef);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x40, Return x100);
+ uint32_t x104 = (x99 & 0xffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x43, Return x104);
+ uint32_t x108 = (x99 & 0x1ffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x46, Return x108);
+ uint32_t x112 = (x99 & 0xffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x49, Return x112);
+ uint32_t x116 = (x99 & 0xffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x52, Return x116);
+ uint32_t x120 = (x99 & 0x1ffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x55, Return x120);
+ uint32_t x124 = (x99 & 0xffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x58, Return x124);
+ uint32_t x128 = (x99 & 0x1ffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x61, Return x128);
+ uint32_t x132 = (x99 & 0xffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x64, Return x132);
+ uint32_t x136 = (x99 & 0xffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x67, Return x136);
+ uint32_t x140 = (x99 & 0x1ffffff);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x70, Return x140);
+ uint32_t x144 = (x99 & 0xffffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x73, Return x144);
+ uint32_t x148 = (x99 & 0x1ffffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x76, Return x148);
+ uint32_t x152 = (x99 & 0xffffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x79, Return x152);
+ uint32_t x156 = (x99 & 0xffffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x82, Return x156);
+ uint32_t x160 = (x99 & 0x1ffffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x85, Return x160);
+ uint32_t x164 = (x99 & 0xffffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x88, Return x164);
+ uint32_t x168 = (x99 & 0x1ffffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x91, Return x168);
+ uint32_t x172 = (x99 & 0xffffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x94, Return x172);
+ uint32_t x176 = (x99 & 0xffffff);
+ uint32_t x178, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x97, Return x176);
+ (Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e489m21_19limbs/feadd.c b/src/Specific/solinas32_2e489m21_19limbs/feadd.c
new file mode 100644
index 000000000..7432e2ef1
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_19limbs/feadd.c
@@ -0,0 +1,60 @@
+static void feadd(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = (x5 + x41);
+ out[1] = (x7 + x43);
+ out[2] = (x9 + x45);
+ out[3] = (x11 + x47);
+ out[4] = (x13 + x49);
+ out[5] = (x15 + x51);
+ out[6] = (x17 + x53);
+ out[7] = (x19 + x55);
+ out[8] = (x21 + x57);
+ out[9] = (x23 + x59);
+ out[10] = (x25 + x61);
+ out[11] = (x27 + x63);
+ out[12] = (x29 + x65);
+ out[13] = (x31 + x67);
+ out[14] = (x33 + x69);
+ out[15] = (x35 + x71);
+ out[16] = (x37 + x73);
+ out[17] = (x39 + x75);
+ out[18] = (x38 + x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e489m21_19limbs/feaddDisplay.log b/src/Specific/solinas32_2e489m21_19limbs/feaddDisplay.log
new file mode 100644
index 000000000..76a71b356
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_19limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ ((x38 + x74), (x39 + x75), (x37 + x73), (x35 + x71), (x33 + x69), (x31 + x67), (x29 + x65), (x27 + x63), (x25 + x61), (x23 + x59), (x21 + x57), (x19 + x55), (x17 + x53), (x15 + x51), (x13 + x49), (x11 + x47), (x9 + x45), (x7 + x43), (x5 + x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e489m21_19limbs/fesub.c b/src/Specific/solinas32_2e489m21_19limbs/fesub.c
new file mode 100644
index 000000000..41d77ed37
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_19limbs/fesub.c
@@ -0,0 +1,60 @@
+static void fesub(uint32_t out[19], const uint32_t in1[19], const uint32_t in2[19]) {
+ { const uint32_t x38 = in1[18];
+ { const uint32_t x39 = in1[17];
+ { const uint32_t x37 = in1[16];
+ { const uint32_t x35 = in1[15];
+ { const uint32_t x33 = in1[14];
+ { const uint32_t x31 = in1[13];
+ { const uint32_t x29 = in1[12];
+ { const uint32_t x27 = in1[11];
+ { const uint32_t x25 = in1[10];
+ { const uint32_t x23 = in1[9];
+ { const uint32_t x21 = in1[8];
+ { const uint32_t x19 = in1[7];
+ { const uint32_t x17 = in1[6];
+ { const uint32_t x15 = in1[5];
+ { const uint32_t x13 = in1[4];
+ { const uint32_t x11 = in1[3];
+ { const uint32_t x9 = in1[2];
+ { const uint32_t x7 = in1[1];
+ { const uint32_t x5 = in1[0];
+ { const uint32_t x74 = in2[18];
+ { const uint32_t x75 = in2[17];
+ { const uint32_t x73 = in2[16];
+ { const uint32_t x71 = in2[15];
+ { const uint32_t x69 = in2[14];
+ { const uint32_t x67 = in2[13];
+ { const uint32_t x65 = in2[12];
+ { const uint32_t x63 = in2[11];
+ { const uint32_t x61 = in2[10];
+ { const uint32_t x59 = in2[9];
+ { const uint32_t x57 = in2[8];
+ { const uint32_t x55 = in2[7];
+ { const uint32_t x53 = in2[6];
+ { const uint32_t x51 = in2[5];
+ { const uint32_t x49 = in2[4];
+ { const uint32_t x47 = in2[3];
+ { const uint32_t x45 = in2[2];
+ { const uint32_t x43 = in2[1];
+ { const uint32_t x41 = in2[0];
+ out[0] = ((Const 134217686 + x5) - x41);
+ out[1] = ((0x7fffffe + x7) - x43);
+ out[2] = ((0x7fffffe + x9) - x45);
+ out[3] = ((0x3fffffe + x11) - x47);
+ out[4] = ((0x7fffffe + x13) - x49);
+ out[5] = ((0x7fffffe + x15) - x51);
+ out[6] = ((0x7fffffe + x17) - x53);
+ out[7] = ((0x3fffffe + x19) - x55);
+ out[8] = ((0x7fffffe + x21) - x57);
+ out[9] = ((0x7fffffe + x23) - x59);
+ out[10] = ((0x7fffffe + x25) - x61);
+ out[11] = ((0x3fffffe + x27) - x63);
+ out[12] = ((0x7fffffe + x29) - x65);
+ out[13] = ((0x7fffffe + x31) - x67);
+ out[14] = ((0x7fffffe + x33) - x69);
+ out[15] = ((0x3fffffe + x35) - x71);
+ out[16] = ((0x7fffffe + x37) - x73);
+ out[17] = ((0x7fffffe + x39) - x75);
+ out[18] = ((0x3fffffe + x38) - x74);
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e489m21_19limbs/fesubDisplay.log b/src/Specific/solinas32_2e489m21_19limbs/fesubDisplay.log
new file mode 100644
index 000000000..0ffc770a7
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_19limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ (((0x3fffffe + x38) - x74), ((0x7fffffe + x39) - x75), ((0x7fffffe + x37) - x73), ((0x3fffffe + x35) - x71), ((0x7fffffe + x33) - x69), ((0x7fffffe + x31) - x67), ((0x7fffffe + x29) - x65), ((0x3fffffe + x27) - x63), ((0x7fffffe + x25) - x61), ((0x7fffffe + x23) - x59), ((0x7fffffe + x21) - x57), ((0x3fffffe + x19) - x55), ((0x7fffffe + x17) - x53), ((0x7fffffe + x15) - x51), ((0x7fffffe + x13) - x49), ((0x3fffffe + x11) - x47), ((0x7fffffe + x9) - x45), ((0x7fffffe + x7) - x43), ((Const 134217686 + x5) - x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e489m21_19limbs/freeze.c b/src/Specific/solinas32_2e489m21_19limbs/freeze.c
new file mode 100644
index 000000000..f75706b61
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_19limbs/freeze.c
@@ -0,0 +1,99 @@
+static void freeze(uint32_t out[19], const uint32_t in1[19]) {
+ { const uint32_t x35 = in1[18];
+ { const uint32_t x36 = in1[17];
+ { const uint32_t x34 = in1[16];
+ { const uint32_t x32 = in1[15];
+ { const uint32_t x30 = in1[14];
+ { const uint32_t x28 = in1[13];
+ { const uint32_t x26 = in1[12];
+ { const uint32_t x24 = in1[11];
+ { const uint32_t x22 = in1[10];
+ { const uint32_t x20 = in1[9];
+ { const uint32_t x18 = in1[8];
+ { const uint32_t x16 = in1[7];
+ { const uint32_t x14 = in1[6];
+ { const uint32_t x12 = in1[5];
+ { const uint32_t x10 = in1[4];
+ { const uint32_t x8 = in1[3];
+ { const uint32_t x6 = in1[2];
+ { const uint32_t x4 = in1[1];
+ { const uint32_t x2 = in1[0];
+ { uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 67108843);
+ { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x4, 0x3ffffff);
+ { uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x6, 0x3ffffff);
+ { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x8, 0x1ffffff);
+ { uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, 0x3ffffff);
+ { uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0x3ffffff);
+ { uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, 0x3ffffff);
+ { uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0x1ffffff);
+ { uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0x3ffffff);
+ { uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0x3ffffff);
+ { uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0x3ffffff);
+ { uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0x1ffffff);
+ { uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0x3ffffff);
+ { uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0x3ffffff);
+ { uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0x3ffffff);
+ { uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0x1ffffff);
+ { uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0x3ffffff);
+ { uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0x3ffffff);
+ { uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0x1ffffff);
+ { uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ { uint32_t x95 = (x94 & Const 67108843);
+ { uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ { uint32_t x99 = (x94 & 0x3ffffff);
+ { uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ { uint32_t x103 = (x94 & 0x3ffffff);
+ { uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, Return x103);
+ { uint32_t x107 = (x94 & 0x1ffffff);
+ { uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x47, Return x107);
+ { uint32_t x111 = (x94 & 0x3ffffff);
+ { uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x50, Return x111);
+ { uint32_t x115 = (x94 & 0x3ffffff);
+ { uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x53, Return x115);
+ { uint32_t x119 = (x94 & 0x3ffffff);
+ { uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x56, Return x119);
+ { uint32_t x123 = (x94 & 0x1ffffff);
+ { uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x59, Return x123);
+ { uint32_t x127 = (x94 & 0x3ffffff);
+ { uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x62, Return x127);
+ { uint32_t x131 = (x94 & 0x3ffffff);
+ { uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x65, Return x131);
+ { uint32_t x135 = (x94 & 0x3ffffff);
+ { uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x68, Return x135);
+ { uint32_t x139 = (x94 & 0x1ffffff);
+ { uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x71, Return x139);
+ { uint32_t x143 = (x94 & 0x3ffffff);
+ { uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x74, Return x143);
+ { uint32_t x147 = (x94 & 0x3ffffff);
+ { uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x77, Return x147);
+ { uint32_t x151 = (x94 & 0x3ffffff);
+ { uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x80, Return x151);
+ { uint32_t x155 = (x94 & 0x1ffffff);
+ { uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x83, Return x155);
+ { uint32_t x159 = (x94 & 0x3ffffff);
+ { uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x86, Return x159);
+ { uint32_t x163 = (x94 & 0x3ffffff);
+ { uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x89, Return x163);
+ { uint32_t x167 = (x94 & 0x1ffffff);
+ { uint32_t x169, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x92, Return x167);
+ out[0] = x97;
+ out[1] = x101;
+ out[2] = x105;
+ out[3] = x109;
+ out[4] = x113;
+ out[5] = x117;
+ out[6] = x121;
+ out[7] = x125;
+ out[8] = x129;
+ out[9] = x133;
+ out[10] = x137;
+ out[11] = x141;
+ out[12] = x145;
+ out[13] = x149;
+ out[14] = x153;
+ out[15] = x157;
+ out[16] = x161;
+ out[17] = x165;
+ out[18] = x169;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas32_2e489m21_19limbs/freezeDisplay.log b/src/Specific/solinas32_2e489m21_19limbs/freezeDisplay.log
new file mode 100644
index 000000000..e7c4e1822
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_19limbs/freezeDisplay.log
@@ -0,0 +1,65 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x35, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 67108843);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x4, 0x3ffffff);
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x6, 0x3ffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x8, 0x1ffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, 0x3ffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0x3ffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, 0x3ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0x1ffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0x3ffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0x3ffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0x3ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0x1ffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0x3ffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0x3ffffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0x3ffffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0x1ffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0x3ffffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0x3ffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0x1ffffff);
+ uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ uint32_t x95 = (x94 & Const 67108843);
+ uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ uint32_t x99 = (x94 & 0x3ffffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ uint32_t x103 = (x94 & 0x3ffffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, Return x103);
+ uint32_t x107 = (x94 & 0x1ffffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x47, Return x107);
+ uint32_t x111 = (x94 & 0x3ffffff);
+ uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x50, Return x111);
+ uint32_t x115 = (x94 & 0x3ffffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x53, Return x115);
+ uint32_t x119 = (x94 & 0x3ffffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x56, Return x119);
+ uint32_t x123 = (x94 & 0x1ffffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x59, Return x123);
+ uint32_t x127 = (x94 & 0x3ffffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x62, Return x127);
+ uint32_t x131 = (x94 & 0x3ffffff);
+ uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x65, Return x131);
+ uint32_t x135 = (x94 & 0x3ffffff);
+ uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x68, Return x135);
+ uint32_t x139 = (x94 & 0x1ffffff);
+ uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x71, Return x139);
+ uint32_t x143 = (x94 & 0x3ffffff);
+ uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x74, Return x143);
+ uint32_t x147 = (x94 & 0x3ffffff);
+ uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x77, Return x147);
+ uint32_t x151 = (x94 & 0x3ffffff);
+ uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x80, Return x151);
+ uint32_t x155 = (x94 & 0x1ffffff);
+ uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x83, Return x155);
+ uint32_t x159 = (x94 & 0x3ffffff);
+ uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x86, Return x159);
+ uint32_t x163 = (x94 & 0x3ffffff);
+ uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x89, Return x163);
+ uint32_t x167 = (x94 & 0x1ffffff);
+ uint32_t x169, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x92, Return x167);
+ (Return x169, Return x165, Return x161, Return x157, Return x153, Return x149, Return x145, Return x141, Return x137, Return x133, Return x129, Return x125, Return x121, Return x117, Return x113, Return x109, Return x105, Return x101, Return x97))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e489m21_20limbs/feaddDisplay.log b/src/Specific/solinas32_2e489m21_20limbs/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_20limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ ((x40 + x78), (x41 + x79), (x39 + x77), (x37 + x75), (x35 + x73), (x33 + x71), (x31 + x69), (x29 + x67), (x27 + x65), (x25 + x63), (x23 + x61), (x21 + x59), (x19 + x57), (x17 + x55), (x15 + x53), (x13 + x51), (x11 + x49), (x9 + x47), (x7 + x45), (x5 + x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e489m21_20limbs/fesubDisplay.log b/src/Specific/solinas32_2e489m21_20limbs/fesubDisplay.log
new file mode 100644
index 000000000..299003e3f
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_20limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ (((0x1fffffe + x40) - x78), ((0x1fffffe + x41) - x79), ((0x3fffffe + x39) - x77), ((0x1fffffe + x37) - x75), ((0x3fffffe + x35) - x73), ((0x1fffffe + x33) - x71), ((0x3fffffe + x31) - x69), ((0x1fffffe + x29) - x67), ((0x3fffffe + x27) - x65), ((0x1fffffe + x25) - x63), ((0x1fffffe + x23) - x61), ((0x3fffffe + x21) - x59), ((0x1fffffe + x19) - x57), ((0x3fffffe + x17) - x55), ((0x1fffffe + x15) - x53), ((0x3fffffe + x13) - x51), ((0x1fffffe + x11) - x49), ((0x3fffffe + x9) - x47), ((0x1fffffe + x7) - x45), ((Const 67108822 + x5) - x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e489m21_20limbs/freezeDisplay.log b/src/Specific/solinas32_2e489m21_20limbs/freezeDisplay.log
new file mode 100644
index 000000000..f2fed901d
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21_20limbs/freezeDisplay.log
@@ -0,0 +1,68 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x37, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554411);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x4, 0xffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x6, 0x1ffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x8, 0xffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x10, 0x1ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x12, 0xffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x14, 0x1ffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x16, 0xffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x18, 0x1ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x20, 0xffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x22, 0xffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x24, 0x1ffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x26, 0xffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x28, 0x1ffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x30, 0xffffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x32, 0x1ffffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x34, 0xffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x36, 0x1ffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x38, 0xffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x37, 0xffffff);
+ uint32_t x99 = cmovznz32(x98, 0x0, 0xffffffff);
+ uint32_t x100 = (x99 & Const 33554411);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x40, Return x100);
+ uint32_t x104 = (x99 & 0xffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x43, Return x104);
+ uint32_t x108 = (x99 & 0x1ffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x46, Return x108);
+ uint32_t x112 = (x99 & 0xffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x49, Return x112);
+ uint32_t x116 = (x99 & 0x1ffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x52, Return x116);
+ uint32_t x120 = (x99 & 0xffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x55, Return x120);
+ uint32_t x124 = (x99 & 0x1ffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x58, Return x124);
+ uint32_t x128 = (x99 & 0xffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x61, Return x128);
+ uint32_t x132 = (x99 & 0x1ffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x64, Return x132);
+ uint32_t x136 = (x99 & 0xffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x67, Return x136);
+ uint32_t x140 = (x99 & 0xffffff);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x70, Return x140);
+ uint32_t x144 = (x99 & 0x1ffffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x73, Return x144);
+ uint32_t x148 = (x99 & 0xffffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x76, Return x148);
+ uint32_t x152 = (x99 & 0x1ffffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x79, Return x152);
+ uint32_t x156 = (x99 & 0xffffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x82, Return x156);
+ uint32_t x160 = (x99 & 0x1ffffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x85, Return x160);
+ uint32_t x164 = (x99 & 0xffffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x88, Return x164);
+ uint32_t x168 = (x99 & 0x1ffffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x91, Return x168);
+ uint32_t x172 = (x99 & 0xffffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x94, Return x172);
+ uint32_t x176 = (x99 & 0xffffff);
+ uint32_t x178, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x97, Return x176);
+ (Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e495m31_20limbs/feaddDisplay.log b/src/Specific/solinas32_2e495m31_20limbs/feaddDisplay.log
new file mode 100644
index 000000000..eebe17777
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31_20limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ ((x40 + x78), (x41 + x79), (x39 + x77), (x37 + x75), (x35 + x73), (x33 + x71), (x31 + x69), (x29 + x67), (x27 + x65), (x25 + x63), (x23 + x61), (x21 + x59), (x19 + x57), (x17 + x55), (x15 + x53), (x13 + x51), (x11 + x49), (x9 + x47), (x7 + x45), (x5 + x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e495m31_20limbs/fesubDisplay.log b/src/Specific/solinas32_2e495m31_20limbs/fesubDisplay.log
new file mode 100644
index 000000000..ade0fa003
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31_20limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x40, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x78, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43))%core,
+ (((0x1fffffe + x40) - x78), ((0x3fffffe + x41) - x79), ((0x3fffffe + x39) - x77), ((0x3fffffe + x37) - x75), ((0x1fffffe + x35) - x73), ((0x3fffffe + x33) - x71), ((0x3fffffe + x31) - x69), ((0x3fffffe + x29) - x67), ((0x1fffffe + x27) - x65), ((0x3fffffe + x25) - x63), ((0x3fffffe + x23) - x61), ((0x3fffffe + x21) - x59), ((0x1fffffe + x19) - x57), ((0x3fffffe + x17) - x55), ((0x3fffffe + x15) - x53), ((0x3fffffe + x13) - x51), ((0x1fffffe + x11) - x49), ((0x3fffffe + x9) - x47), ((0x3fffffe + x7) - x45), ((Const 67108802 + x5) - x43)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e495m31_20limbs/freezeDisplay.log b/src/Specific/solinas32_2e495m31_20limbs/freezeDisplay.log
new file mode 100644
index 000000000..74d525322
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31_20limbs/freezeDisplay.log
@@ -0,0 +1,68 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x37, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x40, uint8_t x41 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 33554401);
+ uint32_t x43, uint8_t x44 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x41, Return x4, 0x1ffffff);
+ uint32_t x46, uint8_t x47 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x44, Return x6, 0x1ffffff);
+ uint32_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x47, Return x8, 0xffffff);
+ uint32_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x50, Return x10, 0x1ffffff);
+ uint32_t x55, uint8_t x56 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x12, 0x1ffffff);
+ uint32_t x58, uint8_t x59 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x56, Return x14, 0x1ffffff);
+ uint32_t x61, uint8_t x62 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x59, Return x16, 0xffffff);
+ uint32_t x64, uint8_t x65 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x62, Return x18, 0x1ffffff);
+ uint32_t x67, uint8_t x68 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x20, 0x1ffffff);
+ uint32_t x70, uint8_t x71 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x68, Return x22, 0x1ffffff);
+ uint32_t x73, uint8_t x74 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x71, Return x24, 0xffffff);
+ uint32_t x76, uint8_t x77 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x74, Return x26, 0x1ffffff);
+ uint32_t x79, uint8_t x80 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x28, 0x1ffffff);
+ uint32_t x82, uint8_t x83 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x80, Return x30, 0x1ffffff);
+ uint32_t x85, uint8_t x86 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x32, 0xffffff);
+ uint32_t x88, uint8_t x89 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x86, Return x34, 0x1ffffff);
+ uint32_t x91, uint8_t x92 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x89, Return x36, 0x1ffffff);
+ uint32_t x94, uint8_t x95 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x92, Return x38, 0x1ffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x95, Return x37, 0xffffff);
+ uint32_t x99 = cmovznz32(x98, 0x0, 0xffffffff);
+ uint32_t x100 = (x99 & Const 33554401);
+ uint32_t x102, uint8_t x103 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x40, Return x100);
+ uint32_t x104 = (x99 & 0x1ffffff);
+ uint32_t x106, uint8_t x107 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x103, Return x43, Return x104);
+ uint32_t x108 = (x99 & 0x1ffffff);
+ uint32_t x110, uint8_t x111 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x107, Return x46, Return x108);
+ uint32_t x112 = (x99 & 0xffffff);
+ uint32_t x114, uint8_t x115 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x111, Return x49, Return x112);
+ uint32_t x116 = (x99 & 0x1ffffff);
+ uint32_t x118, uint8_t x119 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x115, Return x52, Return x116);
+ uint32_t x120 = (x99 & 0x1ffffff);
+ uint32_t x122, uint8_t x123 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x119, Return x55, Return x120);
+ uint32_t x124 = (x99 & 0x1ffffff);
+ uint32_t x126, uint8_t x127 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x123, Return x58, Return x124);
+ uint32_t x128 = (x99 & 0xffffff);
+ uint32_t x130, uint8_t x131 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x127, Return x61, Return x128);
+ uint32_t x132 = (x99 & 0x1ffffff);
+ uint32_t x134, uint8_t x135 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x131, Return x64, Return x132);
+ uint32_t x136 = (x99 & 0x1ffffff);
+ uint32_t x138, uint8_t x139 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x135, Return x67, Return x136);
+ uint32_t x140 = (x99 & 0x1ffffff);
+ uint32_t x142, uint8_t x143 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x139, Return x70, Return x140);
+ uint32_t x144 = (x99 & 0xffffff);
+ uint32_t x146, uint8_t x147 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x143, Return x73, Return x144);
+ uint32_t x148 = (x99 & 0x1ffffff);
+ uint32_t x150, uint8_t x151 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x147, Return x76, Return x148);
+ uint32_t x152 = (x99 & 0x1ffffff);
+ uint32_t x154, uint8_t x155 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x151, Return x79, Return x152);
+ uint32_t x156 = (x99 & 0x1ffffff);
+ uint32_t x158, uint8_t x159 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x155, Return x82, Return x156);
+ uint32_t x160 = (x99 & 0xffffff);
+ uint32_t x162, uint8_t x163 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x159, Return x85, Return x160);
+ uint32_t x164 = (x99 & 0x1ffffff);
+ uint32_t x166, uint8_t x167 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x163, Return x88, Return x164);
+ uint32_t x168 = (x99 & 0x1ffffff);
+ uint32_t x170, uint8_t x171 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x167, Return x91, Return x168);
+ uint32_t x172 = (x99 & 0x1ffffff);
+ uint32_t x174, uint8_t x175 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x171, Return x94, Return x172);
+ uint32_t x176 = (x99 & 0xffffff);
+ uint32_t x178, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x175, Return x97, Return x176);
+ (Return x178, Return x174, Return x170, Return x166, Return x162, Return x158, Return x154, Return x150, Return x146, Return x142, Return x138, Return x134, Return x130, Return x126, Return x122, Return x118, Return x114, Return x110, Return x106, Return x102))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e495m31_21limbs/feaddDisplay.log b/src/Specific/solinas32_2e495m31_21limbs/feaddDisplay.log
new file mode 100644
index 000000000..0841fa889
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31_21limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x82, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45))%core,
+ ((x42 + x82), (x43 + x83), (x41 + x81), (x39 + x79), (x37 + x77), (x35 + x75), (x33 + x73), (x31 + x71), (x29 + x69), (x27 + x67), (x25 + x65), (x23 + x63), (x21 + x61), (x19 + x59), (x17 + x57), (x15 + x55), (x13 + x53), (x11 + x51), (x9 + x49), (x7 + x47), (x5 + x45)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e495m31_21limbs/fesubDisplay.log b/src/Specific/solinas32_2e495m31_21limbs/fesubDisplay.log
new file mode 100644
index 000000000..36297ff63
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31_21limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x42, x43, x41, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x82, x83, x81, x79, x77, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45))%core,
+ (((0xfffffe + x42) - x82), ((0x1fffffe + x43) - x83), ((0xfffffe + x41) - x81), ((0x1fffffe + x39) - x79), ((0xfffffe + x37) - x77), ((0x1fffffe + x35) - x75), ((0x1fffffe + x33) - x73), ((0xfffffe + x31) - x71), ((0x1fffffe + x29) - x69), ((0xfffffe + x27) - x67), ((0x1fffffe + x25) - x65), ((0xfffffe + x23) - x63), ((0x1fffffe + x21) - x61), ((0x1fffffe + x19) - x59), ((0xfffffe + x17) - x57), ((0x1fffffe + x15) - x55), ((0xfffffe + x13) - x53), ((0x1fffffe + x11) - x51), ((0xfffffe + x9) - x49), ((0x1fffffe + x7) - x47), ((Const 33554370 + x5) - x45)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e495m31_21limbs/freezeDisplay.log b/src/Specific/solinas32_2e495m31_21limbs/freezeDisplay.log
new file mode 100644
index 000000000..de25b0097
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31_21limbs/freezeDisplay.log
@@ -0,0 +1,71 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x39, x40, x38, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, Const 16777185);
+ uint32_t x45, uint8_t x46 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x43, Return x4, 0xffffff);
+ uint32_t x48, uint8_t x49 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x46, Return x6, 0x7fffff);
+ uint32_t x51, uint8_t x52 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x49, Return x8, 0xffffff);
+ uint32_t x54, uint8_t x55 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x52, Return x10, 0x7fffff);
+ uint32_t x57, uint8_t x58 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x55, Return x12, 0xffffff);
+ uint32_t x60, uint8_t x61 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x58, Return x14, 0x7fffff);
+ uint32_t x63, uint8_t x64 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x16, 0xffffff);
+ uint32_t x66, uint8_t x67 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x64, Return x18, 0xffffff);
+ uint32_t x69, uint8_t x70 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x67, Return x20, 0x7fffff);
+ uint32_t x72, uint8_t x73 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x70, Return x22, 0xffffff);
+ uint32_t x75, uint8_t x76 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x24, 0x7fffff);
+ uint32_t x78, uint8_t x79 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x76, Return x26, 0xffffff);
+ uint32_t x81, uint8_t x82 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x79, Return x28, 0x7fffff);
+ uint32_t x84, uint8_t x85 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x82, Return x30, 0xffffff);
+ uint32_t x87, uint8_t x88 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x32, 0xffffff);
+ uint32_t x90, uint8_t x91 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x88, Return x34, 0x7fffff);
+ uint32_t x93, uint8_t x94 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x91, Return x36, 0xffffff);
+ uint32_t x96, uint8_t x97 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x94, Return x38, 0x7fffff);
+ uint32_t x99, uint8_t x100 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x40, 0xffffff);
+ uint32_t x102, uint8_t x103 = Op (Syntax.SubWithGetBorrow 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x100, Return x39, 0x7fffff);
+ uint32_t x104 = cmovznz32(x103, 0x0, 0xffffffff);
+ uint32_t x105 = (x104 & Const 16777185);
+ uint32_t x107, uint8_t x108 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x42, Return x105);
+ uint32_t x109 = (x104 & 0xffffff);
+ uint32_t x111, uint8_t x112 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x108, Return x45, Return x109);
+ uint32_t x113 = (x104 & 0x7fffff);
+ uint32_t x115, uint8_t x116 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x112, Return x48, Return x113);
+ uint32_t x117 = (x104 & 0xffffff);
+ uint32_t x119, uint8_t x120 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x116, Return x51, Return x117);
+ uint32_t x121 = (x104 & 0x7fffff);
+ uint32_t x123, uint8_t x124 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x120, Return x54, Return x121);
+ uint32_t x125 = (x104 & 0xffffff);
+ uint32_t x127, uint8_t x128 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x124, Return x57, Return x125);
+ uint32_t x129 = (x104 & 0x7fffff);
+ uint32_t x131, uint8_t x132 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x128, Return x60, Return x129);
+ uint32_t x133 = (x104 & 0xffffff);
+ uint32_t x135, uint8_t x136 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x132, Return x63, Return x133);
+ uint32_t x137 = (x104 & 0xffffff);
+ uint32_t x139, uint8_t x140 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x136, Return x66, Return x137);
+ uint32_t x141 = (x104 & 0x7fffff);
+ uint32_t x143, uint8_t x144 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x140, Return x69, Return x141);
+ uint32_t x145 = (x104 & 0xffffff);
+ uint32_t x147, uint8_t x148 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x144, Return x72, Return x145);
+ uint32_t x149 = (x104 & 0x7fffff);
+ uint32_t x151, uint8_t x152 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x148, Return x75, Return x149);
+ uint32_t x153 = (x104 & 0xffffff);
+ uint32_t x155, uint8_t x156 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x152, Return x78, Return x153);
+ uint32_t x157 = (x104 & 0x7fffff);
+ uint32_t x159, uint8_t x160 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x156, Return x81, Return x157);
+ uint32_t x161 = (x104 & 0xffffff);
+ uint32_t x163, uint8_t x164 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x160, Return x84, Return x161);
+ uint32_t x165 = (x104 & 0xffffff);
+ uint32_t x167, uint8_t x168 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x164, Return x87, Return x165);
+ uint32_t x169 = (x104 & 0x7fffff);
+ uint32_t x171, uint8_t x172 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x168, Return x90, Return x169);
+ uint32_t x173 = (x104 & 0xffffff);
+ uint32_t x175, uint8_t x176 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x172, Return x93, Return x173);
+ uint32_t x177 = (x104 & 0x7fffff);
+ uint32_t x179, uint8_t x180 = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x176, Return x96, Return x177);
+ uint32_t x181 = (x104 & 0xffffff);
+ uint32_t x183, uint8_t x184 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x180, Return x99, Return x181);
+ uint32_t x185 = (x104 & 0x7fffff);
+ uint32_t x187, uint8_t _ = Op (Syntax.AddWithGetCarry 23 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x184, Return x102, Return x185);
+ (Return x187, Return x183, Return x179, Return x175, Return x171, Return x167, Return x163, Return x159, Return x155, Return x151, Return x147, Return x143, Return x139, Return x135, Return x131, Return x127, Return x123, Return x119, Return x115, Return x111, Return x107))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_19limbs/feaddDisplay.log b/src/Specific/solinas32_2e521m1_19limbs/feaddDisplay.log
new file mode 100644
index 000000000..76a71b356
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_19limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ ((x38 + x74), (x39 + x75), (x37 + x73), (x35 + x71), (x33 + x69), (x31 + x67), (x29 + x65), (x27 + x63), (x25 + x61), (x23 + x59), (x21 + x57), (x19 + x55), (x17 + x53), (x15 + x51), (x13 + x49), (x11 + x47), (x9 + x45), (x7 + x43), (x5 + x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_19limbs/fesubDisplay.log b/src/Specific/solinas32_2e521m1_19limbs/fesubDisplay.log
new file mode 100644
index 000000000..d3d4cf2c2
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_19limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x38, x39, x37, x35, x33, x31, x29, x27, x25, x23, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x74, x75, x73, x71, x69, x67, x65, x63, x61, x59, x57, x55, x53, x51, x49, x47, x45, x43, x41))%core,
+ (((0xffffffe + x38) - x74), ((0xffffffe + x39) - x75), ((0x1ffffffe + x37) - x73), ((0xffffffe + x35) - x71), ((0x1ffffffe + x33) - x69), ((0xffffffe + x31) - x67), ((0xffffffe + x29) - x65), ((0x1ffffffe + x27) - x63), ((0xffffffe + x25) - x61), ((0x1ffffffe + x23) - x59), ((0xffffffe + x21) - x57), ((0x1ffffffe + x19) - x55), ((0xffffffe + x17) - x53), ((0xffffffe + x15) - x51), ((0x1ffffffe + x13) - x49), ((0xffffffe + x11) - x47), ((0x1ffffffe + x9) - x45), ((0xffffffe + x7) - x43), ((0x1ffffffe + x5) - x41)))
+(x, x0)%core
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas32_2e521m1_19limbs/freezeDisplay.log b/src/Specific/solinas32_2e521m1_19limbs/freezeDisplay.log
new file mode 100644
index 000000000..6a6ce93bd
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1_19limbs/freezeDisplay.log
@@ -0,0 +1,65 @@
+λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x35, x36, x34, x32, x30, x28, x26, x24, x22, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
+ uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0xfffffff);
+ uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x4, 0x7ffffff);
+ uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x6, 0xfffffff);
+ uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x8, 0x7ffffff);
+ uint32_t x50, uint8_t x51 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x48, Return x10, 0xfffffff);
+ uint32_t x53, uint8_t x54 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x51, Return x12, 0x7ffffff);
+ uint32_t x56, uint8_t x57 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x54, Return x14, 0x7ffffff);
+ uint32_t x59, uint8_t x60 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x16, 0xfffffff);
+ uint32_t x62, uint8_t x63 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x60, Return x18, 0x7ffffff);
+ uint32_t x65, uint8_t x66 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x63, Return x20, 0xfffffff);
+ uint32_t x68, uint8_t x69 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x66, Return x22, 0x7ffffff);
+ uint32_t x71, uint8_t x72 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x24, 0xfffffff);
+ uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x26, 0x7ffffff);
+ uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x28, 0x7ffffff);
+ uint32_t x80, uint8_t x81 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x78, Return x30, 0xfffffff);
+ uint32_t x83, uint8_t x84 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x32, 0x7ffffff);
+ uint32_t x86, uint8_t x87 = Op (Syntax.SubWithGetBorrow 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x84, Return x34, 0xfffffff);
+ uint32_t x89, uint8_t x90 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x36, 0x7ffffff);
+ uint32_t x92, uint8_t x93 = Op (Syntax.SubWithGetBorrow 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x35, 0x7ffffff);
+ uint32_t x94 = cmovznz32(x93, 0x0, 0xffffffff);
+ uint32_t x95 = (x94 & 0xfffffff);
+ uint32_t x97, uint8_t x98 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x38, Return x95);
+ uint32_t x99 = (x94 & 0x7ffffff);
+ uint32_t x101, uint8_t x102 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x98, Return x41, Return x99);
+ uint32_t x103 = (x94 & 0xfffffff);
+ uint32_t x105, uint8_t x106 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x102, Return x44, Return x103);
+ uint32_t x107 = (x94 & 0x7ffffff);
+ uint32_t x109, uint8_t x110 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x106, Return x47, Return x107);
+ uint32_t x111 = (x94 & 0xfffffff);
+ uint32_t x113, uint8_t x114 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x110, Return x50, Return x111);
+ uint32_t x115 = (x94 & 0x7ffffff);
+ uint32_t x117, uint8_t x118 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x114, Return x53, Return x115);
+ uint32_t x119 = (x94 & 0x7ffffff);
+ uint32_t x121, uint8_t x122 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x118, Return x56, Return x119);
+ uint32_t x123 = (x94 & 0xfffffff);
+ uint32_t x125, uint8_t x126 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x122, Return x59, Return x123);
+ uint32_t x127 = (x94 & 0x7ffffff);
+ uint32_t x129, uint8_t x130 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x126, Return x62, Return x127);
+ uint32_t x131 = (x94 & 0xfffffff);
+ uint32_t x133, uint8_t x134 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x130, Return x65, Return x131);
+ uint32_t x135 = (x94 & 0x7ffffff);
+ uint32_t x137, uint8_t x138 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x134, Return x68, Return x135);
+ uint32_t x139 = (x94 & 0xfffffff);
+ uint32_t x141, uint8_t x142 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x138, Return x71, Return x139);
+ uint32_t x143 = (x94 & 0x7ffffff);
+ uint32_t x145, uint8_t x146 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x142, Return x74, Return x143);
+ uint32_t x147 = (x94 & 0x7ffffff);
+ uint32_t x149, uint8_t x150 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x146, Return x77, Return x147);
+ uint32_t x151 = (x94 & 0xfffffff);
+ uint32_t x153, uint8_t x154 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x150, Return x80, Return x151);
+ uint32_t x155 = (x94 & 0x7ffffff);
+ uint32_t x157, uint8_t x158 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x154, Return x83, Return x155);
+ uint32_t x159 = (x94 & 0xfffffff);
+ uint32_t x161, uint8_t x162 = Op (Syntax.AddWithGetCarry 28 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x158, Return x86, Return x159);
+ uint32_t x163 = (x94 & 0x7ffffff);
+ uint32_t x165, uint8_t x166 = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x162, Return x89, Return x163);
+ uint32_t x167 = (x94 & 0x7ffffff);
+ uint32_t x169, uint8_t _ = Op (Syntax.AddWithGetCarry 27 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x166, Return x92, Return x167);
+ (Return x169, Return x165, Return x161, Return x157, Return x153, Return x149, Return x145, Return x141, Return x137, Return x133, Return x129, Return x125, Return x121, Return x117, Return x113, Return x109, Return x105, Return x101, Return x97))
+x
+ : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t)
diff --git a/src/Specific/solinas64_2e256m2e32m977_7limbs/feaddDisplay.log b/src/Specific/solinas64_2e256m2e32m977_7limbs/feaddDisplay.log
new file mode 100644
index 000000000..6320440fc
--- /dev/null
+++ b/src/Specific/solinas64_2e256m2e32m977_7limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ 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,
+ ((x14 + x26), (x15 + x27), (x13 + x25), (x11 + x23), (x9 + x21), (x7 + x19), (x5 + x17)))
+(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/solinas64_2e256m2e32m977_7limbs/femulDisplay.log b/src/Specific/solinas64_2e256m2e32m977_7limbs/femulDisplay.log
new file mode 100644
index 000000000..f6c19c1ac
--- /dev/null
+++ b/src/Specific/solinas64_2e256m2e32m977_7limbs/femulDisplay.log
@@ -0,0 +1,48 @@
+λ 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,
+ uint128_t x28 = (((uint128_t)x5 * x26) + (((uint128_t)x7 * x27) + ((0x2 * ((uint128_t)x9 * x25)) + (((uint128_t)x11 * x23) + ((0x2 * ((uint128_t)x13 * x21)) + (((uint128_t)x15 * x19) + ((uint128_t)x14 * x17)))))));
+ uint128_t x29 = ((((uint128_t)x5 * x27) + ((0x2 * ((uint128_t)x7 * x25)) + ((0x2 * ((uint128_t)x9 * x23)) + ((0x2 * ((uint128_t)x11 * x21)) + ((0x2 * ((uint128_t)x13 * x19)) + ((uint128_t)x15 * x17)))))) + ((0x3d1 * (0x2 * ((uint128_t)x14 * x26))) + (0x100000000 * (0x2 * ((uint128_t)x14 * x26)))));
+ uint128_t x30 = ((((uint128_t)x5 * x25) + (((uint128_t)x7 * x23) + ((0x2 * ((uint128_t)x9 * x21)) + (((uint128_t)x11 * x19) + ((uint128_t)x13 * x17))))) + ((0x3d1 * (((uint128_t)x15 * x26) + ((uint128_t)x14 * x27))) + (0x100000000 * (((uint128_t)x15 * x26) + ((uint128_t)x14 * x27)))));
+ uint128_t x31 = ((((uint128_t)x5 * x23) + ((0x2 * ((uint128_t)x7 * x21)) + ((0x2 * ((uint128_t)x9 * x19)) + ((uint128_t)x11 * x17)))) + ((0x3d1 * ((0x2 * ((uint128_t)x13 * x26)) + (((uint128_t)x15 * x27) + (0x2 * ((uint128_t)x14 * x25))))) + (0x100000000 * ((0x2 * ((uint128_t)x13 * x26)) + (((uint128_t)x15 * x27) + (0x2 * ((uint128_t)x14 * x25)))))));
+ uint128_t x32 = ((((uint128_t)x5 * x21) + (((uint128_t)x7 * x19) + ((uint128_t)x9 * x17))) + ((0x3d1 * (((uint128_t)x11 * x26) + (((uint128_t)x13 * x27) + (((uint128_t)x15 * x25) + ((uint128_t)x14 * x23))))) + (0x100000000 * (((uint128_t)x11 * x26) + (((uint128_t)x13 * x27) + (((uint128_t)x15 * x25) + ((uint128_t)x14 * x23)))))));
+ uint128_t x33 = ((((uint128_t)x5 * x19) + ((uint128_t)x7 * x17)) + ((0x3d1 * ((0x2 * ((uint128_t)x9 * x26)) + (((uint128_t)x11 * x27) + ((0x2 * ((uint128_t)x13 * x25)) + (((uint128_t)x15 * x23) + (0x2 * ((uint128_t)x14 * x21))))))) + (0x100000000 * ((0x2 * ((uint128_t)x9 * x26)) + (((uint128_t)x11 * x27) + ((0x2 * ((uint128_t)x13 * x25)) + (((uint128_t)x15 * x23) + (0x2 * ((uint128_t)x14 * x21)))))))));
+ uint128_t x34 = (((uint128_t)x5 * x17) + ((0x3d1 * ((0x2 * ((uint128_t)x7 * x26)) + ((0x2 * ((uint128_t)x9 * x27)) + ((0x2 * ((uint128_t)x11 * x25)) + ((0x2 * ((uint128_t)x13 * x23)) + ((0x2 * ((uint128_t)x15 * x21)) + (0x2 * ((uint128_t)x14 * x19)))))))) + (0x100000000 * ((0x2 * ((uint128_t)x7 * x26)) + ((0x2 * ((uint128_t)x9 * x27)) + ((0x2 * ((uint128_t)x11 * x25)) + ((0x2 * ((uint128_t)x13 * x23)) + ((0x2 * ((uint128_t)x15 * x21)) + (0x2 * ((uint128_t)x14 * x19))))))))));
+ uint64_t x35 = (uint64_t) (x28 >> 0x24);
+ uint64_t x36 = ((uint64_t)x28 & 0xfffffffff);
+ uint128_t x37 = (((uint128_t)0x1000000000 * x35) + x36);
+ uint64_t x38 = (uint64_t) (x37 >> 0x24);
+ uint64_t x39 = ((uint64_t)x37 & 0xfffffffff);
+ uint128_t x40 = (((uint128_t)0x1000000000 * x38) + x39);
+ uint64_t x41 = (uint64_t) (x40 >> 0x24);
+ uint64_t x42 = ((uint64_t)x40 & 0xfffffffff);
+ uint128_t x43 = (x34 + ((0x3d1 * x41) + ((uint128_t)0x100000000 * x41)));
+ uint128_t x44 = (x43 >> 0x25);
+ uint64_t x45 = ((uint64_t)x43 & 0x1fffffffff);
+ uint128_t x46 = (x44 + x33);
+ uint128_t x47 = (x46 >> 0x25);
+ uint64_t x48 = ((uint64_t)x46 & 0x1fffffffff);
+ uint128_t x49 = (x47 + x32);
+ uint128_t x50 = (x49 >> 0x24);
+ uint64_t x51 = ((uint64_t)x49 & 0xfffffffff);
+ uint128_t x52 = (x50 + x31);
+ uint128_t x53 = (x52 >> 0x25);
+ uint64_t x54 = ((uint64_t)x52 & 0x1fffffffff);
+ uint128_t x55 = (x53 + x30);
+ uint128_t x56 = (x55 >> 0x24);
+ uint64_t x57 = ((uint64_t)x55 & 0xfffffffff);
+ uint128_t x58 = (x56 + x29);
+ uint128_t x59 = (x58 >> 0x25);
+ uint64_t x60 = ((uint64_t)x58 & 0x1fffffffff);
+ uint128_t x61 = (x59 + x42);
+ uint64_t x62 = (uint64_t) (x61 >> 0x24);
+ uint64_t x63 = ((uint64_t)x61 & 0xfffffffff);
+ uint128_t x64 = (x45 + ((0x3d1 * x62) + ((uint128_t)0x100000000 * x62)));
+ uint64_t x65 = (uint64_t) (x64 >> 0x25);
+ uint64_t x66 = ((uint64_t)x64 & 0x1fffffffff);
+ uint64_t x67 = (x66 >> 0x25);
+ uint64_t x68 = (x66 & 0x1fffffffff);
+ return (Return x63, Return x60, Return x57, Return x54, Return x51, (x67 + (x65 + x48)), Return x68))
+(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/solinas64_2e256m2e32m977_7limbs/fesquareDisplay.log b/src/Specific/solinas64_2e256m2e32m977_7limbs/fesquareDisplay.log
new file mode 100644
index 000000000..b2b03e238
--- /dev/null
+++ b/src/Specific/solinas64_2e256m2e32m977_7limbs/fesquareDisplay.log
@@ -0,0 +1,48 @@
+λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x11, x12, x10, x8, x6, x4, x2)%core,
+ uint128_t x13 = (((uint128_t)x2 * x11) + (((uint128_t)x4 * x12) + ((0x2 * ((uint128_t)x6 * x10)) + (((uint128_t)x8 * x8) + ((0x2 * ((uint128_t)x10 * x6)) + (((uint128_t)x12 * x4) + ((uint128_t)x11 * x2)))))));
+ uint128_t x14 = ((((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)))))) + ((0x3d1 * (0x2 * ((uint128_t)x11 * x11))) + (0x100000000 * (0x2 * ((uint128_t)x11 * x11)))));
+ uint128_t x15 = ((((uint128_t)x2 * x10) + (((uint128_t)x4 * x8) + ((0x2 * ((uint128_t)x6 * x6)) + (((uint128_t)x8 * x4) + ((uint128_t)x10 * x2))))) + ((0x3d1 * (((uint128_t)x12 * x11) + ((uint128_t)x11 * x12))) + (0x100000000 * (((uint128_t)x12 * x11) + ((uint128_t)x11 * x12)))));
+ uint128_t x16 = ((((uint128_t)x2 * x8) + ((0x2 * ((uint128_t)x4 * x6)) + ((0x2 * ((uint128_t)x6 * x4)) + ((uint128_t)x8 * x2)))) + ((0x3d1 * ((0x2 * ((uint128_t)x10 * x11)) + (((uint128_t)x12 * x12) + (0x2 * ((uint128_t)x11 * x10))))) + (0x100000000 * ((0x2 * ((uint128_t)x10 * x11)) + (((uint128_t)x12 * x12) + (0x2 * ((uint128_t)x11 * x10)))))));
+ uint128_t x17 = ((((uint128_t)x2 * x6) + (((uint128_t)x4 * x4) + ((uint128_t)x6 * x2))) + ((0x3d1 * (((uint128_t)x8 * x11) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + ((uint128_t)x11 * x8))))) + (0x100000000 * (((uint128_t)x8 * x11) + (((uint128_t)x10 * x12) + (((uint128_t)x12 * x10) + ((uint128_t)x11 * x8)))))));
+ uint128_t x18 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + ((0x3d1 * ((0x2 * ((uint128_t)x6 * x11)) + (((uint128_t)x8 * x12) + ((0x2 * ((uint128_t)x10 * x10)) + (((uint128_t)x12 * x8) + (0x2 * ((uint128_t)x11 * x6))))))) + (0x100000000 * ((0x2 * ((uint128_t)x6 * x11)) + (((uint128_t)x8 * x12) + ((0x2 * ((uint128_t)x10 * x10)) + (((uint128_t)x12 * x8) + (0x2 * ((uint128_t)x11 * x6)))))))));
+ uint128_t x19 = (((uint128_t)x2 * x2) + ((0x3d1 * ((0x2 * ((uint128_t)x4 * x11)) + ((0x2 * ((uint128_t)x6 * x12)) + ((0x2 * ((uint128_t)x8 * x10)) + ((0x2 * ((uint128_t)x10 * x8)) + ((0x2 * ((uint128_t)x12 * x6)) + (0x2 * ((uint128_t)x11 * x4)))))))) + (0x100000000 * ((0x2 * ((uint128_t)x4 * x11)) + ((0x2 * ((uint128_t)x6 * x12)) + ((0x2 * ((uint128_t)x8 * x10)) + ((0x2 * ((uint128_t)x10 * x8)) + ((0x2 * ((uint128_t)x12 * x6)) + (0x2 * ((uint128_t)x11 * x4))))))))));
+ uint64_t x20 = (uint64_t) (x13 >> 0x24);
+ uint64_t x21 = ((uint64_t)x13 & 0xfffffffff);
+ uint128_t x22 = (((uint128_t)0x1000000000 * x20) + x21);
+ uint64_t x23 = (uint64_t) (x22 >> 0x24);
+ uint64_t x24 = ((uint64_t)x22 & 0xfffffffff);
+ uint128_t x25 = (((uint128_t)0x1000000000 * x23) + x24);
+ uint64_t x26 = (uint64_t) (x25 >> 0x24);
+ uint64_t x27 = ((uint64_t)x25 & 0xfffffffff);
+ uint128_t x28 = (x19 + ((0x3d1 * x26) + ((uint128_t)0x100000000 * x26)));
+ uint128_t x29 = (x28 >> 0x25);
+ uint64_t x30 = ((uint64_t)x28 & 0x1fffffffff);
+ uint128_t x31 = (x29 + x18);
+ uint128_t x32 = (x31 >> 0x25);
+ uint64_t x33 = ((uint64_t)x31 & 0x1fffffffff);
+ uint128_t x34 = (x32 + x17);
+ uint128_t x35 = (x34 >> 0x24);
+ uint64_t x36 = ((uint64_t)x34 & 0xfffffffff);
+ uint128_t x37 = (x35 + x16);
+ uint128_t x38 = (x37 >> 0x25);
+ uint64_t x39 = ((uint64_t)x37 & 0x1fffffffff);
+ uint128_t x40 = (x38 + x15);
+ uint128_t x41 = (x40 >> 0x24);
+ uint64_t x42 = ((uint64_t)x40 & 0xfffffffff);
+ uint128_t x43 = (x41 + x14);
+ uint128_t x44 = (x43 >> 0x25);
+ uint64_t x45 = ((uint64_t)x43 & 0x1fffffffff);
+ uint128_t x46 = (x44 + x27);
+ uint64_t x47 = (uint64_t) (x46 >> 0x24);
+ uint64_t x48 = ((uint64_t)x46 & 0xfffffffff);
+ uint128_t x49 = (x30 + ((0x3d1 * x47) + ((uint128_t)0x100000000 * x47)));
+ uint64_t x50 = (uint64_t) (x49 >> 0x25);
+ uint64_t x51 = ((uint64_t)x49 & 0x1fffffffff);
+ uint64_t x52 = (x51 >> 0x25);
+ uint64_t x53 = (x51 & 0x1fffffffff);
+ return (Return x48, Return x45, Return x42, Return x39, Return x36, (x52 + (x50 + x33)), Return x53))
+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/solinas64_2e256m2e32m977_7limbs/fesubDisplay.log b/src/Specific/solinas64_2e256m2e32m977_7limbs/fesubDisplay.log
new file mode 100644
index 000000000..b50eec990
--- /dev/null
+++ b/src/Specific/solinas64_2e256m2e32m977_7limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ 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,
+ (((Const 137438953470 + x14) - x26), ((0x3ffffffffe + x15) - x27), ((Const 137438953470 + x13) - x25), ((0x3ffffffffe + x11) - x23), ((Const 137438953470 + x9) - x21), ((0x3ffffffffe + x7) - x19), ((Const 266287970398 + x5) - x17)))
+(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/solinas64_2e256m2e32m977_7limbs/freezeDisplay.log b/src/Specific/solinas64_2e256m2e32m977_7limbs/freezeDisplay.log
new file mode 100644
index 000000000..446238151
--- /dev/null
+++ b/src/Specific/solinas64_2e256m2e32m977_7limbs/freezeDisplay.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 = Op (Syntax.SubWithGetBorrow 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 133143985199);
+ uint64_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x15, Return x4, 0x1fffffffff);
+ uint64_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 36 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x18, Return x6, 0xfffffffff);
+ uint64_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x21, Return x8, 0x1fffffffff);
+ uint64_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 36 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x24, Return x10, 0xfffffffff);
+ uint64_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x27, Return x12, 0x1fffffffff);
+ uint64_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 36 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x30, Return x11, 0xfffffffff);
+ uint64_t x34 = cmovznz64(x33, 0x0, 0xffffffffffffffffL);
+ uint64_t x35 = (x34 & Const 133143985199);
+ uint64_t x37, uint8_t x38 = Op (Syntax.AddWithGetCarry 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x14, Return x35);
+ uint64_t x39 = (x34 & 0x1fffffffff);
+ uint64_t x41, uint8_t x42 = Op (Syntax.AddWithGetCarry 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x38, Return x17, Return x39);
+ uint64_t x43 = (x34 & 0xfffffffff);
+ uint64_t x45, uint8_t x46 = Op (Syntax.AddWithGetCarry 36 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x42, Return x20, Return x43);
+ uint64_t x47 = (x34 & 0x1fffffffff);
+ uint64_t x49, uint8_t x50 = Op (Syntax.AddWithGetCarry 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x46, Return x23, Return x47);
+ uint64_t x51 = (x34 & 0xfffffffff);
+ uint64_t x53, uint8_t x54 = Op (Syntax.AddWithGetCarry 36 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x26, Return x51);
+ uint64_t x55 = (x34 & 0x1fffffffff);
+ uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 37 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x54, Return x29, Return x55);
+ uint64_t x59 = (x34 & 0xfffffffff);
+ uint64_t x61, uint8_t _ = Op (Syntax.AddWithGetCarry 36 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x32, Return 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/solinas64_2e384m2e128m2e96p2e32m1_10limbs/feaddDisplay.log b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_10limbs/feaddDisplay.log
new file mode 100644
index 000000000..04176128e
--- /dev/null
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_10limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core,
+ ((x20 + x38), (x21 + x39), (x19 + x37), (x17 + x35), (x15 + x33), (x13 + x31), (x11 + x29), (x9 + x27), (x7 + x25), (x5 + x23)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_10limbs/freezeDisplay.log b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_10limbs/freezeDisplay.log
new file mode 100644
index 000000000..ebe39c79d
--- /dev/null
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_10limbs/freezeDisplay.log
@@ -0,0 +1,37 @@
+λ x : word64 * 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, ℤ x21 = Op (Syntax.SubWithGetBorrow 39 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) Syntax.TZ) (0x0, Return x2, 0xffffffff);
+ uint64_t x23, ℤ x24 = Op (Syntax.SubWithGetBorrow 38 Syntax.TZ (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) Syntax.TZ) (Return x21, Return x4, 0x0);
+ uint64_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 39 Syntax.TZ (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x24, Return x6, Const 549755289600);
+ uint64_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x27, Return x8, Const 274877902847);
+ uint64_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x30, Return x10, 0x3fffffffff);
+ uint64_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 39 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x33, Return x12, 0x7fffffffff);
+ uint64_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x36, Return x14, 0x3fffffffff);
+ uint64_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 39 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x39, Return x16, 0x7fffffffff);
+ uint64_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x42, Return x18, 0x3fffffffff);
+ uint64_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x45, Return x17, 0x3fffffffff);
+ uint64_t x49 = cmovznz64(x48, 0x0, 0xffffffffffffffffL);
+ uint64_t x50 = (x49 & 0xffffffff);
+ uint64_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 39 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x20, Return x50);
+ uint64_t x55, uint8_t x56 = Op (Syntax.AddWithGetCarry 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x53, Return x23, 0x0);
+ uint64_t x57 = (x49 & Const 549755289600);
+ uint64_t x59, uint8_t x60 = Op (Syntax.AddWithGetCarry 39 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x56, Return x26, Return x57);
+ uint64_t x61 = (x49 & Const 274877902847);
+ uint64_t x63, uint8_t x64 = Op (Syntax.AddWithGetCarry 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x60, Return x29, Return x61);
+ uint64_t x65 = (x49 & 0x3fffffffff);
+ uint64_t x67, uint8_t x68 = Op (Syntax.AddWithGetCarry 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x64, Return x32, Return x65);
+ uint64_t x69 = (x49 & 0x7fffffffff);
+ uint64_t x71, uint8_t x72 = Op (Syntax.AddWithGetCarry 39 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x68, Return x35, Return x69);
+ uint64_t x73 = (x49 & 0x3fffffffff);
+ uint64_t x75, uint8_t x76 = Op (Syntax.AddWithGetCarry 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x72, Return x38, Return x73);
+ uint64_t x77 = (x49 & 0x7fffffffff);
+ uint64_t x79, uint8_t x80 = Op (Syntax.AddWithGetCarry 39 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x76, Return x41, Return x77);
+ uint64_t x81 = (x49 & 0x3fffffffff);
+ uint64_t x83, uint8_t x84 = Op (Syntax.AddWithGetCarry 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x80, Return x44, Return x81);
+ uint64_t x85 = (x49 & 0x3fffffffff);
+ uint64_t x87, uint8_t _ = Op (Syntax.AddWithGetCarry 38 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x84, Return x47, Return x85);
+ (Return x87, Return x83, Return x79, Return x75, Return x71, Return x67, Return x63, Return x59, Return x55, Return x52))
+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)
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/feaddDisplay.log b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/feaddDisplay.log
new file mode 100644
index 000000000..3b92b1c5c
--- /dev/null
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ 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,
+ ((x18 + x34), (x19 + x35), (x17 + x33), (x15 + x31), (x13 + x29), (x11 + x27), (x9 + x25), (x7 + x23), (x5 + x21)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/freezeDisplay.log b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/freezeDisplay.log
new file mode 100644
index 000000000..8330c090c
--- /dev/null
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1_9limbs/freezeDisplay.log
@@ -0,0 +1,34 @@
+λ 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, ℤ x19 = Op (Syntax.SubWithGetBorrow 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) Syntax.TZ) (0x0, Return x2, 0xffffffff);
+ uint64_t x21, ℤ x22 = Op (Syntax.SubWithGetBorrow 43 Syntax.TZ (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) Syntax.TZ) (Return x19, Return x4, 0x0);
+ uint64_t x24, uint8_t x25 = Op (Syntax.SubWithGetBorrow 42 Syntax.TZ (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x22, Return x6, 0x3fffffffc00);
+ uint64_t x27, uint8_t x28 = Op (Syntax.SubWithGetBorrow 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x7fffffffffe);
+ uint64_t x30, uint8_t x31 = Op (Syntax.SubWithGetBorrow 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x28, Return x10, 0x7ffffffffff);
+ uint64_t x33, uint8_t x34 = Op (Syntax.SubWithGetBorrow 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x12, 0x3ffffffffff);
+ uint64_t x36, uint8_t x37 = Op (Syntax.SubWithGetBorrow 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x34, Return x14, 0x7ffffffffff);
+ uint64_t x39, uint8_t x40 = Op (Syntax.SubWithGetBorrow 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x37, Return x16, 0x7ffffffffff);
+ uint64_t x42, uint8_t x43 = Op (Syntax.SubWithGetBorrow 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x40, Return x15, 0x3ffffffffff);
+ uint64_t x44 = cmovznz64(x43, 0x0, 0xffffffffffffffffL);
+ uint64_t x45 = (x44 & 0xffffffff);
+ uint64_t x47, uint8_t x48 = Op (Syntax.AddWithGetCarry 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x18, Return x45);
+ uint64_t x50, uint8_t x51 = Op (Syntax.AddWithGetCarry 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x48, Return x21, 0x0);
+ uint64_t x52 = (x44 & 0x3fffffffc00);
+ uint64_t x54, uint8_t x55 = Op (Syntax.AddWithGetCarry 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x51, Return x24, Return x52);
+ uint64_t x56 = (x44 & 0x7fffffffffe);
+ uint64_t x58, uint8_t x59 = Op (Syntax.AddWithGetCarry 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x55, Return x27, Return x56);
+ uint64_t x60 = (x44 & 0x7ffffffffff);
+ uint64_t x62, uint8_t x63 = Op (Syntax.AddWithGetCarry 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x59, Return x30, Return x60);
+ uint64_t x64 = (x44 & 0x3ffffffffff);
+ uint64_t x66, uint8_t x67 = Op (Syntax.AddWithGetCarry 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x63, Return x33, Return x64);
+ uint64_t x68 = (x44 & 0x7ffffffffff);
+ uint64_t x70, uint8_t x71 = Op (Syntax.AddWithGetCarry 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x67, Return x36, Return x68);
+ uint64_t x72 = (x44 & 0x7ffffffffff);
+ uint64_t x74, uint8_t x75 = Op (Syntax.AddWithGetCarry 43 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x71, Return x39, Return x72);
+ uint64_t x76 = (x44 & 0x3ffffffffff);
+ uint64_t x78, uint8_t _ = Op (Syntax.AddWithGetCarry 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x75, Return x42, Return x76);
+ (Return x78, Return x74, Return x70, Return x66, Return x62, Return x58, Return x54, Return x50, 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_2e480m2e240m1_10limbs/fesub.c b/src/Specific/solinas64_2e480m2e240m1_10limbs/fesub.c
index 863694727..806ea3ced 100644
--- a/src/Specific/solinas64_2e480m2e240m1_10limbs/fesub.c
+++ b/src/Specific/solinas64_2e480m2e240m1_10limbs/fesub.c
@@ -24,7 +24,7 @@ static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[1
out[2] = ((0x1fffffffffffe + x9) - x27);
out[3] = ((0x1fffffffffffe + x11) - x29);
out[4] = ((0x1fffffffffffe + x13) - x31);
- out[5] = ((Const 562949953421308 + x15) - x33);
+ out[5] = ((0x1fffffffffffc + x15) - x33);
out[6] = ((0x1fffffffffffe + x17) - x35);
out[7] = ((0x1fffffffffffe + x19) - x37);
out[8] = ((0x1fffffffffffe + x21) - x39);
diff --git a/src/Specific/solinas64_2e480m2e240m1_10limbs/fesubDisplay.log b/src/Specific/solinas64_2e480m2e240m1_10limbs/fesubDisplay.log
index 146ae8f2b..e5177ed02 100644
--- a/src/Specific/solinas64_2e480m2e240m1_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas64_2e480m2e240m1_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x1fffffffffffe + x20) - x38), ((0x1fffffffffffe + x21) - x39), ((0x1fffffffffffe + x19) - x37), ((0x1fffffffffffe + x17) - x35), ((Const 562949953421308 + x15) - x33), ((0x1fffffffffffe + x13) - x31), ((0x1fffffffffffe + x11) - x29), ((0x1fffffffffffe + x9) - x27), ((0x1fffffffffffe + x7) - x25), ((0x1fffffffffffe + x5) - x23)))
+ (((0x1fffffffffffe + x20) - x38), ((0x1fffffffffffe + x21) - x39), ((0x1fffffffffffe + x19) - x37), ((0x1fffffffffffe + x17) - x35), ((0x1fffffffffffc + x15) - x33), ((0x1fffffffffffe + x13) - x31), ((0x1fffffffffffe + x11) - x29), ((0x1fffffffffffe + x9) - x27), ((0x1fffffffffffe + x7) - x25), ((0x1fffffffffffe + x5) - x23)))
(x, x0)%core
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e488m17_10limbs/fesub.c b/src/Specific/solinas64_2e488m17_10limbs/fesub.c
index d9ad52aaa..fcafc6174 100644
--- a/src/Specific/solinas64_2e488m17_10limbs/fesub.c
+++ b/src/Specific/solinas64_2e488m17_10limbs/fesub.c
@@ -19,7 +19,7 @@ static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[1
{ const uint64_t x27 = in2[2];
{ const uint64_t x25 = in2[1];
{ const uint64_t x23 = in2[0];
- out[0] = ((Const 1125899906842590 + x5) - x23);
+ out[0] = ((0x3ffffffffffde + x5) - x23);
out[1] = ((0x3fffffffffffe + x7) - x25);
out[2] = ((0x3fffffffffffe + x9) - x27);
out[3] = ((0x3fffffffffffe + x11) - x29);
diff --git a/src/Specific/solinas64_2e488m17_10limbs/fesubDisplay.log b/src/Specific/solinas64_2e488m17_10limbs/fesubDisplay.log
index dc3ccca43..92661c2b8 100644
--- a/src/Specific/solinas64_2e488m17_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas64_2e488m17_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x1fffffffffffe + x20) - x38), ((0x3fffffffffffe + x21) - x39), ((0x3fffffffffffe + x19) - x37), ((0x3fffffffffffe + x17) - x35), ((0x3fffffffffffe + x15) - x33), ((0x1fffffffffffe + x13) - x31), ((0x3fffffffffffe + x11) - x29), ((0x3fffffffffffe + x9) - x27), ((0x3fffffffffffe + x7) - x25), ((Const 1125899906842590 + x5) - x23)))
+ (((0x1fffffffffffe + x20) - x38), ((0x3fffffffffffe + x21) - x39), ((0x3fffffffffffe + x19) - x37), ((0x3fffffffffffe + x17) - x35), ((0x3fffffffffffe + x15) - x33), ((0x1fffffffffffe + x13) - x31), ((0x3fffffffffffe + x11) - x29), ((0x3fffffffffffe + x9) - x27), ((0x3fffffffffffe + x7) - x25), ((0x3ffffffffffde + x5) - x23)))
(x, x0)%core
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e488m17_10limbs/freeze.c b/src/Specific/solinas64_2e488m17_10limbs/freeze.c
index 6513002e0..5275ade43 100644
--- a/src/Specific/solinas64_2e488m17_10limbs/freeze.c
+++ b/src/Specific/solinas64_2e488m17_10limbs/freeze.c
@@ -9,7 +9,7 @@ static void freeze(uint64_t out[10], const uint64_t in1[10]) {
{ const uint64_t x6 = in1[2];
{ const uint64_t x4 = in1[1];
{ const uint64_t x2 = in1[0];
- { uint64_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 562949953421295);
+ { uint64_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffffffffef);
{ 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 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x24, Return x6, 0x1ffffffffffff);
{ 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);
@@ -20,7 +20,7 @@ static void freeze(uint64_t out[10], const uint64_t in1[10]) {
{ uint64_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x42, Return x18, 0x1ffffffffffff);
{ uint64_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x45, Return x17, 0xffffffffffff);
{ uint64_t x49 = cmovznz64(x48, 0x0, 0xffffffffffffffffL);
- { uint64_t x50 = (x49 & Const 562949953421295);
+ { uint64_t x50 = (x49 & 0x1ffffffffffef);
{ uint64_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 49 (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);
diff --git a/src/Specific/solinas64_2e488m17_10limbs/freezeDisplay.log b/src/Specific/solinas64_2e488m17_10limbs/freezeDisplay.log
index 0756d481c..ca54e2872 100644
--- a/src/Specific/solinas64_2e488m17_10limbs/freezeDisplay.log
+++ b/src/Specific/solinas64_2e488m17_10limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 562949953421295);
+ uint64_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x1ffffffffffef);
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 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x24, Return x6, 0x1ffffffffffff);
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);
@@ -13,7 +13,7 @@ Interp-η
uint64_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 49 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x42, Return x18, 0x1ffffffffffff);
uint64_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 48 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x45, Return x17, 0xffffffffffff);
uint64_t x49 = cmovznz64(x48, 0x0, 0xffffffffffffffffL);
- uint64_t x50 = (x49 & Const 562949953421295);
+ uint64_t x50 = (x49 & 0x1ffffffffffef);
uint64_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 49 (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);
diff --git a/src/Specific/solinas64_2e488m17_9limbs/fesub.c b/src/Specific/solinas64_2e488m17_9limbs/fesub.c
index 61c2c1ab6..559c36198 100644
--- a/src/Specific/solinas64_2e488m17_9limbs/fesub.c
+++ b/src/Specific/solinas64_2e488m17_9limbs/fesub.c
@@ -17,7 +17,7 @@ static void fesub(uint64_t out[9], const uint64_t in1[9], const uint64_t in2[9])
{ const uint64_t x25 = in2[2];
{ const uint64_t x23 = in2[1];
{ const uint64_t x21 = in2[0];
- out[0] = ((Const 72057594037927902 + x5) - x21);
+ out[0] = ((0xffffffffffffde + x5) - x21);
out[1] = ((0x7ffffffffffffe + x7) - x23);
out[2] = ((0x7ffffffffffffe + x9) - x25);
out[3] = ((0x7ffffffffffffe + x11) - x27);
diff --git a/src/Specific/solinas64_2e488m17_9limbs/fesubDisplay.log b/src/Specific/solinas64_2e488m17_9limbs/fesubDisplay.log
index 8854a8f3d..a4458e0ce 100644
--- a/src/Specific/solinas64_2e488m17_9limbs/fesubDisplay.log
+++ b/src/Specific/solinas64_2e488m17_9limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x18, x19, x17, x15, x13, x11, x9, x7, x5, (x34, x35, x33, x31, x29, x27, x25, x23, x21))%core,
- (((0x7ffffffffffffe + x18) - x34), ((0x7ffffffffffffe + x19) - x35), ((0x7ffffffffffffe + x17) - x33), ((0x7ffffffffffffe + x15) - x31), ((0xfffffffffffffe + x13) - x29), ((0x7ffffffffffffe + x11) - x27), ((0x7ffffffffffffe + x9) - x25), ((0x7ffffffffffffe + x7) - x23), ((Const 72057594037927902 + x5) - x21)))
+ (((0x7ffffffffffffe + x18) - x34), ((0x7ffffffffffffe + x19) - x35), ((0x7ffffffffffffe + x17) - x33), ((0x7ffffffffffffe + x15) - x31), ((0xfffffffffffffe + x13) - x29), ((0x7ffffffffffffe + x11) - x27), ((0x7ffffffffffffe + x9) - x25), ((0x7ffffffffffffe + x7) - x23), ((0xffffffffffffde + x5) - x21)))
(x, x0)%core
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e488m17_9limbs/freeze.c b/src/Specific/solinas64_2e488m17_9limbs/freeze.c
index 854f3c86a..7336ac812 100644
--- a/src/Specific/solinas64_2e488m17_9limbs/freeze.c
+++ b/src/Specific/solinas64_2e488m17_9limbs/freeze.c
@@ -8,7 +8,7 @@ static void freeze(uint64_t out[9], const uint64_t in1[9]) {
{ const uint64_t x6 = in1[2];
{ const uint64_t x4 = in1[1];
{ const uint64_t x2 = in1[0];
- { 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, Const 36028797018963951);
+ { 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, 0x7fffffffffffef);
{ 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 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x3fffffffffffff);
@@ -18,7 +18,7 @@ static void freeze(uint64_t out[9], const uint64_t in1[9]) {
{ 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 = cmovznz64(x43, 0x0, 0xffffffffffffffffL);
- { uint64_t x45 = (x44 & Const 36028797018963951);
+ { uint64_t x45 = (x44 & 0x7fffffffffffef);
{ 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);
diff --git a/src/Specific/solinas64_2e488m17_9limbs/freezeDisplay.log b/src/Specific/solinas64_2e488m17_9limbs/freezeDisplay.log
index ade1c748c..63a5c9a3c 100644
--- a/src/Specific/solinas64_2e488m17_9limbs/freezeDisplay.log
+++ b/src/Specific/solinas64_2e488m17_9limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
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, Const 36028797018963951);
+ 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, 0x7fffffffffffef);
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 54 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x25, Return x8, 0x3fffffffffffff);
@@ -12,7 +12,7 @@ Interp-η
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 = cmovznz64(x43, 0x0, 0xffffffffffffffffL);
- uint64_t x45 = (x44 & Const 36028797018963951);
+ uint64_t x45 = (x44 & 0x7fffffffffffef);
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);
diff --git a/src/Specific/solinas64_2e495m31_10limbs/fesub.c b/src/Specific/solinas64_2e495m31_10limbs/fesub.c
index 94e344314..6b93355d4 100644
--- a/src/Specific/solinas64_2e495m31_10limbs/fesub.c
+++ b/src/Specific/solinas64_2e495m31_10limbs/fesub.c
@@ -19,7 +19,7 @@ static void fesub(uint64_t out[10], const uint64_t in1[10], const uint64_t in2[1
{ const uint64_t x27 = in2[2];
{ const uint64_t x25 = in2[1];
{ const uint64_t x23 = in2[0];
- out[0] = ((Const 2251799813685186 + x5) - x23);
+ out[0] = ((0x7ffffffffffc2 + x5) - x23);
out[1] = ((0x3fffffffffffe + x7) - x25);
out[2] = ((0x7fffffffffffe + x9) - x27);
out[3] = ((0x3fffffffffffe + x11) - x29);
diff --git a/src/Specific/solinas64_2e495m31_10limbs/fesubDisplay.log b/src/Specific/solinas64_2e495m31_10limbs/fesubDisplay.log
index 9538e5e76..ef48426de 100644
--- a/src/Specific/solinas64_2e495m31_10limbs/fesubDisplay.log
+++ b/src/Specific/solinas64_2e495m31_10limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x3fffffffffffe + x20) - x38), ((0x7fffffffffffe + x21) - x39), ((0x3fffffffffffe + x19) - x37), ((0x7fffffffffffe + x17) - x35), ((0x3fffffffffffe + x15) - x33), ((0x7fffffffffffe + x13) - x31), ((0x3fffffffffffe + x11) - x29), ((0x7fffffffffffe + x9) - x27), ((0x3fffffffffffe + x7) - x25), ((Const 2251799813685186 + x5) - x23)))
+ (((0x3fffffffffffe + x20) - x38), ((0x7fffffffffffe + x21) - x39), ((0x3fffffffffffe + x19) - x37), ((0x7fffffffffffe + x17) - x35), ((0x3fffffffffffe + x15) - x33), ((0x7fffffffffffe + x13) - x31), ((0x3fffffffffffe + x11) - x29), ((0x7fffffffffffe + x9) - x27), ((0x3fffffffffffe + x7) - x25), ((0x7ffffffffffc2 + x5) - x23)))
(x, x0)%core
: word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e511m187_11limbs/fesub.c b/src/Specific/solinas64_2e511m187_11limbs/fesub.c
index fdf32b3cd..40fa69bfb 100644
--- a/src/Specific/solinas64_2e511m187_11limbs/fesub.c
+++ b/src/Specific/solinas64_2e511m187_11limbs/fesub.c
@@ -21,7 +21,7 @@ static void fesub(uint64_t out[11], const uint64_t in1[11], const uint64_t in2[1
{ const uint64_t x29 = in2[2];
{ const uint64_t x27 = in2[1];
{ const uint64_t x25 = in2[0];
- out[0] = ((Const 281474976710282 + x5) - x25);
+ out[0] = ((0xfffffffffe8a + x5) - x25);
out[1] = ((0x7ffffffffffe + x7) - x27);
out[2] = ((0xfffffffffffe + x9) - x29);
out[3] = ((0x7ffffffffffe + x11) - x31);
diff --git a/src/Specific/solinas64_2e511m187_11limbs/fesubDisplay.log b/src/Specific/solinas64_2e511m187_11limbs/fesubDisplay.log
index b3473cc88..1834f9b1c 100644
--- a/src/Specific/solinas64_2e511m187_11limbs/fesubDisplay.log
+++ b/src/Specific/solinas64_2e511m187_11limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x7ffffffffffe + x22) - x42), ((0x7ffffffffffe + x23) - x43), ((0xfffffffffffe + x21) - x41), ((0x7ffffffffffe + x19) - x39), ((0xfffffffffffe + x17) - x37), ((0x7ffffffffffe + x15) - x35), ((0xfffffffffffe + x13) - x33), ((0x7ffffffffffe + x11) - x31), ((0xfffffffffffe + x9) - x29), ((0x7ffffffffffe + x7) - x27), ((Const 281474976710282 + x5) - x25)))
+ (((0x7ffffffffffe + x22) - x42), ((0x7ffffffffffe + x23) - x43), ((0xfffffffffffe + x21) - x41), ((0x7ffffffffffe + x19) - x39), ((0xfffffffffffe + x17) - x37), ((0x7ffffffffffe + x15) - x35), ((0xfffffffffffe + x13) - x33), ((0x7ffffffffffe + x11) - x31), ((0xfffffffffffe + x9) - x29), ((0x7ffffffffffe + x7) - x27), ((0xfffffffffe8a + x5) - x25)))
(x, x0)%core
: word64 * word64 * 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 * uint64_t)
diff --git a/src/Specific/solinas64_2e511m187_11limbs/freeze.c b/src/Specific/solinas64_2e511m187_11limbs/freeze.c
index 2358ab8a1..87c71898e 100644
--- a/src/Specific/solinas64_2e511m187_11limbs/freeze.c
+++ b/src/Specific/solinas64_2e511m187_11limbs/freeze.c
@@ -10,7 +10,7 @@ static void freeze(uint64_t out[11], const uint64_t in1[11]) {
{ const uint64_t x6 = in1[2];
{ const uint64_t x4 = in1[1];
{ const uint64_t x2 = in1[0];
- { uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 140737488355141);
+ { uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffffffff45);
{ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x4, 0x3fffffffffff);
{ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffffffffff);
{ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x8, 0x3fffffffffff);
@@ -22,7 +22,7 @@ static void freeze(uint64_t out[11], const uint64_t in1[11]) {
{ uint64_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x20, 0x3fffffffffff);
{ uint64_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x19, 0x3fffffffffff);
{ uint64_t x54 = cmovznz64(x53, 0x0, 0xffffffffffffffffL);
- { uint64_t x55 = (x54 & Const 140737488355141);
+ { uint64_t x55 = (x54 & 0x7fffffffff45);
{ uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
{ uint64_t x59 = (x54 & 0x3fffffffffff);
{ uint64_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas64_2e511m187_11limbs/freezeDisplay.log b/src/Specific/solinas64_2e511m187_11limbs/freezeDisplay.log
index bf3d4cd56..8241a59b0 100644
--- a/src/Specific/solinas64_2e511m187_11limbs/freezeDisplay.log
+++ b/src/Specific/solinas64_2e511m187_11limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x19, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 140737488355141);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7fffffffff45);
uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x4, 0x3fffffffffff);
uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffffffffff);
uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x8, 0x3fffffffffff);
@@ -14,7 +14,7 @@ Interp-η
uint64_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x20, 0x3fffffffffff);
uint64_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x19, 0x3fffffffffff);
uint64_t x54 = cmovznz64(x53, 0x0, 0xffffffffffffffffL);
- uint64_t x55 = (x54 & Const 140737488355141);
+ uint64_t x55 = (x54 & 0x7fffffffff45);
uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
uint64_t x59 = (x54 & 0x3fffffffffff);
uint64_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas64_2e511m481_11limbs/fesub.c b/src/Specific/solinas64_2e511m481_11limbs/fesub.c
index d6ceb463c..6201f12c8 100644
--- a/src/Specific/solinas64_2e511m481_11limbs/fesub.c
+++ b/src/Specific/solinas64_2e511m481_11limbs/fesub.c
@@ -21,7 +21,7 @@ static void fesub(uint64_t out[11], const uint64_t in1[11], const uint64_t in2[1
{ const uint64_t x29 = in2[2];
{ const uint64_t x27 = in2[1];
{ const uint64_t x25 = in2[0];
- out[0] = ((Const 281474976709694 + x5) - x25);
+ out[0] = ((0xfffffffffc3e + x5) - x25);
out[1] = ((0x7ffffffffffe + x7) - x27);
out[2] = ((0xfffffffffffe + x9) - x29);
out[3] = ((0x7ffffffffffe + x11) - x31);
diff --git a/src/Specific/solinas64_2e511m481_11limbs/fesubDisplay.log b/src/Specific/solinas64_2e511m481_11limbs/fesubDisplay.log
index 787360644..967880b02 100644
--- a/src/Specific/solinas64_2e511m481_11limbs/fesubDisplay.log
+++ b/src/Specific/solinas64_2e511m481_11limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x7ffffffffffe + x22) - x42), ((0x7ffffffffffe + x23) - x43), ((0xfffffffffffe + x21) - x41), ((0x7ffffffffffe + x19) - x39), ((0xfffffffffffe + x17) - x37), ((0x7ffffffffffe + x15) - x35), ((0xfffffffffffe + x13) - x33), ((0x7ffffffffffe + x11) - x31), ((0xfffffffffffe + x9) - x29), ((0x7ffffffffffe + x7) - x27), ((Const 281474976709694 + x5) - x25)))
+ (((0x7ffffffffffe + x22) - x42), ((0x7ffffffffffe + x23) - x43), ((0xfffffffffffe + x21) - x41), ((0x7ffffffffffe + x19) - x39), ((0xfffffffffffe + x17) - x37), ((0x7ffffffffffe + x15) - x35), ((0xfffffffffffe + x13) - x33), ((0x7ffffffffffe + x11) - x31), ((0xfffffffffffe + x9) - x29), ((0x7ffffffffffe + x7) - x27), ((0xfffffffffc3e + x5) - x25)))
(x, x0)%core
: word64 * word64 * 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 * uint64_t)
diff --git a/src/Specific/solinas64_2e511m481_11limbs/freeze.c b/src/Specific/solinas64_2e511m481_11limbs/freeze.c
index f19f18794..20697fab7 100644
--- a/src/Specific/solinas64_2e511m481_11limbs/freeze.c
+++ b/src/Specific/solinas64_2e511m481_11limbs/freeze.c
@@ -10,7 +10,7 @@ static void freeze(uint64_t out[11], const uint64_t in1[11]) {
{ const uint64_t x6 = in1[2];
{ const uint64_t x4 = in1[1];
{ const uint64_t x2 = in1[0];
- { uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 140737488354847);
+ { uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffffffe1f);
{ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x4, 0x3fffffffffff);
{ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffffffffff);
{ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x8, 0x3fffffffffff);
@@ -22,7 +22,7 @@ static void freeze(uint64_t out[11], const uint64_t in1[11]) {
{ uint64_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x20, 0x3fffffffffff);
{ uint64_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x19, 0x3fffffffffff);
{ uint64_t x54 = cmovznz64(x53, 0x0, 0xffffffffffffffffL);
- { uint64_t x55 = (x54 & Const 140737488354847);
+ { uint64_t x55 = (x54 & 0x7ffffffffe1f);
{ uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
{ uint64_t x59 = (x54 & 0x3fffffffffff);
{ uint64_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas64_2e511m481_11limbs/freezeDisplay.log b/src/Specific/solinas64_2e511m481_11limbs/freezeDisplay.log
index eb058f921..1568647af 100644
--- a/src/Specific/solinas64_2e511m481_11limbs/freezeDisplay.log
+++ b/src/Specific/solinas64_2e511m481_11limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x19, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 140737488354847);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffffffe1f);
uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x4, 0x3fffffffffff);
uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x6, 0x7fffffffffff);
uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x8, 0x3fffffffffff);
@@ -14,7 +14,7 @@ Interp-η
uint64_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x20, 0x3fffffffffff);
uint64_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x19, 0x3fffffffffff);
uint64_t x54 = cmovznz64(x53, 0x0, 0xffffffffffffffffL);
- uint64_t x55 = (x54 & Const 140737488354847);
+ uint64_t x55 = (x54 & 0x7ffffffffe1f);
uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
uint64_t x59 = (x54 & 0x3fffffffffff);
uint64_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas64_2e512m569_11limbs/fesub.c b/src/Specific/solinas64_2e512m569_11limbs/fesub.c
index e9802695a..3c79a27f2 100644
--- a/src/Specific/solinas64_2e512m569_11limbs/fesub.c
+++ b/src/Specific/solinas64_2e512m569_11limbs/fesub.c
@@ -21,7 +21,7 @@ static void fesub(uint64_t out[11], const uint64_t in1[11], const uint64_t in2[1
{ const uint64_t x29 = in2[2];
{ const uint64_t x27 = in2[1];
{ const uint64_t x25 = in2[0];
- out[0] = ((Const 281474976709518 + x5) - x25);
+ out[0] = ((0xfffffffffb8e + x5) - x25);
out[1] = ((0xfffffffffffe + x7) - x27);
out[2] = ((0x7ffffffffffe + x9) - x29);
out[3] = ((0xfffffffffffe + x11) - x31);
diff --git a/src/Specific/solinas64_2e512m569_11limbs/fesubDisplay.log b/src/Specific/solinas64_2e512m569_11limbs/fesubDisplay.log
index 8a21bad67..f633a819e 100644
--- a/src/Specific/solinas64_2e512m569_11limbs/fesubDisplay.log
+++ b/src/Specific/solinas64_2e512m569_11limbs/fesubDisplay.log
@@ -2,6 +2,6 @@
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,
- (((0x7ffffffffffe + x22) - x42), ((0xfffffffffffe + x23) - x43), ((0x7ffffffffffe + x21) - x41), ((0xfffffffffffe + x19) - x39), ((0x7ffffffffffe + x17) - x37), ((0xfffffffffffe + x15) - x35), ((0x7ffffffffffe + x13) - x33), ((0xfffffffffffe + x11) - x31), ((0x7ffffffffffe + x9) - x29), ((0xfffffffffffe + x7) - x27), ((Const 281474976709518 + x5) - x25)))
+ (((0x7ffffffffffe + x22) - x42), ((0xfffffffffffe + x23) - x43), ((0x7ffffffffffe + x21) - x41), ((0xfffffffffffe + x19) - x39), ((0x7ffffffffffe + x17) - x37), ((0xfffffffffffe + x15) - x35), ((0x7ffffffffffe + x13) - x33), ((0xfffffffffffe + x11) - x31), ((0x7ffffffffffe + x9) - x29), ((0xfffffffffffe + x7) - x27), ((0xfffffffffb8e + x5) - x25)))
(x, x0)%core
: word64 * word64 * 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 * uint64_t)
diff --git a/src/Specific/solinas64_2e512m569_11limbs/freeze.c b/src/Specific/solinas64_2e512m569_11limbs/freeze.c
index d5152bc48..93398b96f 100644
--- a/src/Specific/solinas64_2e512m569_11limbs/freeze.c
+++ b/src/Specific/solinas64_2e512m569_11limbs/freeze.c
@@ -10,7 +10,7 @@ static void freeze(uint64_t out[11], const uint64_t in1[11]) {
{ const uint64_t x6 = in1[2];
{ const uint64_t x4 = in1[1];
{ const uint64_t x2 = in1[0];
- { uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 140737488354759);
+ { uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffffffdc7);
{ uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x4, 0x7fffffffffff);
{ uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x6, 0x3fffffffffff);
{ uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x8, 0x7fffffffffff);
@@ -22,7 +22,7 @@ static void freeze(uint64_t out[11], const uint64_t in1[11]) {
{ uint64_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x20, 0x7fffffffffff);
{ uint64_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x19, 0x3fffffffffff);
{ uint64_t x54 = cmovznz64(x53, 0x0, 0xffffffffffffffffL);
- { uint64_t x55 = (x54 & Const 140737488354759);
+ { uint64_t x55 = (x54 & 0x7ffffffffdc7);
{ uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
{ uint64_t x59 = (x54 & 0x7fffffffffff);
{ uint64_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);
diff --git a/src/Specific/solinas64_2e512m569_11limbs/freezeDisplay.log b/src/Specific/solinas64_2e512m569_11limbs/freezeDisplay.log
index ab21ebb2e..17917382a 100644
--- a/src/Specific/solinas64_2e512m569_11limbs/freezeDisplay.log
+++ b/src/Specific/solinas64_2e512m569_11limbs/freezeDisplay.log
@@ -2,7 +2,7 @@
Interp-η
(λ var : Syntax.base_type → Type,
λ '(x19, x20, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core,
- uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, Const 140737488354759);
+ uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x7ffffffffdc7);
uint64_t x25, uint8_t x26 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x4, 0x7fffffffffff);
uint64_t x28, uint8_t x29 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x26, Return x6, 0x3fffffffffff);
uint64_t x31, uint8_t x32 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x29, Return x8, 0x7fffffffffff);
@@ -14,7 +14,7 @@ Interp-η
uint64_t x49, uint8_t x50 = Op (Syntax.SubWithGetBorrow 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x47, Return x20, 0x7fffffffffff);
uint64_t x52, uint8_t x53 = Op (Syntax.SubWithGetBorrow 46 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x50, Return x19, 0x3fffffffffff);
uint64_t x54 = cmovznz64(x53, 0x0, 0xffffffffffffffffL);
- uint64_t x55 = (x54 & Const 140737488354759);
+ uint64_t x55 = (x54 & 0x7ffffffffdc7);
uint64_t x57, uint8_t x58 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x22, Return x55);
uint64_t x59 = (x54 & 0x7fffffffffff);
uint64_t x61, uint8_t x62 = Op (Syntax.AddWithGetCarry 47 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x58, Return x25, Return x59);