aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--generate_parameters.py22
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e127m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e129m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e130m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e137m13.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e140m27.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e141m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e150m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e150m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e152m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e158m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e165m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e166m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e171m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e174m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e174m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e189m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e190m11.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e191m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e194m33.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e196m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e198m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e206m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e212m29.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e213m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e221m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e222m117.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e226m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e230m27.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e235m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e243m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e251m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e255m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e255m765.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e256m189.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e266m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e285m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e291m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e321m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e336m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e336m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e338m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e369m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e379m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e382m105.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e383m187.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e383m31.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e383m421.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e384m317.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e389m21.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e401m31.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e413m21.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e414m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e444m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e452m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e468m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e488m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e489m21.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e495m31.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e511m187.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e511m481.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e512m569.json1
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e521m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e127m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e129m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e130m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e137m13.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e140m27.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e141m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e150m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e150m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e152m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e158m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e165m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e166m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e171m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e174m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e174m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e189m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e190m11.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e191m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e194m33.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e196m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e198m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e206m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e212m29.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e213m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e221m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e222m117.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e226m5.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e230m27.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e235m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e243m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e251m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e255m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e255m765.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e256m189.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e266m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e285m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e291m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e321m9.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e336m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e336m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e338m15.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e369m25.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e379m19.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e382m105.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e383m187.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e383m31.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e383m421.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e384m317.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e389m21.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e401m31.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e413m21.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e414m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e444m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e452m3.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e468m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e488m17.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e489m21.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e495m31.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e511m187.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e511m481.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e512m569.json1
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e521m1.json1
-rwxr-xr-xsrc/Specific/CurveParameters/remake_curves.sh288
-rw-r--r--src/Specific/CurveParameters/solinas32_2e127m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e129m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e130m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e137m13.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e140m27.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e141m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e150m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e150m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e152m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e158m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e165m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e166m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e171m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e174m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e174m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e189m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e190m11.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e191m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e192m2e64m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e194m33.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e196m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e198m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e206m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e212m29.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e213m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e216m2e108m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e221m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e222m117.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e224m2e96p1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e226m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e230m27.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e235m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e243m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e251m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m765.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m189.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m2e32m977.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e266m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e285m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e291m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e321m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e322m2e161m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e336m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e336m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e338m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e369m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e379m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e382m105.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e384m317.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e401m31.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e413m21.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e414m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e416m2e208m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e444m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e448m2e224m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e450m2e225m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e452m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e468m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e480m2e240m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e488m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e489m21.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e495m31.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e511m187.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e511m481.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e512m569.json1
-rw-r--r--src/Specific/CurveParameters/solinas32_2e521m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e127m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e129m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e130m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e137m13.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e140m27.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e141m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e150m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e150m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e152m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e158m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e165m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e166m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e171m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e174m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e174m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e189m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e190m11.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e191m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e192m2e64m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e194m33.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e196m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e198m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e206m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e212m29.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e213m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e216m2e108m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e221m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e222m117.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e224m2e96p1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e226m5.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e230m27.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e235m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e243m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e251m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m765.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m189.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m2e32m977.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e266m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e285m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e291m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e321m9.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e322m2e161m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e336m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e336m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e338m15.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e369m25.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e379m19.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e382m105.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m317.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e401m31.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e413m21.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e414m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e416m2e208m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e444m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e448m2e224m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e450m2e225m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e452m3.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e468m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e480m2e240m1.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e488m17.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e489m21.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e495m31.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e511m187.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e511m481.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e512m569.json1
-rw-r--r--src/Specific/CurveParameters/solinas64_2e521m1.json1
290 files changed, 596 insertions, 2 deletions
diff --git a/generate_parameters.py b/generate_parameters.py
index 0b6d0bb4c..1b65607f1 100644
--- a/generate_parameters.py
+++ b/generate_parameters.py
@@ -66,12 +66,15 @@ EXAMPLES (handwritten):
'''
-import math,json,sys
+import math,json,sys,os
# for montgomery
COMPILER_MONT = "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"
# for solinas
COMPILER_SOLI = "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"
+CUR_PATH = os.path.dirname(os.path.realpath(__file__))
+JSON_DIRECTORY = os.path.join(CUR_PATH, "src/Specific/CurveParameters")
+REMAKE_CURVES = os.path.join(JSON_DIRECTORY, 'remake_curves.sh')
# given a string representing one term or "tap" in a prime, returns a pair of
# integers representing the weight and coefficient of that tap
@@ -181,12 +184,27 @@ def get_params_solinas(prime, bitwidth):
output["goldilocks"] = True
return output
+def update_remake_curves(filename):
+ with open(REMAKE_CURVES, 'r') as f:
+ lines = f.readlines()
+ new_line = '${MAKE} "$@" %s ../%s/\n' % (filename, filename[:-len('.json')])
+ if new_line in lines: return
+ if any(filename in line for line in lines):
+ lines = [(line if filename not in line else new_line)
+ for line in lines]
+ else:
+ lines.append(new_line)
+ with open(REMAKE_CURVES, 'w') as f:
+ f.write(''.join(lines))
+
+
def write_output(name, params):
prime = params["modulus"]
filename = (name + "_" + prime + ".json").replace("^","e").replace(" ","").replace("-","m").replace("+","p").replace("*","x")
- g = open(filename,"w")
+ g = open(os.path.join(JSON_DIRECTORY, filename), "w")
g.write(json.dumps(params))
g.close()
+ update_remake_curves(filename)
USAGE = "python generate_parameters.py input_file"
if __name__ == "__main__":
diff --git a/src/Specific/CurveParameters/montgomery32_2e127m1.json b/src/Specific/CurveParameters/montgomery32_2e127m1.json
new file mode 100644
index 000000000..e21be4494
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e127m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "32", "modulus": "2^127 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e129m25.json b/src/Specific/CurveParameters/montgomery32_2e129m25.json
new file mode 100644
index 000000000..fb3c0af2a
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e129m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^129 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e130m5.json b/src/Specific/CurveParameters/montgomery32_2e130m5.json
new file mode 100644
index 000000000..961128969
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e130m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^130 - 5 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e137m13.json b/src/Specific/CurveParameters/montgomery32_2e137m13.json
new file mode 100644
index 000000000..b3594410c
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e137m13.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^137 - 13", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e140m27.json b/src/Specific/CurveParameters/montgomery32_2e140m27.json
new file mode 100644
index 000000000..e0a7be114
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e140m27.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^140 - 27", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e141m9.json b/src/Specific/CurveParameters/montgomery32_2e141m9.json
new file mode 100644
index 000000000..47e2af805
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e141m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^141 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e150m3.json b/src/Specific/CurveParameters/montgomery32_2e150m3.json
new file mode 100644
index 000000000..3f3a6d36b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e150m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^150 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e150m5.json b/src/Specific/CurveParameters/montgomery32_2e150m5.json
new file mode 100644
index 000000000..cb393e71a
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e150m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^150 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e152m17.json b/src/Specific/CurveParameters/montgomery32_2e152m17.json
new file mode 100644
index 000000000..53f462317
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e152m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^152 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e158m15.json b/src/Specific/CurveParameters/montgomery32_2e158m15.json
new file mode 100644
index 000000000..648bee86b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e158m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "32", "modulus": "2^158 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e165m25.json b/src/Specific/CurveParameters/montgomery32_2e165m25.json
new file mode 100644
index 000000000..a6986157f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e165m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^165 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e166m5.json b/src/Specific/CurveParameters/montgomery32_2e166m5.json
new file mode 100644
index 000000000..85ebab9e5
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e166m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^166 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e171m19.json b/src/Specific/CurveParameters/montgomery32_2e171m19.json
new file mode 100644
index 000000000..2560a2404
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e171m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^171 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e174m17.json b/src/Specific/CurveParameters/montgomery32_2e174m17.json
new file mode 100644
index 000000000..16b917b38
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e174m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^174 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e174m3.json b/src/Specific/CurveParameters/montgomery32_2e174m3.json
new file mode 100644
index 000000000..f23dc197e
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e174m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^174 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e189m25.json b/src/Specific/CurveParameters/montgomery32_2e189m25.json
new file mode 100644
index 000000000..3d0875a49
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e189m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^189 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e190m11.json b/src/Specific/CurveParameters/montgomery32_2e190m11.json
new file mode 100644
index 000000000..d164f76e9
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e190m11.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^190 - 11", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e191m19.json b/src/Specific/CurveParameters/montgomery32_2e191m19.json
new file mode 100644
index 000000000..60e677d1b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e191m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "32", "modulus": "2^191 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json b/src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json
new file mode 100644
index 000000000..c7add9512
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^192 - 2^64 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e194m33.json b/src/Specific/CurveParameters/montgomery32_2e194m33.json
new file mode 100644
index 000000000..5c66c2960
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e194m33.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^194 - 33", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e196m15.json b/src/Specific/CurveParameters/montgomery32_2e196m15.json
new file mode 100644
index 000000000..59978021d
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e196m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^196 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e198m17.json b/src/Specific/CurveParameters/montgomery32_2e198m17.json
new file mode 100644
index 000000000..513633524
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e198m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^198 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e206m5.json b/src/Specific/CurveParameters/montgomery32_2e206m5.json
new file mode 100644
index 000000000..042a90407
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e206m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^206 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e212m29.json b/src/Specific/CurveParameters/montgomery32_2e212m29.json
new file mode 100644
index 000000000..b9c4ffd62
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e212m29.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^212 - 29", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e213m3.json b/src/Specific/CurveParameters/montgomery32_2e213m3.json
new file mode 100644
index 000000000..e89f1bb1b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e213m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^213 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json b/src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json
new file mode 100644
index 000000000..c388d4889
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^216 - 2^108 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e221m3.json b/src/Specific/CurveParameters/montgomery32_2e221m3.json
new file mode 100644
index 000000000..64ad06f8f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e221m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^221 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e222m117.json b/src/Specific/CurveParameters/montgomery32_2e222m117.json
new file mode 100644
index 000000000..6a55f8ed3
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e222m117.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "32", "modulus": "2^222 - 117", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json b/src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json
new file mode 100644
index 000000000..61ef0f90a
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^224 - 2^96 + 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e226m5.json b/src/Specific/CurveParameters/montgomery32_2e226m5.json
new file mode 100644
index 000000000..04c12dd53
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e226m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^226 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e230m27.json b/src/Specific/CurveParameters/montgomery32_2e230m27.json
new file mode 100644
index 000000000..e9b1f1c9d
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e230m27.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^230 - 27", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e235m15.json b/src/Specific/CurveParameters/montgomery32_2e235m15.json
new file mode 100644
index 000000000..e5785f226
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e235m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^235 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e243m9.json b/src/Specific/CurveParameters/montgomery32_2e243m9.json
new file mode 100644
index 000000000..bc005c232
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e243m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^243 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e251m9.json b/src/Specific/CurveParameters/montgomery32_2e251m9.json
new file mode 100644
index 000000000..11dcf70fc
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e251m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^251 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e255m19.json b/src/Specific/CurveParameters/montgomery32_2e255m19.json
new file mode 100644
index 000000000..69ba75d5f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e255m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^255 - 19 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json
new file mode 100644
index 000000000..5ed2846b7
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^255 - 2^4 - 2^1 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e255m765.json b/src/Specific/CurveParameters/montgomery32_2e255m765.json
new file mode 100644
index 000000000..2f10ca875
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e255m765.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "32", "modulus": "2^255 - 765", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e256m189.json b/src/Specific/CurveParameters/montgomery32_2e256m189.json
new file mode 100644
index 000000000..bb58ed58a
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e256m189.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "8.0", "montgomery": true, "base": "32", "modulus": "2^256 - 189", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json
new file mode 100644
index 000000000..fd4784a8e
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "8.0", "montgomery": true, "base": "32", "modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json b/src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json
new file mode 100644
index 000000000..14a6da173
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "8.0", "montgomery": true, "base": "32", "modulus": "2^256 - 2^32 - 977 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e266m3.json b/src/Specific/CurveParameters/montgomery32_2e266m3.json
new file mode 100644
index 000000000..1c6fab701
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e266m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "8.0", "montgomery": true, "base": "32", "modulus": "2^266 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e285m9.json b/src/Specific/CurveParameters/montgomery32_2e285m9.json
new file mode 100644
index 000000000..a4ce2aaaa
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e285m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "8.0", "montgomery": true, "base": "32", "modulus": "2^285 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e291m19.json b/src/Specific/CurveParameters/montgomery32_2e291m19.json
new file mode 100644
index 000000000..2db1e71e4
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e291m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "9.0", "montgomery": true, "base": "32", "modulus": "2^291 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e321m9.json b/src/Specific/CurveParameters/montgomery32_2e321m9.json
new file mode 100644
index 000000000..830e0ab2f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e321m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "10.0", "montgomery": true, "base": "32", "modulus": "2^321 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json b/src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json
new file mode 100644
index 000000000..ddd300363
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "10.0", "montgomery": true, "base": "32", "modulus": "2^322 - 2^161 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e336m17.json b/src/Specific/CurveParameters/montgomery32_2e336m17.json
new file mode 100644
index 000000000..256b277ed
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e336m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "10.0", "montgomery": true, "base": "32", "modulus": "2^336 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e336m3.json b/src/Specific/CurveParameters/montgomery32_2e336m3.json
new file mode 100644
index 000000000..b22a3654b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e336m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "10.0", "montgomery": true, "base": "32", "modulus": "2^336 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e338m15.json b/src/Specific/CurveParameters/montgomery32_2e338m15.json
new file mode 100644
index 000000000..305ac9f20
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e338m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "10.0", "montgomery": true, "base": "32", "modulus": "2^338 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e369m25.json b/src/Specific/CurveParameters/montgomery32_2e369m25.json
new file mode 100644
index 000000000..9f936951a
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e369m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "11.0", "montgomery": true, "base": "32", "modulus": "2^369 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e379m19.json b/src/Specific/CurveParameters/montgomery32_2e379m19.json
new file mode 100644
index 000000000..7cae53c60
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e379m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "11.0", "montgomery": true, "base": "32", "modulus": "2^379 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e382m105.json b/src/Specific/CurveParameters/montgomery32_2e382m105.json
new file mode 100644
index 000000000..8f1c1abed
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e382m105.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "11.0", "montgomery": true, "base": "32", "modulus": "2^382 - 105", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e383m187.json b/src/Specific/CurveParameters/montgomery32_2e383m187.json
new file mode 100644
index 000000000..46cd8f375
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e383m187.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "11.0", "montgomery": true, "base": "32", "modulus": "2^383 - 187", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e383m31.json b/src/Specific/CurveParameters/montgomery32_2e383m31.json
new file mode 100644
index 000000000..0fbcef5da
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e383m31.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "11.0", "montgomery": true, "base": "32", "modulus": "2^383 - 31", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e383m421.json b/src/Specific/CurveParameters/montgomery32_2e383m421.json
new file mode 100644
index 000000000..a276e5690
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e383m421.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "11.0", "montgomery": true, "base": "32", "modulus": "2^383 - 421", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json
new file mode 100644
index 000000000..aa06d5613
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "12.0", "montgomery": true, "base": "32", "modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e384m317.json b/src/Specific/CurveParameters/montgomery32_2e384m317.json
new file mode 100644
index 000000000..d8244dfc1
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e384m317.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "12.0", "montgomery": true, "base": "32", "modulus": "2^384 - 317", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e389m21.json b/src/Specific/CurveParameters/montgomery32_2e389m21.json
new file mode 100644
index 000000000..3c3058f85
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e389m21.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "12.0", "montgomery": true, "base": "32", "modulus": "2^389 - 21", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e401m31.json b/src/Specific/CurveParameters/montgomery32_2e401m31.json
new file mode 100644
index 000000000..384705736
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e401m31.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "12.0", "montgomery": true, "base": "32", "modulus": "2^401 - 31", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e413m21.json b/src/Specific/CurveParameters/montgomery32_2e413m21.json
new file mode 100644
index 000000000..74b1ab53c
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e413m21.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "12.0", "montgomery": true, "base": "32", "modulus": "2^413 - 21", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e414m17.json b/src/Specific/CurveParameters/montgomery32_2e414m17.json
new file mode 100644
index 000000000..cb4cab426
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e414m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "12.0", "montgomery": true, "base": "32", "modulus": "2^414 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json b/src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json
new file mode 100644
index 000000000..fe8554429
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "13.0", "montgomery": true, "base": "32", "modulus": "2^416 - 2^208 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e444m17.json b/src/Specific/CurveParameters/montgomery32_2e444m17.json
new file mode 100644
index 000000000..d5f5149a6
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e444m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "13.0", "montgomery": true, "base": "32", "modulus": "2^444 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json b/src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json
new file mode 100644
index 000000000..c6615cf1a
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "14.0", "montgomery": true, "base": "32", "modulus": "2^448 - 2^224 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json b/src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json
new file mode 100644
index 000000000..28f2bf27f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "14.0", "montgomery": true, "base": "32", "modulus": "2^450 - 2^225 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e452m3.json b/src/Specific/CurveParameters/montgomery32_2e452m3.json
new file mode 100644
index 000000000..08de9b424
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e452m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "14.0", "montgomery": true, "base": "32", "modulus": "2^452 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e468m17.json b/src/Specific/CurveParameters/montgomery32_2e468m17.json
new file mode 100644
index 000000000..fb979924b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e468m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "14.0", "montgomery": true, "base": "32", "modulus": "2^468 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json b/src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json
new file mode 100644
index 000000000..3ee8fb0e5
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "15.0", "montgomery": true, "base": "32", "modulus": "2^480 - 2^240 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e488m17.json b/src/Specific/CurveParameters/montgomery32_2e488m17.json
new file mode 100644
index 000000000..79d1dd88c
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e488m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "15.0", "montgomery": true, "base": "32", "modulus": "2^488 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e489m21.json b/src/Specific/CurveParameters/montgomery32_2e489m21.json
new file mode 100644
index 000000000..66274e45f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e489m21.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "15.0", "montgomery": true, "base": "32", "modulus": "2^489 - 21", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e495m31.json b/src/Specific/CurveParameters/montgomery32_2e495m31.json
new file mode 100644
index 000000000..e51a0e82f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e495m31.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "15.0", "montgomery": true, "base": "32", "modulus": "2^495 - 31", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e511m187.json b/src/Specific/CurveParameters/montgomery32_2e511m187.json
new file mode 100644
index 000000000..0aa470c09
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e511m187.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "15.0", "montgomery": true, "base": "32", "modulus": "2^511 - 187", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e511m481.json b/src/Specific/CurveParameters/montgomery32_2e511m481.json
new file mode 100644
index 000000000..f014dee6f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e511m481.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "15.0", "montgomery": true, "base": "32", "modulus": "2^511 - 481", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e512m569.json b/src/Specific/CurveParameters/montgomery32_2e512m569.json
new file mode 100644
index 000000000..26defb318
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e512m569.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "16.0", "montgomery": true, "base": "32", "modulus": "2^512 - 569", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery32_2e521m1.json b/src/Specific/CurveParameters/montgomery32_2e521m1.json
new file mode 100644
index 000000000..f014482e2
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery32_2e521m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "16.0", "montgomery": true, "base": "32", "modulus": "2^521 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e127m1.json b/src/Specific/CurveParameters/montgomery64_2e127m1.json
new file mode 100644
index 000000000..a82f12597
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e127m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "1.0", "montgomery": true, "base": "64", "modulus": "2^127 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e129m25.json b/src/Specific/CurveParameters/montgomery64_2e129m25.json
new file mode 100644
index 000000000..9111c52ec
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e129m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^129 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e130m5.json b/src/Specific/CurveParameters/montgomery64_2e130m5.json
new file mode 100644
index 000000000..f1300bd05
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e130m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^130 - 5 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e137m13.json b/src/Specific/CurveParameters/montgomery64_2e137m13.json
new file mode 100644
index 000000000..d5c9cdb27
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e137m13.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^137 - 13", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e140m27.json b/src/Specific/CurveParameters/montgomery64_2e140m27.json
new file mode 100644
index 000000000..8c88e7b43
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e140m27.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^140 - 27", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e141m9.json b/src/Specific/CurveParameters/montgomery64_2e141m9.json
new file mode 100644
index 000000000..32fee48d0
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e141m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^141 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e150m3.json b/src/Specific/CurveParameters/montgomery64_2e150m3.json
new file mode 100644
index 000000000..08497871f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e150m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^150 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e150m5.json b/src/Specific/CurveParameters/montgomery64_2e150m5.json
new file mode 100644
index 000000000..9841fd6b6
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e150m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^150 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e152m17.json b/src/Specific/CurveParameters/montgomery64_2e152m17.json
new file mode 100644
index 000000000..be22224c1
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e152m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^152 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e158m15.json b/src/Specific/CurveParameters/montgomery64_2e158m15.json
new file mode 100644
index 000000000..5e30c3c5b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e158m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^158 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e165m25.json b/src/Specific/CurveParameters/montgomery64_2e165m25.json
new file mode 100644
index 000000000..f7d887ebb
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e165m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^165 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e166m5.json b/src/Specific/CurveParameters/montgomery64_2e166m5.json
new file mode 100644
index 000000000..294060a0f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e166m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^166 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e171m19.json b/src/Specific/CurveParameters/montgomery64_2e171m19.json
new file mode 100644
index 000000000..5a4de70d3
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e171m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^171 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e174m17.json b/src/Specific/CurveParameters/montgomery64_2e174m17.json
new file mode 100644
index 000000000..8a7486621
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e174m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^174 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e174m3.json b/src/Specific/CurveParameters/montgomery64_2e174m3.json
new file mode 100644
index 000000000..bfcfe3853
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e174m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^174 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e189m25.json b/src/Specific/CurveParameters/montgomery64_2e189m25.json
new file mode 100644
index 000000000..4ebc1b992
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e189m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^189 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e190m11.json b/src/Specific/CurveParameters/montgomery64_2e190m11.json
new file mode 100644
index 000000000..e172a250c
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e190m11.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^190 - 11", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e191m19.json b/src/Specific/CurveParameters/montgomery64_2e191m19.json
new file mode 100644
index 000000000..b3ebe2e37
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e191m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "2.0", "montgomery": true, "base": "64", "modulus": "2^191 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json b/src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json
new file mode 100644
index 000000000..e21ec4f26
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^192 - 2^64 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e194m33.json b/src/Specific/CurveParameters/montgomery64_2e194m33.json
new file mode 100644
index 000000000..8061f8482
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e194m33.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^194 - 33", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e196m15.json b/src/Specific/CurveParameters/montgomery64_2e196m15.json
new file mode 100644
index 000000000..a5b6728ee
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e196m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^196 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e198m17.json b/src/Specific/CurveParameters/montgomery64_2e198m17.json
new file mode 100644
index 000000000..d7ae3e4c3
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e198m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^198 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e206m5.json b/src/Specific/CurveParameters/montgomery64_2e206m5.json
new file mode 100644
index 000000000..35355cab6
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e206m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^206 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e212m29.json b/src/Specific/CurveParameters/montgomery64_2e212m29.json
new file mode 100644
index 000000000..5992dcdbe
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e212m29.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^212 - 29", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e213m3.json b/src/Specific/CurveParameters/montgomery64_2e213m3.json
new file mode 100644
index 000000000..f09d2a891
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e213m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^213 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json b/src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json
new file mode 100644
index 000000000..61585d70f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^216 - 2^108 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e221m3.json b/src/Specific/CurveParameters/montgomery64_2e221m3.json
new file mode 100644
index 000000000..c3fc4e1ec
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e221m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^221 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e222m117.json b/src/Specific/CurveParameters/montgomery64_2e222m117.json
new file mode 100644
index 000000000..b4a6afc3c
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e222m117.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^222 - 117", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json b/src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json
new file mode 100644
index 000000000..ea4d7a18b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^224 - 2^96 + 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e226m5.json b/src/Specific/CurveParameters/montgomery64_2e226m5.json
new file mode 100644
index 000000000..bb3f0e4dc
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e226m5.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^226 - 5", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e230m27.json b/src/Specific/CurveParameters/montgomery64_2e230m27.json
new file mode 100644
index 000000000..d947b5d3a
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e230m27.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^230 - 27", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e235m15.json b/src/Specific/CurveParameters/montgomery64_2e235m15.json
new file mode 100644
index 000000000..3e6a17e51
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e235m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^235 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e243m9.json b/src/Specific/CurveParameters/montgomery64_2e243m9.json
new file mode 100644
index 000000000..6e07af445
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e243m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^243 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e251m9.json b/src/Specific/CurveParameters/montgomery64_2e251m9.json
new file mode 100644
index 000000000..0feede741
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e251m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^251 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e255m19.json b/src/Specific/CurveParameters/montgomery64_2e255m19.json
new file mode 100644
index 000000000..eb6cab0f6
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e255m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^255 - 19 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json
new file mode 100644
index 000000000..f9e325dfb
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^255 - 2^4 - 2^1 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e255m765.json b/src/Specific/CurveParameters/montgomery64_2e255m765.json
new file mode 100644
index 000000000..66a3d4db8
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e255m765.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "3.0", "montgomery": true, "base": "64", "modulus": "2^255 - 765", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e256m189.json b/src/Specific/CurveParameters/montgomery64_2e256m189.json
new file mode 100644
index 000000000..a21ccf2ae
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e256m189.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "64", "modulus": "2^256 - 189", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json
new file mode 100644
index 000000000..76069f402
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "64", "modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json b/src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json
new file mode 100644
index 000000000..0749f2f73
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "64", "modulus": "2^256 - 2^32 - 977 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e266m3.json b/src/Specific/CurveParameters/montgomery64_2e266m3.json
new file mode 100644
index 000000000..86ddb0352
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e266m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "64", "modulus": "2^266 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e285m9.json b/src/Specific/CurveParameters/montgomery64_2e285m9.json
new file mode 100644
index 000000000..a698a383b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e285m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "64", "modulus": "2^285 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e291m19.json b/src/Specific/CurveParameters/montgomery64_2e291m19.json
new file mode 100644
index 000000000..19922d721
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e291m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "4.0", "montgomery": true, "base": "64", "modulus": "2^291 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e321m9.json b/src/Specific/CurveParameters/montgomery64_2e321m9.json
new file mode 100644
index 000000000..4f2292cfb
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e321m9.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^321 - 9", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json b/src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json
new file mode 100644
index 000000000..6adb020aa
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^322 - 2^161 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e336m17.json b/src/Specific/CurveParameters/montgomery64_2e336m17.json
new file mode 100644
index 000000000..3970dc4e1
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e336m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^336 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e336m3.json b/src/Specific/CurveParameters/montgomery64_2e336m3.json
new file mode 100644
index 000000000..39bd8ca9c
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e336m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^336 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e338m15.json b/src/Specific/CurveParameters/montgomery64_2e338m15.json
new file mode 100644
index 000000000..f9ea5b62d
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e338m15.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^338 - 15", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e369m25.json b/src/Specific/CurveParameters/montgomery64_2e369m25.json
new file mode 100644
index 000000000..858a6244e
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e369m25.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^369 - 25", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e379m19.json b/src/Specific/CurveParameters/montgomery64_2e379m19.json
new file mode 100644
index 000000000..3bf12c2da
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e379m19.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^379 - 19", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e382m105.json b/src/Specific/CurveParameters/montgomery64_2e382m105.json
new file mode 100644
index 000000000..0593f19b8
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e382m105.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^382 - 105", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e383m187.json b/src/Specific/CurveParameters/montgomery64_2e383m187.json
new file mode 100644
index 000000000..e71b7dab1
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e383m187.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^383 - 187", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e383m31.json b/src/Specific/CurveParameters/montgomery64_2e383m31.json
new file mode 100644
index 000000000..bc65888f6
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e383m31.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^383 - 31", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e383m421.json b/src/Specific/CurveParameters/montgomery64_2e383m421.json
new file mode 100644
index 000000000..24b5599c9
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e383m421.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "5.0", "montgomery": true, "base": "64", "modulus": "2^383 - 421", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json
new file mode 100644
index 000000000..a44119c7f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e384m317.json b/src/Specific/CurveParameters/montgomery64_2e384m317.json
new file mode 100644
index 000000000..791273282
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e384m317.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^384 - 317", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e389m21.json b/src/Specific/CurveParameters/montgomery64_2e389m21.json
new file mode 100644
index 000000000..3d844ddce
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e389m21.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^389 - 21", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e401m31.json b/src/Specific/CurveParameters/montgomery64_2e401m31.json
new file mode 100644
index 000000000..6f03f8b7c
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e401m31.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^401 - 31", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e413m21.json b/src/Specific/CurveParameters/montgomery64_2e413m21.json
new file mode 100644
index 000000000..f00b288d7
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e413m21.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^413 - 21", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e414m17.json b/src/Specific/CurveParameters/montgomery64_2e414m17.json
new file mode 100644
index 000000000..b7c9f33ae
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e414m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^414 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json b/src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json
new file mode 100644
index 000000000..0d40c3e2d
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^416 - 2^208 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e444m17.json b/src/Specific/CurveParameters/montgomery64_2e444m17.json
new file mode 100644
index 000000000..2841d60a8
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e444m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "6.0", "montgomery": true, "base": "64", "modulus": "2^444 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json b/src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json
new file mode 100644
index 000000000..2365c98a6
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^448 - 2^224 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json b/src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json
new file mode 100644
index 000000000..1b73a331b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^450 - 2^225 - 1", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e452m3.json b/src/Specific/CurveParameters/montgomery64_2e452m3.json
new file mode 100644
index 000000000..a69b4594b
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e452m3.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^452 - 3", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e468m17.json b/src/Specific/CurveParameters/montgomery64_2e468m17.json
new file mode 100644
index 000000000..e74c963bc
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e468m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^468 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json b/src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json
new file mode 100644
index 000000000..10142ccdd
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^480 - 2^240 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e488m17.json b/src/Specific/CurveParameters/montgomery64_2e488m17.json
new file mode 100644
index 000000000..d13d519e0
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e488m17.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^488 - 17", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e489m21.json b/src/Specific/CurveParameters/montgomery64_2e489m21.json
new file mode 100644
index 000000000..a3047f2ce
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e489m21.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^489 - 21", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e495m31.json b/src/Specific/CurveParameters/montgomery64_2e495m31.json
new file mode 100644
index 000000000..d2cdf635f
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e495m31.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^495 - 31", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e511m187.json b/src/Specific/CurveParameters/montgomery64_2e511m187.json
new file mode 100644
index 000000000..2349585d3
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e511m187.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^511 - 187", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e511m481.json b/src/Specific/CurveParameters/montgomery64_2e511m481.json
new file mode 100644
index 000000000..8322f9a06
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e511m481.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "7.0", "montgomery": true, "base": "64", "modulus": "2^511 - 481", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e512m569.json b/src/Specific/CurveParameters/montgomery64_2e512m569.json
new file mode 100644
index 000000000..fce003dc4
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e512m569.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "8.0", "montgomery": true, "base": "64", "modulus": "2^512 - 569", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/montgomery64_2e521m1.json b/src/Specific/CurveParameters/montgomery64_2e521m1.json
new file mode 100644
index 000000000..36ffabe08
--- /dev/null
+++ b/src/Specific/CurveParameters/montgomery64_2e521m1.json
@@ -0,0 +1 @@
+{"operations": ["fenz", "feadd", "femul", "feopp", "fesub"], "sz": "8.0", "montgomery": true, "base": "64", "modulus": "2^521 - 1 ", "compiler": "gcc -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/remake_curves.sh b/src/Specific/CurveParameters/remake_curves.sh
index 598a375f7..a2e388f6b 100755
--- a/src/Specific/CurveParameters/remake_curves.sh
+++ b/src/Specific/CurveParameters/remake_curves.sh
@@ -12,3 +12,291 @@ ${MAKE} "$@" x2555_130.json ../X2555/C128/
${MAKE} "$@" x2448_c64_karatsuba.json ../X2448/Karatsuba/C64/
${MAKE} "$@" nistp256_amd128.json ../NISTP256/AMD128/
${MAKE} "$@" nistp256_amd64.json ../NISTP256/AMD64/
+${MAKE} "$@" montgomery32_2e127m1.json ../montgomery32_2e127m1/
+${MAKE} "$@" montgomery64_2e127m1.json ../montgomery64_2e127m1/
+${MAKE} "$@" solinas32_2e127m1.json ../solinas32_2e127m1/
+${MAKE} "$@" solinas64_2e127m1.json ../solinas64_2e127m1/
+${MAKE} "$@" montgomery32_2e129m25.json ../montgomery32_2e129m25/
+${MAKE} "$@" montgomery64_2e129m25.json ../montgomery64_2e129m25/
+${MAKE} "$@" solinas32_2e129m25.json ../solinas32_2e129m25/
+${MAKE} "$@" solinas64_2e129m25.json ../solinas64_2e129m25/
+${MAKE} "$@" montgomery32_2e130m5.json ../montgomery32_2e130m5/
+${MAKE} "$@" montgomery64_2e130m5.json ../montgomery64_2e130m5/
+${MAKE} "$@" solinas32_2e130m5.json ../solinas32_2e130m5/
+${MAKE} "$@" solinas64_2e130m5.json ../solinas64_2e130m5/
+${MAKE} "$@" montgomery32_2e137m13.json ../montgomery32_2e137m13/
+${MAKE} "$@" montgomery64_2e137m13.json ../montgomery64_2e137m13/
+${MAKE} "$@" solinas32_2e137m13.json ../solinas32_2e137m13/
+${MAKE} "$@" solinas64_2e137m13.json ../solinas64_2e137m13/
+${MAKE} "$@" montgomery32_2e140m27.json ../montgomery32_2e140m27/
+${MAKE} "$@" montgomery64_2e140m27.json ../montgomery64_2e140m27/
+${MAKE} "$@" solinas32_2e140m27.json ../solinas32_2e140m27/
+${MAKE} "$@" solinas64_2e140m27.json ../solinas64_2e140m27/
+${MAKE} "$@" montgomery32_2e141m9.json ../montgomery32_2e141m9/
+${MAKE} "$@" montgomery64_2e141m9.json ../montgomery64_2e141m9/
+${MAKE} "$@" solinas32_2e141m9.json ../solinas32_2e141m9/
+${MAKE} "$@" solinas64_2e141m9.json ../solinas64_2e141m9/
+${MAKE} "$@" montgomery32_2e150m5.json ../montgomery32_2e150m5/
+${MAKE} "$@" montgomery64_2e150m5.json ../montgomery64_2e150m5/
+${MAKE} "$@" solinas32_2e150m5.json ../solinas32_2e150m5/
+${MAKE} "$@" solinas64_2e150m5.json ../solinas64_2e150m5/
+${MAKE} "$@" montgomery32_2e150m3.json ../montgomery32_2e150m3/
+${MAKE} "$@" montgomery64_2e150m3.json ../montgomery64_2e150m3/
+${MAKE} "$@" solinas32_2e150m3.json ../solinas32_2e150m3/
+${MAKE} "$@" solinas64_2e150m3.json ../solinas64_2e150m3/
+${MAKE} "$@" montgomery32_2e152m17.json ../montgomery32_2e152m17/
+${MAKE} "$@" montgomery64_2e152m17.json ../montgomery64_2e152m17/
+${MAKE} "$@" solinas32_2e152m17.json ../solinas32_2e152m17/
+${MAKE} "$@" solinas64_2e152m17.json ../solinas64_2e152m17/
+${MAKE} "$@" montgomery32_2e158m15.json ../montgomery32_2e158m15/
+${MAKE} "$@" montgomery64_2e158m15.json ../montgomery64_2e158m15/
+${MAKE} "$@" solinas32_2e158m15.json ../solinas32_2e158m15/
+${MAKE} "$@" solinas64_2e158m15.json ../solinas64_2e158m15/
+${MAKE} "$@" montgomery32_2e165m25.json ../montgomery32_2e165m25/
+${MAKE} "$@" montgomery64_2e165m25.json ../montgomery64_2e165m25/
+${MAKE} "$@" solinas32_2e165m25.json ../solinas32_2e165m25/
+${MAKE} "$@" solinas64_2e165m25.json ../solinas64_2e165m25/
+${MAKE} "$@" montgomery32_2e166m5.json ../montgomery32_2e166m5/
+${MAKE} "$@" montgomery64_2e166m5.json ../montgomery64_2e166m5/
+${MAKE} "$@" solinas32_2e166m5.json ../solinas32_2e166m5/
+${MAKE} "$@" solinas64_2e166m5.json ../solinas64_2e166m5/
+${MAKE} "$@" montgomery32_2e171m19.json ../montgomery32_2e171m19/
+${MAKE} "$@" montgomery64_2e171m19.json ../montgomery64_2e171m19/
+${MAKE} "$@" solinas32_2e171m19.json ../solinas32_2e171m19/
+${MAKE} "$@" solinas64_2e171m19.json ../solinas64_2e171m19/
+${MAKE} "$@" montgomery32_2e174m17.json ../montgomery32_2e174m17/
+${MAKE} "$@" montgomery64_2e174m17.json ../montgomery64_2e174m17/
+${MAKE} "$@" solinas32_2e174m17.json ../solinas32_2e174m17/
+${MAKE} "$@" solinas64_2e174m17.json ../solinas64_2e174m17/
+${MAKE} "$@" montgomery32_2e174m3.json ../montgomery32_2e174m3/
+${MAKE} "$@" montgomery64_2e174m3.json ../montgomery64_2e174m3/
+${MAKE} "$@" solinas32_2e174m3.json ../solinas32_2e174m3/
+${MAKE} "$@" solinas64_2e174m3.json ../solinas64_2e174m3/
+${MAKE} "$@" montgomery32_2e189m25.json ../montgomery32_2e189m25/
+${MAKE} "$@" montgomery64_2e189m25.json ../montgomery64_2e189m25/
+${MAKE} "$@" solinas32_2e189m25.json ../solinas32_2e189m25/
+${MAKE} "$@" solinas64_2e189m25.json ../solinas64_2e189m25/
+${MAKE} "$@" montgomery32_2e190m11.json ../montgomery32_2e190m11/
+${MAKE} "$@" montgomery64_2e190m11.json ../montgomery64_2e190m11/
+${MAKE} "$@" solinas32_2e190m11.json ../solinas32_2e190m11/
+${MAKE} "$@" solinas64_2e190m11.json ../solinas64_2e190m11/
+${MAKE} "$@" montgomery32_2e191m19.json ../montgomery32_2e191m19/
+${MAKE} "$@" montgomery64_2e191m19.json ../montgomery64_2e191m19/
+${MAKE} "$@" solinas32_2e191m19.json ../solinas32_2e191m19/
+${MAKE} "$@" solinas64_2e191m19.json ../solinas64_2e191m19/
+${MAKE} "$@" montgomery32_2e194m33.json ../montgomery32_2e194m33/
+${MAKE} "$@" montgomery64_2e194m33.json ../montgomery64_2e194m33/
+${MAKE} "$@" solinas32_2e194m33.json ../solinas32_2e194m33/
+${MAKE} "$@" solinas64_2e194m33.json ../solinas64_2e194m33/
+${MAKE} "$@" montgomery32_2e196m15.json ../montgomery32_2e196m15/
+${MAKE} "$@" montgomery64_2e196m15.json ../montgomery64_2e196m15/
+${MAKE} "$@" solinas32_2e196m15.json ../solinas32_2e196m15/
+${MAKE} "$@" solinas64_2e196m15.json ../solinas64_2e196m15/
+${MAKE} "$@" montgomery32_2e198m17.json ../montgomery32_2e198m17/
+${MAKE} "$@" montgomery64_2e198m17.json ../montgomery64_2e198m17/
+${MAKE} "$@" solinas32_2e198m17.json ../solinas32_2e198m17/
+${MAKE} "$@" solinas64_2e198m17.json ../solinas64_2e198m17/
+${MAKE} "$@" montgomery32_2e206m5.json ../montgomery32_2e206m5/
+${MAKE} "$@" montgomery64_2e206m5.json ../montgomery64_2e206m5/
+${MAKE} "$@" solinas32_2e206m5.json ../solinas32_2e206m5/
+${MAKE} "$@" solinas64_2e206m5.json ../solinas64_2e206m5/
+${MAKE} "$@" montgomery32_2e212m29.json ../montgomery32_2e212m29/
+${MAKE} "$@" montgomery64_2e212m29.json ../montgomery64_2e212m29/
+${MAKE} "$@" solinas32_2e212m29.json ../solinas32_2e212m29/
+${MAKE} "$@" solinas64_2e212m29.json ../solinas64_2e212m29/
+${MAKE} "$@" montgomery32_2e213m3.json ../montgomery32_2e213m3/
+${MAKE} "$@" montgomery64_2e213m3.json ../montgomery64_2e213m3/
+${MAKE} "$@" solinas32_2e213m3.json ../solinas32_2e213m3/
+${MAKE} "$@" solinas64_2e213m3.json ../solinas64_2e213m3/
+${MAKE} "$@" montgomery32_2e221m3.json ../montgomery32_2e221m3/
+${MAKE} "$@" montgomery64_2e221m3.json ../montgomery64_2e221m3/
+${MAKE} "$@" solinas32_2e221m3.json ../solinas32_2e221m3/
+${MAKE} "$@" solinas64_2e221m3.json ../solinas64_2e221m3/
+${MAKE} "$@" montgomery32_2e222m117.json ../montgomery32_2e222m117/
+${MAKE} "$@" montgomery64_2e222m117.json ../montgomery64_2e222m117/
+${MAKE} "$@" solinas32_2e222m117.json ../solinas32_2e222m117/
+${MAKE} "$@" solinas64_2e222m117.json ../solinas64_2e222m117/
+${MAKE} "$@" montgomery32_2e226m5.json ../montgomery32_2e226m5/
+${MAKE} "$@" montgomery64_2e226m5.json ../montgomery64_2e226m5/
+${MAKE} "$@" solinas32_2e226m5.json ../solinas32_2e226m5/
+${MAKE} "$@" solinas64_2e226m5.json ../solinas64_2e226m5/
+${MAKE} "$@" montgomery32_2e230m27.json ../montgomery32_2e230m27/
+${MAKE} "$@" montgomery64_2e230m27.json ../montgomery64_2e230m27/
+${MAKE} "$@" solinas32_2e230m27.json ../solinas32_2e230m27/
+${MAKE} "$@" solinas64_2e230m27.json ../solinas64_2e230m27/
+${MAKE} "$@" montgomery32_2e235m15.json ../montgomery32_2e235m15/
+${MAKE} "$@" montgomery64_2e235m15.json ../montgomery64_2e235m15/
+${MAKE} "$@" solinas32_2e235m15.json ../solinas32_2e235m15/
+${MAKE} "$@" solinas64_2e235m15.json ../solinas64_2e235m15/
+${MAKE} "$@" montgomery32_2e243m9.json ../montgomery32_2e243m9/
+${MAKE} "$@" montgomery64_2e243m9.json ../montgomery64_2e243m9/
+${MAKE} "$@" solinas32_2e243m9.json ../solinas32_2e243m9/
+${MAKE} "$@" solinas64_2e243m9.json ../solinas64_2e243m9/
+${MAKE} "$@" montgomery32_2e251m9.json ../montgomery32_2e251m9/
+${MAKE} "$@" montgomery64_2e251m9.json ../montgomery64_2e251m9/
+${MAKE} "$@" solinas32_2e251m9.json ../solinas32_2e251m9/
+${MAKE} "$@" solinas64_2e251m9.json ../solinas64_2e251m9/
+${MAKE} "$@" montgomery32_2e255m765.json ../montgomery32_2e255m765/
+${MAKE} "$@" montgomery64_2e255m765.json ../montgomery64_2e255m765/
+${MAKE} "$@" solinas32_2e255m765.json ../solinas32_2e255m765/
+${MAKE} "$@" solinas64_2e255m765.json ../solinas64_2e255m765/
+${MAKE} "$@" montgomery32_2e255m19.json ../montgomery32_2e255m19/
+${MAKE} "$@" montgomery64_2e255m19.json ../montgomery64_2e255m19/
+${MAKE} "$@" solinas32_2e255m19.json ../solinas32_2e255m19/
+${MAKE} "$@" solinas64_2e255m19.json ../solinas64_2e255m19/
+${MAKE} "$@" montgomery32_2e256m189.json ../montgomery32_2e256m189/
+${MAKE} "$@" montgomery64_2e256m189.json ../montgomery64_2e256m189/
+${MAKE} "$@" solinas32_2e256m189.json ../solinas32_2e256m189/
+${MAKE} "$@" solinas64_2e256m189.json ../solinas64_2e256m189/
+${MAKE} "$@" montgomery32_2e266m3.json ../montgomery32_2e266m3/
+${MAKE} "$@" montgomery64_2e266m3.json ../montgomery64_2e266m3/
+${MAKE} "$@" solinas32_2e266m3.json ../solinas32_2e266m3/
+${MAKE} "$@" solinas64_2e266m3.json ../solinas64_2e266m3/
+${MAKE} "$@" montgomery32_2e285m9.json ../montgomery32_2e285m9/
+${MAKE} "$@" montgomery64_2e285m9.json ../montgomery64_2e285m9/
+${MAKE} "$@" solinas32_2e285m9.json ../solinas32_2e285m9/
+${MAKE} "$@" solinas64_2e285m9.json ../solinas64_2e285m9/
+${MAKE} "$@" montgomery32_2e291m19.json ../montgomery32_2e291m19/
+${MAKE} "$@" montgomery64_2e291m19.json ../montgomery64_2e291m19/
+${MAKE} "$@" solinas32_2e291m19.json ../solinas32_2e291m19/
+${MAKE} "$@" solinas64_2e291m19.json ../solinas64_2e291m19/
+${MAKE} "$@" montgomery32_2e321m9.json ../montgomery32_2e321m9/
+${MAKE} "$@" montgomery64_2e321m9.json ../montgomery64_2e321m9/
+${MAKE} "$@" solinas32_2e321m9.json ../solinas32_2e321m9/
+${MAKE} "$@" solinas64_2e321m9.json ../solinas64_2e321m9/
+${MAKE} "$@" montgomery32_2e336m17.json ../montgomery32_2e336m17/
+${MAKE} "$@" montgomery64_2e336m17.json ../montgomery64_2e336m17/
+${MAKE} "$@" solinas32_2e336m17.json ../solinas32_2e336m17/
+${MAKE} "$@" solinas64_2e336m17.json ../solinas64_2e336m17/
+${MAKE} "$@" montgomery32_2e336m3.json ../montgomery32_2e336m3/
+${MAKE} "$@" montgomery64_2e336m3.json ../montgomery64_2e336m3/
+${MAKE} "$@" solinas32_2e336m3.json ../solinas32_2e336m3/
+${MAKE} "$@" solinas64_2e336m3.json ../solinas64_2e336m3/
+${MAKE} "$@" montgomery32_2e338m15.json ../montgomery32_2e338m15/
+${MAKE} "$@" montgomery64_2e338m15.json ../montgomery64_2e338m15/
+${MAKE} "$@" solinas32_2e338m15.json ../solinas32_2e338m15/
+${MAKE} "$@" solinas64_2e338m15.json ../solinas64_2e338m15/
+${MAKE} "$@" montgomery32_2e369m25.json ../montgomery32_2e369m25/
+${MAKE} "$@" montgomery64_2e369m25.json ../montgomery64_2e369m25/
+${MAKE} "$@" solinas32_2e369m25.json ../solinas32_2e369m25/
+${MAKE} "$@" solinas64_2e369m25.json ../solinas64_2e369m25/
+${MAKE} "$@" montgomery32_2e379m19.json ../montgomery32_2e379m19/
+${MAKE} "$@" montgomery64_2e379m19.json ../montgomery64_2e379m19/
+${MAKE} "$@" solinas32_2e379m19.json ../solinas32_2e379m19/
+${MAKE} "$@" solinas64_2e379m19.json ../solinas64_2e379m19/
+${MAKE} "$@" montgomery32_2e382m105.json ../montgomery32_2e382m105/
+${MAKE} "$@" montgomery64_2e382m105.json ../montgomery64_2e382m105/
+${MAKE} "$@" solinas32_2e382m105.json ../solinas32_2e382m105/
+${MAKE} "$@" solinas64_2e382m105.json ../solinas64_2e382m105/
+${MAKE} "$@" montgomery32_2e383m421.json ../montgomery32_2e383m421/
+${MAKE} "$@" montgomery64_2e383m421.json ../montgomery64_2e383m421/
+${MAKE} "$@" montgomery32_2e383m187.json ../montgomery32_2e383m187/
+${MAKE} "$@" montgomery64_2e383m187.json ../montgomery64_2e383m187/
+${MAKE} "$@" montgomery32_2e383m31.json ../montgomery32_2e383m31/
+${MAKE} "$@" montgomery64_2e383m31.json ../montgomery64_2e383m31/
+${MAKE} "$@" montgomery32_2e384m317.json ../montgomery32_2e384m317/
+${MAKE} "$@" montgomery64_2e384m317.json ../montgomery64_2e384m317/
+${MAKE} "$@" solinas32_2e384m317.json ../solinas32_2e384m317/
+${MAKE} "$@" solinas64_2e384m317.json ../solinas64_2e384m317/
+${MAKE} "$@" montgomery32_2e389m21.json ../montgomery32_2e389m21/
+${MAKE} "$@" montgomery64_2e389m21.json ../montgomery64_2e389m21/
+${MAKE} "$@" montgomery32_2e401m31.json ../montgomery32_2e401m31/
+${MAKE} "$@" montgomery64_2e401m31.json ../montgomery64_2e401m31/
+${MAKE} "$@" solinas32_2e401m31.json ../solinas32_2e401m31/
+${MAKE} "$@" solinas64_2e401m31.json ../solinas64_2e401m31/
+${MAKE} "$@" montgomery32_2e413m21.json ../montgomery32_2e413m21/
+${MAKE} "$@" montgomery64_2e413m21.json ../montgomery64_2e413m21/
+${MAKE} "$@" solinas32_2e413m21.json ../solinas32_2e413m21/
+${MAKE} "$@" solinas64_2e413m21.json ../solinas64_2e413m21/
+${MAKE} "$@" montgomery32_2e414m17.json ../montgomery32_2e414m17/
+${MAKE} "$@" montgomery64_2e414m17.json ../montgomery64_2e414m17/
+${MAKE} "$@" solinas32_2e414m17.json ../solinas32_2e414m17/
+${MAKE} "$@" solinas64_2e414m17.json ../solinas64_2e414m17/
+${MAKE} "$@" montgomery32_2e444m17.json ../montgomery32_2e444m17/
+${MAKE} "$@" montgomery64_2e444m17.json ../montgomery64_2e444m17/
+${MAKE} "$@" solinas32_2e444m17.json ../solinas32_2e444m17/
+${MAKE} "$@" solinas64_2e444m17.json ../solinas64_2e444m17/
+${MAKE} "$@" montgomery32_2e452m3.json ../montgomery32_2e452m3/
+${MAKE} "$@" montgomery64_2e452m3.json ../montgomery64_2e452m3/
+${MAKE} "$@" solinas32_2e452m3.json ../solinas32_2e452m3/
+${MAKE} "$@" solinas64_2e452m3.json ../solinas64_2e452m3/
+${MAKE} "$@" montgomery32_2e468m17.json ../montgomery32_2e468m17/
+${MAKE} "$@" montgomery64_2e468m17.json ../montgomery64_2e468m17/
+${MAKE} "$@" solinas32_2e468m17.json ../solinas32_2e468m17/
+${MAKE} "$@" solinas64_2e468m17.json ../solinas64_2e468m17/
+${MAKE} "$@" montgomery32_2e488m17.json ../montgomery32_2e488m17/
+${MAKE} "$@" montgomery64_2e488m17.json ../montgomery64_2e488m17/
+${MAKE} "$@" solinas32_2e488m17.json ../solinas32_2e488m17/
+${MAKE} "$@" solinas64_2e488m17.json ../solinas64_2e488m17/
+${MAKE} "$@" montgomery32_2e489m21.json ../montgomery32_2e489m21/
+${MAKE} "$@" montgomery64_2e489m21.json ../montgomery64_2e489m21/
+${MAKE} "$@" solinas32_2e489m21.json ../solinas32_2e489m21/
+${MAKE} "$@" solinas64_2e489m21.json ../solinas64_2e489m21/
+${MAKE} "$@" montgomery32_2e495m31.json ../montgomery32_2e495m31/
+${MAKE} "$@" montgomery64_2e495m31.json ../montgomery64_2e495m31/
+${MAKE} "$@" solinas32_2e495m31.json ../solinas32_2e495m31/
+${MAKE} "$@" solinas64_2e495m31.json ../solinas64_2e495m31/
+${MAKE} "$@" montgomery32_2e511m481.json ../montgomery32_2e511m481/
+${MAKE} "$@" montgomery64_2e511m481.json ../montgomery64_2e511m481/
+${MAKE} "$@" solinas32_2e511m481.json ../solinas32_2e511m481/
+${MAKE} "$@" solinas64_2e511m481.json ../solinas64_2e511m481/
+${MAKE} "$@" montgomery32_2e511m187.json ../montgomery32_2e511m187/
+${MAKE} "$@" montgomery64_2e511m187.json ../montgomery64_2e511m187/
+${MAKE} "$@" solinas32_2e511m187.json ../solinas32_2e511m187/
+${MAKE} "$@" solinas64_2e511m187.json ../solinas64_2e511m187/
+${MAKE} "$@" montgomery32_2e512m569.json ../montgomery32_2e512m569/
+${MAKE} "$@" montgomery64_2e512m569.json ../montgomery64_2e512m569/
+${MAKE} "$@" solinas32_2e512m569.json ../solinas32_2e512m569/
+${MAKE} "$@" solinas64_2e512m569.json ../solinas64_2e512m569/
+${MAKE} "$@" montgomery32_2e521m1.json ../montgomery32_2e521m1/
+${MAKE} "$@" montgomery64_2e521m1.json ../montgomery64_2e521m1/
+${MAKE} "$@" solinas32_2e521m1.json ../solinas32_2e521m1/
+${MAKE} "$@" solinas64_2e521m1.json ../solinas64_2e521m1/
+${MAKE} "$@" montgomery32_2e192m2e64m1.json ../montgomery32_2e192m2e64m1/
+${MAKE} "$@" montgomery64_2e192m2e64m1.json ../montgomery64_2e192m2e64m1/
+${MAKE} "$@" solinas32_2e192m2e64m1.json ../solinas32_2e192m2e64m1/
+${MAKE} "$@" solinas64_2e192m2e64m1.json ../solinas64_2e192m2e64m1/
+${MAKE} "$@" montgomery32_2e216m2e108m1.json ../montgomery32_2e216m2e108m1/
+${MAKE} "$@" montgomery64_2e216m2e108m1.json ../montgomery64_2e216m2e108m1/
+${MAKE} "$@" solinas32_2e216m2e108m1.json ../solinas32_2e216m2e108m1/
+${MAKE} "$@" solinas64_2e216m2e108m1.json ../solinas64_2e216m2e108m1/
+${MAKE} "$@" montgomery32_2e322m2e161m1.json ../montgomery32_2e322m2e161m1/
+${MAKE} "$@" montgomery64_2e322m2e161m1.json ../montgomery64_2e322m2e161m1/
+${MAKE} "$@" solinas32_2e322m2e161m1.json ../solinas32_2e322m2e161m1/
+${MAKE} "$@" solinas64_2e322m2e161m1.json ../solinas64_2e322m2e161m1/
+${MAKE} "$@" montgomery32_2e416m2e208m1.json ../montgomery32_2e416m2e208m1/
+${MAKE} "$@" montgomery64_2e416m2e208m1.json ../montgomery64_2e416m2e208m1/
+${MAKE} "$@" solinas32_2e416m2e208m1.json ../solinas32_2e416m2e208m1/
+${MAKE} "$@" solinas64_2e416m2e208m1.json ../solinas64_2e416m2e208m1/
+${MAKE} "$@" montgomery32_2e448m2e224m1.json ../montgomery32_2e448m2e224m1/
+${MAKE} "$@" montgomery64_2e448m2e224m1.json ../montgomery64_2e448m2e224m1/
+${MAKE} "$@" solinas32_2e448m2e224m1.json ../solinas32_2e448m2e224m1/
+${MAKE} "$@" solinas64_2e448m2e224m1.json ../solinas64_2e448m2e224m1/
+${MAKE} "$@" montgomery32_2e450m2e225m1.json ../montgomery32_2e450m2e225m1/
+${MAKE} "$@" montgomery64_2e450m2e225m1.json ../montgomery64_2e450m2e225m1/
+${MAKE} "$@" solinas32_2e450m2e225m1.json ../solinas32_2e450m2e225m1/
+${MAKE} "$@" solinas64_2e450m2e225m1.json ../solinas64_2e450m2e225m1/
+${MAKE} "$@" montgomery32_2e480m2e240m1.json ../montgomery32_2e480m2e240m1/
+${MAKE} "$@" montgomery64_2e480m2e240m1.json ../montgomery64_2e480m2e240m1/
+${MAKE} "$@" solinas32_2e480m2e240m1.json ../solinas32_2e480m2e240m1/
+${MAKE} "$@" solinas64_2e480m2e240m1.json ../solinas64_2e480m2e240m1/
+${MAKE} "$@" montgomery32_2e224m2e96p1.json ../montgomery32_2e224m2e96p1/
+${MAKE} "$@" montgomery64_2e224m2e96p1.json ../montgomery64_2e224m2e96p1/
+${MAKE} "$@" solinas32_2e224m2e96p1.json ../solinas32_2e224m2e96p1/
+${MAKE} "$@" solinas64_2e224m2e96p1.json ../solinas64_2e224m2e96p1/
+${MAKE} "$@" montgomery32_2e255m2e4m2e1m1.json ../montgomery32_2e255m2e4m2e1m1/
+${MAKE} "$@" montgomery64_2e255m2e4m2e1m1.json ../montgomery64_2e255m2e4m2e1m1/
+${MAKE} "$@" solinas32_2e255m2e4m2e1m1.json ../solinas32_2e255m2e4m2e1m1/
+${MAKE} "$@" solinas64_2e255m2e4m2e1m1.json ../solinas64_2e255m2e4m2e1m1/
+${MAKE} "$@" montgomery32_2e256m2e224p2e192p2e96m1.json ../montgomery32_2e256m2e224p2e192p2e96m1/
+${MAKE} "$@" montgomery64_2e256m2e224p2e192p2e96m1.json ../montgomery64_2e256m2e224p2e192p2e96m1/
+${MAKE} "$@" solinas32_2e256m2e224p2e192p2e96m1.json ../solinas32_2e256m2e224p2e192p2e96m1/
+${MAKE} "$@" solinas64_2e256m2e224p2e192p2e96m1.json ../solinas64_2e256m2e224p2e192p2e96m1/
+${MAKE} "$@" montgomery32_2e256m2e32m977.json ../montgomery32_2e256m2e32m977/
+${MAKE} "$@" montgomery64_2e256m2e32m977.json ../montgomery64_2e256m2e32m977/
+${MAKE} "$@" solinas32_2e256m2e32m977.json ../solinas32_2e256m2e32m977/
+${MAKE} "$@" solinas64_2e256m2e32m977.json ../solinas64_2e256m2e32m977/
+${MAKE} "$@" montgomery32_2e384m2e128m2e96p2e32m1.json ../montgomery32_2e384m2e128m2e96p2e32m1/
+${MAKE} "$@" montgomery64_2e384m2e128m2e96p2e32m1.json ../montgomery64_2e384m2e128m2e96p2e32m1/
+${MAKE} "$@" solinas32_2e384m2e128m2e96p2e32m1.json ../solinas32_2e384m2e128m2e96p2e32m1/
+${MAKE} "$@" solinas64_2e384m2e128m2e96p2e32m1.json ../solinas64_2e384m2e128m2e96p2e32m1/
diff --git a/src/Specific/CurveParameters/solinas32_2e127m1.json b/src/Specific/CurveParameters/solinas32_2e127m1.json
new file mode 100644
index 000000000..69d42b7c7
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e127m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^127 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e129m25.json b/src/Specific/CurveParameters/solinas32_2e129m25.json
new file mode 100644
index 000000000..f8767a168
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e129m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^129 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e130m5.json b/src/Specific/CurveParameters/solinas32_2e130m5.json
new file mode 100644
index 000000000..7ecbf6717
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e130m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "16", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^130 - 5 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e137m13.json b/src/Specific/CurveParameters/solinas32_2e137m13.json
new file mode 100644
index 000000000..8b17195d2
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e137m13.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "17", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^137 - 13", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e140m27.json b/src/Specific/CurveParameters/solinas32_2e140m27.json
new file mode 100644
index 000000000..b79999dbd
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e140m27.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "7", "base": "20", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^140 - 27", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e141m9.json b/src/Specific/CurveParameters/solinas32_2e141m9.json
new file mode 100644
index 000000000..b669731f5
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e141m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "7", "base": "20", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^141 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e150m3.json b/src/Specific/CurveParameters/solinas32_2e150m3.json
new file mode 100644
index 000000000..d8d756f56
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e150m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "25", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^150 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e150m5.json b/src/Specific/CurveParameters/solinas32_2e150m5.json
new file mode 100644
index 000000000..ebb175fb2
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e150m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "15", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^150 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e152m17.json b/src/Specific/CurveParameters/solinas32_2e152m17.json
new file mode 100644
index 000000000..af58a2315
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e152m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^152 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e158m15.json b/src/Specific/CurveParameters/solinas32_2e158m15.json
new file mode 100644
index 000000000..930baf34e
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e158m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "13", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^158 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e165m25.json b/src/Specific/CurveParameters/solinas32_2e165m25.json
new file mode 100644
index 000000000..92667a0a0
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e165m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "18", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^165 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e166m5.json b/src/Specific/CurveParameters/solinas32_2e166m5.json
new file mode 100644
index 000000000..621e268c9
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e166m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "11", "base": "15", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^166 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e171m19.json b/src/Specific/CurveParameters/solinas32_2e171m19.json
new file mode 100644
index 000000000..4259b4f96
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e171m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^171 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e174m17.json b/src/Specific/CurveParameters/solinas32_2e174m17.json
new file mode 100644
index 000000000..f17f157ce
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e174m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^174 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e174m3.json b/src/Specific/CurveParameters/solinas32_2e174m3.json
new file mode 100644
index 000000000..7148ef2ad
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e174m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^174 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e189m25.json b/src/Specific/CurveParameters/solinas32_2e189m25.json
new file mode 100644
index 000000000..4552c612c
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e189m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^189 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e190m11.json b/src/Specific/CurveParameters/solinas32_2e190m11.json
new file mode 100644
index 000000000..b7e12c4b3
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e190m11.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^190 - 11", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e191m19.json b/src/Specific/CurveParameters/solinas32_2e191m19.json
new file mode 100644
index 000000000..ae23f0653
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e191m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^191 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json b/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json
new file mode 100644
index 000000000..c3b27e120
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "24", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^192 - 2^64 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e194m33.json b/src/Specific/CurveParameters/solinas32_2e194m33.json
new file mode 100644
index 000000000..bcc61ea6d
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e194m33.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "16", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^194 - 33", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e196m15.json b/src/Specific/CurveParameters/solinas32_2e196m15.json
new file mode 100644
index 000000000..dd4fd0650
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e196m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "24", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^196 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e198m17.json b/src/Specific/CurveParameters/solinas32_2e198m17.json
new file mode 100644
index 000000000..ef8736e6d
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e198m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "22", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^198 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e206m5.json b/src/Specific/CurveParameters/solinas32_2e206m5.json
new file mode 100644
index 000000000..7c05cadd6
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e206m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "17", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^206 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e212m29.json b/src/Specific/CurveParameters/solinas32_2e212m29.json
new file mode 100644
index 000000000..42d9238e7
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e212m29.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^212 - 29", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e213m3.json b/src/Specific/CurveParameters/solinas32_2e213m3.json
new file mode 100644
index 000000000..26d6537be
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e213m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "15", "base": "14", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^213 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json b/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json
new file mode 100644
index 000000000..570cee185
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "27", "goldilocks": true, "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^216 - 2^108 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e221m3.json b/src/Specific/CurveParameters/solinas32_2e221m3.json
new file mode 100644
index 000000000..328bd194d
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e221m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "22", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^221 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e222m117.json b/src/Specific/CurveParameters/solinas32_2e222m117.json
new file mode 100644
index 000000000..97683a932
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e222m117.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "22", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^222 - 117", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json b/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json
new file mode 100644
index 000000000..1f19fc473
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "28", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^224 - 2^96 + 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e226m5.json b/src/Specific/CurveParameters/solinas32_2e226m5.json
new file mode 100644
index 000000000..7e4c3df68
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e226m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "25", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^226 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e230m27.json b/src/Specific/CurveParameters/solinas32_2e230m27.json
new file mode 100644
index 000000000..43be535ca
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e230m27.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "23", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^230 - 27", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e235m15.json b/src/Specific/CurveParameters/solinas32_2e235m15.json
new file mode 100644
index 000000000..e7841cd18
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e235m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "23", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^235 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e243m9.json b/src/Specific/CurveParameters/solinas32_2e243m9.json
new file mode 100644
index 000000000..dfe98b613
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e243m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "11", "base": "22", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^243 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e251m9.json b/src/Specific/CurveParameters/solinas32_2e251m9.json
new file mode 100644
index 000000000..b28450e19
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e251m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "25", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^251 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e255m19.json b/src/Specific/CurveParameters/solinas32_2e255m19.json
new file mode 100644
index 000000000..a562b52df
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e255m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^255 - 19 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json
new file mode 100644
index 000000000..0db820abe
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "28", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^255 - 2^4 - 2^1 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e255m765.json b/src/Specific/CurveParameters/solinas32_2e255m765.json
new file mode 100644
index 000000000..5fd6c3cd0
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e255m765.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "15", "base": "17", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^255 - 765", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e256m189.json b/src/Specific/CurveParameters/solinas32_2e256m189.json
new file mode 100644
index 000000000..6a5bc4a38
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e256m189.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^256 - 189", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json
new file mode 100644
index 000000000..80e4da4aa
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json b/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json
new file mode 100644
index 000000000..49bb2c1d8
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "15", "base": "17", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^256 - 2^32 - 977 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e266m3.json b/src/Specific/CurveParameters/solinas32_2e266m3.json
new file mode 100644
index 000000000..5a1aeaeb8
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e266m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "22", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^266 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e285m9.json b/src/Specific/CurveParameters/solinas32_2e285m9.json
new file mode 100644
index 000000000..d43ba9cb4
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e285m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "15", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^285 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e291m19.json b/src/Specific/CurveParameters/solinas32_2e291m19.json
new file mode 100644
index 000000000..0deff4439
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e291m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "12", "base": "24", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^291 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e321m9.json b/src/Specific/CurveParameters/solinas32_2e321m9.json
new file mode 100644
index 000000000..629d3b532
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e321m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "20", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^321 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json b/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json
new file mode 100644
index 000000000..9ab551568
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "14", "base": "23", "goldilocks": true, "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^322 - 2^161 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e336m17.json b/src/Specific/CurveParameters/solinas32_2e336m17.json
new file mode 100644
index 000000000..e35b6d47f
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e336m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "14", "base": "24", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^336 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e336m3.json b/src/Specific/CurveParameters/solinas32_2e336m3.json
new file mode 100644
index 000000000..670292000
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e336m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "14", "base": "24", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^336 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e338m15.json b/src/Specific/CurveParameters/solinas32_2e338m15.json
new file mode 100644
index 000000000..d3bbf8ec7
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e338m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "14", "base": "24", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^338 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e369m25.json b/src/Specific/CurveParameters/solinas32_2e369m25.json
new file mode 100644
index 000000000..39e66f39e
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e369m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "23", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^369 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e379m19.json b/src/Specific/CurveParameters/solinas32_2e379m19.json
new file mode 100644
index 000000000..417a85075
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e379m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "18", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^379 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e382m105.json b/src/Specific/CurveParameters/solinas32_2e382m105.json
new file mode 100644
index 000000000..b3c92cb71
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e382m105.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "20", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^382 - 105", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json
new file mode 100644
index 000000000..56cb20652
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "24", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e384m317.json b/src/Specific/CurveParameters/solinas32_2e384m317.json
new file mode 100644
index 000000000..5d1032885
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e384m317.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "18", "base": "21", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^384 - 317", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e401m31.json b/src/Specific/CurveParameters/solinas32_2e401m31.json
new file mode 100644
index 000000000..f4794e572
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e401m31.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "25", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^401 - 31", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e413m21.json b/src/Specific/CurveParameters/solinas32_2e413m21.json
new file mode 100644
index 000000000..8f3deb1f2
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e413m21.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "59", "base": "7", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^413 - 21", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e414m17.json b/src/Specific/CurveParameters/solinas32_2e414m17.json
new file mode 100644
index 000000000..aad9fd37b
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e414m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "18", "base": "23", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^414 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json b/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json
new file mode 100644
index 000000000..6a67ba97e
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "26", "goldilocks": true, "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^416 - 2^208 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e444m17.json b/src/Specific/CurveParameters/solinas32_2e444m17.json
new file mode 100644
index 000000000..79dd89cde
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e444m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "20", "base": "22", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^444 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json b/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json
new file mode 100644
index 000000000..d5a7c339c
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "28", "goldilocks": true, "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^448 - 2^224 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json b/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json
new file mode 100644
index 000000000..c576d9581
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "28", "goldilocks": true, "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^450 - 2^225 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e452m3.json b/src/Specific/CurveParameters/solinas32_2e452m3.json
new file mode 100644
index 000000000..bac4aa4ce
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e452m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "18", "base": "25", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^452 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e468m17.json b/src/Specific/CurveParameters/solinas32_2e468m17.json
new file mode 100644
index 000000000..3868cd7ab
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e468m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "24", "base": "19", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^468 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json b/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json
new file mode 100644
index 000000000..3edda147c
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "30", "goldilocks": true, "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^480 - 2^240 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e488m17.json b/src/Specific/CurveParameters/solinas32_2e488m17.json
new file mode 100644
index 000000000..4020bc66b
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e488m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "24", "base": "20", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^488 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e489m21.json b/src/Specific/CurveParameters/solinas32_2e489m21.json
new file mode 100644
index 000000000..5cc3a2a23
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e489m21.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "27", "base": "18", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^489 - 21", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e495m31.json b/src/Specific/CurveParameters/solinas32_2e495m31.json
new file mode 100644
index 000000000..2f3ec4d2f
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e495m31.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "22", "base": "22", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^495 - 31", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e511m187.json b/src/Specific/CurveParameters/solinas32_2e511m187.json
new file mode 100644
index 000000000..a31a3fdf8
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e511m187.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "28", "base": "18", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^511 - 187", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e511m481.json b/src/Specific/CurveParameters/solinas32_2e511m481.json
new file mode 100644
index 000000000..736c2a4d0
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e511m481.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "28", "base": "18", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^511 - 481", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e512m569.json b/src/Specific/CurveParameters/solinas32_2e512m569.json
new file mode 100644
index 000000000..6be4c373b
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e512m569.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "30", "base": "17", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^512 - 569", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas32_2e521m1.json b/src/Specific/CurveParameters/solinas32_2e521m1.json
new file mode 100644
index 000000000..021c1b2a7
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas32_2e521m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "20", "base": "26", "bitwidth": 32, "coef_div_modulus": "2", "modulus": "2^521 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e127m1.json b/src/Specific/CurveParameters/solinas64_2e127m1.json
new file mode 100644
index 000000000..9362a8f36
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e127m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "3", "base": "42", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^127 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e129m25.json b/src/Specific/CurveParameters/solinas64_2e129m25.json
new file mode 100644
index 000000000..536cab07a
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e129m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "32", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^129 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e130m5.json b/src/Specific/CurveParameters/solinas64_2e130m5.json
new file mode 100644
index 000000000..27d197c85
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e130m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "32", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^130 - 5 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e137m13.json b/src/Specific/CurveParameters/solinas64_2e137m13.json
new file mode 100644
index 000000000..76da68995
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e137m13.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "34", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^137 - 13", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e140m27.json b/src/Specific/CurveParameters/solinas64_2e140m27.json
new file mode 100644
index 000000000..9d24d8329
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e140m27.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "35", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^140 - 27", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e141m9.json b/src/Specific/CurveParameters/solinas64_2e141m9.json
new file mode 100644
index 000000000..a3d92b56e
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e141m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "35", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^141 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e150m3.json b/src/Specific/CurveParameters/solinas64_2e150m3.json
new file mode 100644
index 000000000..d41854c22
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e150m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "37", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^150 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e150m5.json b/src/Specific/CurveParameters/solinas64_2e150m5.json
new file mode 100644
index 000000000..9815f26b6
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e150m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "37", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^150 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e152m17.json b/src/Specific/CurveParameters/solinas64_2e152m17.json
new file mode 100644
index 000000000..20af30851
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e152m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "38", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^152 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e158m15.json b/src/Specific/CurveParameters/solinas64_2e158m15.json
new file mode 100644
index 000000000..b192e9819
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e158m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "39", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^158 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e165m25.json b/src/Specific/CurveParameters/solinas64_2e165m25.json
new file mode 100644
index 000000000..ca38dfefb
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e165m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "41", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^165 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e166m5.json b/src/Specific/CurveParameters/solinas64_2e166m5.json
new file mode 100644
index 000000000..337486a38
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e166m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "41", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^166 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e171m19.json b/src/Specific/CurveParameters/solinas64_2e171m19.json
new file mode 100644
index 000000000..8fc562580
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e171m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "34", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^171 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e174m17.json b/src/Specific/CurveParameters/solinas64_2e174m17.json
new file mode 100644
index 000000000..fe063a6a7
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e174m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "43", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^174 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e174m3.json b/src/Specific/CurveParameters/solinas64_2e174m3.json
new file mode 100644
index 000000000..c7c625aa5
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e174m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "43", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^174 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e189m25.json b/src/Specific/CurveParameters/solinas64_2e189m25.json
new file mode 100644
index 000000000..76be4c085
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e189m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "31", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^189 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e190m11.json b/src/Specific/CurveParameters/solinas64_2e190m11.json
new file mode 100644
index 000000000..a0ff3b3b9
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e190m11.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "38", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^190 - 11", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e191m19.json b/src/Specific/CurveParameters/solinas64_2e191m19.json
new file mode 100644
index 000000000..a735bb011
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e191m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "38", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^191 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json b/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json
new file mode 100644
index 000000000..2fce00525
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "4", "base": "48", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^192 - 2^64 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e194m33.json b/src/Specific/CurveParameters/solinas64_2e194m33.json
new file mode 100644
index 000000000..ee26dcc78
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e194m33.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "32", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^194 - 33", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e196m15.json b/src/Specific/CurveParameters/solinas64_2e196m15.json
new file mode 100644
index 000000000..b8b11b353
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e196m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "39", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^196 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e198m17.json b/src/Specific/CurveParameters/solinas64_2e198m17.json
new file mode 100644
index 000000000..e75464341
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e198m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "33", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^198 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e206m5.json b/src/Specific/CurveParameters/solinas64_2e206m5.json
new file mode 100644
index 000000000..bf8052973
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e206m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "41", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^206 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e212m29.json b/src/Specific/CurveParameters/solinas64_2e212m29.json
new file mode 100644
index 000000000..277d00c6e
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e212m29.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "35", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^212 - 29", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e213m3.json b/src/Specific/CurveParameters/solinas64_2e213m3.json
new file mode 100644
index 000000000..d6c488c94
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e213m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "35", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^213 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json b/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json
new file mode 100644
index 000000000..52d2a32d7
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "43", "goldilocks": true, "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^216 - 2^108 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e221m3.json b/src/Specific/CurveParameters/solinas64_2e221m3.json
new file mode 100644
index 000000000..be6f36a32
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e221m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "44", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^221 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e222m117.json b/src/Specific/CurveParameters/solinas64_2e222m117.json
new file mode 100644
index 000000000..5992d6ed9
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e222m117.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "37", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^222 - 117", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json b/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json
new file mode 100644
index 000000000..e518ed304
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "37", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^224 - 2^96 + 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e226m5.json b/src/Specific/CurveParameters/solinas64_2e226m5.json
new file mode 100644
index 000000000..a0865fcb5
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e226m5.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "45", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^226 - 5", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e230m27.json b/src/Specific/CurveParameters/solinas64_2e230m27.json
new file mode 100644
index 000000000..35641b18a
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e230m27.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "46", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^230 - 27", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e235m15.json b/src/Specific/CurveParameters/solinas64_2e235m15.json
new file mode 100644
index 000000000..c1e846400
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e235m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "47", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^235 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e243m9.json b/src/Specific/CurveParameters/solinas64_2e243m9.json
new file mode 100644
index 000000000..edb261524
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e243m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "40", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^243 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e251m9.json b/src/Specific/CurveParameters/solinas64_2e251m9.json
new file mode 100644
index 000000000..87135bced
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e251m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "25", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^251 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e255m19.json b/src/Specific/CurveParameters/solinas64_2e255m19.json
new file mode 100644
index 000000000..7aa674865
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e255m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "42", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^255 - 19 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json
new file mode 100644
index 000000000..3bc7976ec
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "51", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^255 - 2^4 - 2^1 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e255m765.json b/src/Specific/CurveParameters/solinas64_2e255m765.json
new file mode 100644
index 000000000..279aac7e8
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e255m765.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "42", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^255 - 765", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e256m189.json b/src/Specific/CurveParameters/solinas64_2e256m189.json
new file mode 100644
index 000000000..0d4124599
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e256m189.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "32", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^256 - 189", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json
new file mode 100644
index 000000000..3615d72d0
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "5", "base": "51", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json b/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json
new file mode 100644
index 000000000..aa7c72e01
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "32", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^256 - 2^32 - 977 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e266m3.json b/src/Specific/CurveParameters/solinas64_2e266m3.json
new file mode 100644
index 000000000..fb5bf8f37
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e266m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "44", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^266 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e285m9.json b/src/Specific/CurveParameters/solinas64_2e285m9.json
new file mode 100644
index 000000000..7d3bfddb6
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e285m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "47", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^285 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e291m19.json b/src/Specific/CurveParameters/solinas64_2e291m19.json
new file mode 100644
index 000000000..9b8fb0a50
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e291m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "6", "base": "48", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^291 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e321m9.json b/src/Specific/CurveParameters/solinas64_2e321m9.json
new file mode 100644
index 000000000..e54421a71
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e321m9.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "40", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^321 - 9", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json b/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json
new file mode 100644
index 000000000..d3aca0859
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "7", "base": "46", "goldilocks": true, "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^322 - 2^161 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e336m17.json b/src/Specific/CurveParameters/solinas64_2e336m17.json
new file mode 100644
index 000000000..e68750276
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e336m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "7", "base": "48", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^336 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e336m3.json b/src/Specific/CurveParameters/solinas64_2e336m3.json
new file mode 100644
index 000000000..e6d58b6e2
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e336m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "7", "base": "48", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^336 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e338m15.json b/src/Specific/CurveParameters/solinas64_2e338m15.json
new file mode 100644
index 000000000..58fd612a2
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e338m15.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "42", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^338 - 15", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e369m25.json b/src/Specific/CurveParameters/solinas64_2e369m25.json
new file mode 100644
index 000000000..6f915bf56
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e369m25.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "46", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^369 - 25", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e379m19.json b/src/Specific/CurveParameters/solinas64_2e379m19.json
new file mode 100644
index 000000000..3fa353c5e
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e379m19.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "42", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^379 - 19", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e382m105.json b/src/Specific/CurveParameters/solinas64_2e382m105.json
new file mode 100644
index 000000000..69452f651
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e382m105.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "38", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^382 - 105", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json
new file mode 100644
index 000000000..e06480538
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "48", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e384m317.json b/src/Specific/CurveParameters/solinas64_2e384m317.json
new file mode 100644
index 000000000..d5828dd0c
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e384m317.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "48", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^384 - 317", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e401m31.json b/src/Specific/CurveParameters/solinas64_2e401m31.json
new file mode 100644
index 000000000..bdc620a34
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e401m31.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "50", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^401 - 31", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e413m21.json b/src/Specific/CurveParameters/solinas64_2e413m21.json
new file mode 100644
index 000000000..e51eb30df
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e413m21.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "14", "base": "29", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^413 - 21", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e414m17.json b/src/Specific/CurveParameters/solinas64_2e414m17.json
new file mode 100644
index 000000000..5fd767a80
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e414m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "46", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^414 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json b/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json
new file mode 100644
index 000000000..e873bb270
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "52", "goldilocks": true, "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^416 - 2^208 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e444m17.json b/src/Specific/CurveParameters/solinas64_2e444m17.json
new file mode 100644
index 000000000..95ce0858d
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e444m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "49", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^444 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json b/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json
new file mode 100644
index 000000000..915b8323f
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "8", "base": "56", "goldilocks": true, "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^448 - 2^224 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json b/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json
new file mode 100644
index 000000000..726f88f02
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "50", "goldilocks": true, "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^450 - 2^225 - 1", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e452m3.json b/src/Specific/CurveParameters/solinas64_2e452m3.json
new file mode 100644
index 000000000..02fcb2063
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e452m3.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "45", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^452 - 3", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e468m17.json b/src/Specific/CurveParameters/solinas64_2e468m17.json
new file mode 100644
index 000000000..4fe0b62d0
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e468m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "52", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^468 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json b/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json
new file mode 100644
index 000000000..f7fddbbbb
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "9", "base": "53", "goldilocks": true, "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^480 - 2^240 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e488m17.json b/src/Specific/CurveParameters/solinas64_2e488m17.json
new file mode 100644
index 000000000..bdf25f5e2
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e488m17.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "30", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^488 - 17", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e489m21.json b/src/Specific/CurveParameters/solinas64_2e489m21.json
new file mode 100644
index 000000000..4c34c526e
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e489m21.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "18", "base": "27", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^489 - 21", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e495m31.json b/src/Specific/CurveParameters/solinas64_2e495m31.json
new file mode 100644
index 000000000..8b6264c9a
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e495m31.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "49", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^495 - 31", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e511m187.json b/src/Specific/CurveParameters/solinas64_2e511m187.json
new file mode 100644
index 000000000..4d88eb6de
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e511m187.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "14", "base": "36", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^511 - 187", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e511m481.json b/src/Specific/CurveParameters/solinas64_2e511m481.json
new file mode 100644
index 000000000..4290aab44
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e511m481.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "14", "base": "36", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^511 - 481", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e512m569.json b/src/Specific/CurveParameters/solinas64_2e512m569.json
new file mode 100644
index 000000000..0119eccaf
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e512m569.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "16", "base": "32", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^512 - 569", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file
diff --git a/src/Specific/CurveParameters/solinas64_2e521m1.json b/src/Specific/CurveParameters/solinas64_2e521m1.json
new file mode 100644
index 000000000..552eee2e5
--- /dev/null
+++ b/src/Specific/CurveParameters/solinas64_2e521m1.json
@@ -0,0 +1 @@
+{"operations": ["femul", "fesquare", "freeze"], "sz": "10", "base": "52", "bitwidth": 64, "coef_div_modulus": "2", "modulus": "2^521 - 1 ", "carry_chains": "default", "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes"} \ No newline at end of file