aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--generate_parameters.py15
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e127m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e129m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e130m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e137m13.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e140m27.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e141m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e150m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e150m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e152m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e158m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e165m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e166m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e171m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e174m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e174m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e189m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e190m11.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e191m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e194m33.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e196m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e198m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e205m45x2e198m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e206m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e212m29.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e213m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e221m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e222m117.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e226m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e230m27.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e235m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e243m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e251m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e254m127x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e255m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e255m765.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e256m189.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e256m88x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e266m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e285m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e291m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e321m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e336m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e336m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e338m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e369m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e379m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e382m105.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e383m187.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e383m31.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e383m421.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e384m317.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e384m5x2e368m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e384m79x2e376m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e389m21.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e401m31.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e413m21.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e414m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e444m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e452m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e468m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e488m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e489m21.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e495m31.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e510m290x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e511m187.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e511m481.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e512m491x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e512m569.json3
-rw-r--r--src/Specific/CurveParameters/montgomery32_2e521m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e127m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e129m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e130m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e137m13.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e140m27.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e141m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e150m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e150m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e152m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e158m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e165m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e166m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e171m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e174m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e174m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e189m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e190m11.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e191m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e194m33.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e196m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e198m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e205m45x2e198m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e206m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e212m29.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e213m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e221m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e222m117.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e226m5.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e230m27.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e235m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e243m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e251m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e254m127x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e255m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e255m765.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e256m189.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e256m88x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e266m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e285m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e291m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e321m9.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e336m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e336m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e338m15.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e369m25.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e379m19.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e382m105.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e383m187.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e383m31.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e383m421.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e384m317.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e384m5x2e368m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e384m79x2e376m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e389m21.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e401m31.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e413m21.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e414m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e444m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e452m3.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e468m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e488m17.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e489m21.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e495m31.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e510m290x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e511m187.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e511m481.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e512m491x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e512m569.json3
-rw-r--r--src/Specific/CurveParameters/montgomery64_2e521m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e127m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e129m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e130m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e137m13.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e140m27.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e141m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e150m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e150m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e152m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e158m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e165m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e166m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e171m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e174m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e174m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e189m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e190m11.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e191m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e192m2e64m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e194m33.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e196m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e198m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e206m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e212m29.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e213m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e216m2e108m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e221m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e222m117.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e224m2e96p1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e226m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e230m27.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e235m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e243m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e251m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e254m127x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e255m765.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m189.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m2e32m977.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e256m88x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e266m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e285m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e291m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e321m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e322m2e161m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e336m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e336m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e338m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e369m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e379m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e382m105.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e384m317.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e384m5x2e368m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e384m79x2e376m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e401m31.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e414m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e416m2e208m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e444m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e448m2e224m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e450m2e225m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e452m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e468m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e480m2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e488m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e489m21.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e495m31.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e510m290x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e511m187.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e511m481.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e512m491x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e512m569.json3
-rw-r--r--src/Specific/CurveParameters/solinas32_2e521m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e127m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e129m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e130m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e137m13.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e140m27.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e141m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e150m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e150m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e152m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e158m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e165m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e166m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e171m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e174m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e174m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e189m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e190m11.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e191m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e192m2e64m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e194m33.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e196m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e198m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e206m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e212m29.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e213m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e216m2e108m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e221m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e222m117.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e224m2e96p1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e226m5.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e230m27.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e235m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e243m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e251m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e254m127x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e255m765.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m189.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m2e32m977.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e256m88x2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e266m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e285m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e291m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e321m9.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e322m2e161m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e336m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e336m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e338m15.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e369m25.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e379m19.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e382m105.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m317.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m5x2e368m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e384m79x2e376m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e401m31.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e413m21.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e414m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e416m2e208m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e444m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e448m2e224m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e450m2e225m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e452m3.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e468m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e480m2e240m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e488m17.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e489m21.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e495m31.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e510m290x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e511m187.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e511m481.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e512m491x2e496m1.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e512m569.json3
-rw-r--r--src/Specific/CurveParameters/solinas64_2e521m1.json3
-rw-r--r--src/Specific/Framework/bench/gmpxx.cpp17
-rwxr-xr-xsrc/Specific/Framework/make_curve.py4
-rwxr-xr-xsrc/Specific/montgomery32_2e127m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e127m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e129m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e129m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e130m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e130m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e137m13/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e137m13/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e140m27/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e140m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e141m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e141m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e150m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e150m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e150m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e150m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e152m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e152m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e158m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e158m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e165m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e165m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e166m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e166m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e171m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e171m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e174m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e174m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e174m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e174m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e189m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e189m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e190m11/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e190m11/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e191m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e191m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e192m2e64m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e192m2e64m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e194m33/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e194m33/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e196m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e196m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e198m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e198m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e205m45x2e198m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e205m45x2e198m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e206m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e206m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e212m29/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e212m29/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e213m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e213m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e216m2e108m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e216m2e108m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e221m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e221m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e222m117/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e222m117/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e224m2e96p1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e224m2e96p1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e226m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e226m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e230m27/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e230m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e235m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e235m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e243m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e243m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e251m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e251m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e254m127x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e254m127x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e255m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e255m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e255m2e4m2e1m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e255m2e4m2e1m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e255m765/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e255m765/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e256m189/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e256m189/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e256m2e32m977/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e256m2e32m977/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e256m88x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e256m88x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e266m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e266m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e285m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e285m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e291m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e291m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e321m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e321m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e322m2e161m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e322m2e161m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e336m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e336m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e336m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e336m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e338m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e338m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e369m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e369m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e379m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e379m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e382m105/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e382m105/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e383m187/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e383m187/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e383m31/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e383m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e383m421/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e383m421/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e384m317/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e384m317/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e384m5x2e368m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e384m5x2e368m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e384m79x2e376m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e384m79x2e376m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e389m21/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e389m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e401m31/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e401m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e413m21/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e413m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e414m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e414m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e416m2e208m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e416m2e208m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e444m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e444m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e448m2e224m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e448m2e224m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e450m2e225m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e450m2e225m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e452m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e452m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e468m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e468m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e480m2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e480m2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e488m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e488m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e489m21/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e489m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e495m31/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e495m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e510m290x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e510m290x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e511m187/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e511m187/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e511m481/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e511m481/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e512m491x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e512m491x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e512m569/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e512m569/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery32_2e521m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery32_2e521m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e127m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e127m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e129m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e129m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e130m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e130m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e137m13/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e137m13/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e140m27/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e140m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e141m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e141m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e150m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e150m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e150m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e150m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e152m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e152m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e158m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e158m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e165m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e165m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e166m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e166m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e171m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e171m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e174m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e174m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e174m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e174m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e189m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e189m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e190m11/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e190m11/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e191m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e191m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e192m2e64m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e192m2e64m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e194m33/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e194m33/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e196m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e196m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e198m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e198m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e205m45x2e198m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e205m45x2e198m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e206m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e206m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e212m29/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e212m29/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e213m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e213m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e216m2e108m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e216m2e108m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e221m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e221m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e222m117/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e222m117/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e224m2e96p1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e224m2e96p1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e226m5/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e226m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e230m27/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e230m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e235m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e235m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e243m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e243m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e251m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e251m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e254m127x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e254m127x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e255m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e255m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e255m2e4m2e1m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e255m2e4m2e1m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e255m765/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e255m765/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e256m189/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e256m189/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e256m2e32m977/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e256m2e32m977/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e256m88x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e256m88x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e266m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e266m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e285m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e285m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e291m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e291m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e321m9/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e321m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e322m2e161m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e322m2e161m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e336m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e336m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e336m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e336m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e338m15/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e338m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e369m25/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e369m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e379m19/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e379m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e382m105/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e382m105/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e383m187/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e383m187/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e383m31/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e383m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e383m421/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e383m421/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e384m317/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e384m317/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e384m5x2e368m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e384m5x2e368m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e384m79x2e376m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e384m79x2e376m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e389m21/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e389m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e401m31/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e401m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e413m21/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e413m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e414m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e414m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e416m2e208m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e416m2e208m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e444m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e444m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e448m2e224m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e448m2e224m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e450m2e225m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e450m2e225m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e452m3/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e452m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e468m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e468m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e480m2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e480m2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e488m17/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e488m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e489m21/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e489m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e495m31/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e495m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e510m290x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e510m290x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e511m187/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e511m187/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e511m481/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e511m481/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e512m491x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e512m491x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e512m569/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e512m569/compilerxx.sh4
-rwxr-xr-xsrc/Specific/montgomery64_2e521m1/compiler.sh2
-rwxr-xr-xsrc/Specific/montgomery64_2e521m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e127m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e127m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e129m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e129m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e130m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e130m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e137m13/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e137m13/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e140m27/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e140m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e141m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e141m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e150m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e150m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e150m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e150m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e152m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e152m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e158m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e158m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e165m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e165m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e166m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e166m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e171m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e171m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e174m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e174m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e174m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e174m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e189m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e189m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e190m11/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e190m11/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e191m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e191m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e192m2e64m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e192m2e64m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e194m33/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e194m33/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e196m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e196m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e198m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e198m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e205m45x2e198m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e205m45x2e198m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e206m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e206m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e212m29/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e212m29/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e213m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e213m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e216m2e108m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e216m2e108m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e221m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e221m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e222m117/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e222m117/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e224m2e96p1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e224m2e96p1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e226m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e226m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e230m27/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e230m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e235m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e235m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e243m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e243m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e251m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e251m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e254m127x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e254m127x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e255m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e255m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e255m2e4m2e1m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e255m2e4m2e1m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e255m765/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e255m765/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e256m189/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e256m189/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e256m2e32m977/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e256m2e32m977/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e256m88x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e256m88x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e266m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e266m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e285m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e285m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e291m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e291m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e321m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e321m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e322m2e161m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e322m2e161m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e336m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e336m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e336m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e336m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e338m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e338m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e369m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e369m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e379m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e379m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e382m105/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e382m105/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e384m2e128m2e96p2e32m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e384m2e128m2e96p2e32m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e384m317/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e384m317/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e384m5x2e368m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e384m5x2e368m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e384m79x2e376m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e384m79x2e376m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e401m31/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e401m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e414m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e414m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e416m2e208m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e416m2e208m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e444m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e444m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e448m2e224m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e448m2e224m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e450m2e225m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e450m2e225m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e452m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e452m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e468m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e468m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e480m2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e480m2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e488m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e488m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e489m21/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e489m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e495m31/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e495m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e510m290x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e510m290x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e511m187/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e511m187/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e511m481/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e511m481/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e512m491x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e512m491x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e512m569/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e512m569/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas32_2e521m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e521m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e127m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e127m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e129m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e129m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e130m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e130m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e137m13/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e137m13/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e140m27/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e140m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e141m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e141m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e150m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e150m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e150m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e150m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e152m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e152m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e158m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e158m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e165m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e165m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e166m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e166m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e171m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e171m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e174m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e174m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e174m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e174m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e189m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e189m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e190m11/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e190m11/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e191m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e191m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e192m2e64m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e192m2e64m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e194m33/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e194m33/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e196m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e196m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e198m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e198m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e205m45x2e198m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e205m45x2e198m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e206m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e206m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e212m29/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e212m29/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e213m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e213m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e216m2e108m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e216m2e108m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e221m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e221m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e222m117/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e222m117/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e224m2e96p1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e224m2e96p1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e226m5/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e226m5/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e230m27/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e230m27/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e235m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e235m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e243m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e243m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e251m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e251m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e254m127x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e254m127x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e255m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e255m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e255m2e4m2e1m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e255m2e4m2e1m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e255m765/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e255m765/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e256m189/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e256m189/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e256m2e224p2e192p2e96m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e256m2e224p2e192p2e96m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e256m2e32m977/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e256m2e32m977/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e256m88x2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e256m88x2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e266m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e266m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e285m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e285m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e291m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e291m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e321m9/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e321m9/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e322m2e161m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e322m2e161m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e336m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e336m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e336m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e336m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e338m15/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e338m15/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e369m25/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e369m25/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e379m19/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e379m19/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e382m105/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e382m105/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e384m2e128m2e96p2e32m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e384m2e128m2e96p2e32m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e384m317/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e384m317/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e384m5x2e368m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e384m5x2e368m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e384m79x2e376m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e384m79x2e376m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e401m31/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e401m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e413m21/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e413m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e414m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e414m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e416m2e208m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e416m2e208m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e444m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e444m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e448m2e224m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e448m2e224m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e450m2e225m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e450m2e225m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e452m3/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e452m3/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e468m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e468m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e480m2e240m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e480m2e240m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e488m17/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e488m17/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e489m21/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e489m21/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e495m31/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e495m31/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e510m290x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e510m290x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e511m187/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e511m187/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e511m481/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e511m481/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e512m491x2e496m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e512m491x2e496m1/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e512m569/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e512m569/compilerxx.sh4
-rwxr-xr-xsrc/Specific/solinas64_2e521m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas64_2e521m1/compilerxx.sh4
948 files changed, 2234 insertions, 637 deletions
diff --git a/generate_parameters.py b/generate_parameters.py
index fa3112d8c..1971834a9 100644
--- a/generate_parameters.py
+++ b/generate_parameters.py
@@ -66,13 +66,15 @@ EXAMPLES (handwritten):
'''
-import math,json,sys,os,traceback
+import math,json,sys,os,traceback,re
from fractions import Fraction
# 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"
+COMPILERXX_MONT = "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -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"
+COMPILERXX_SOLI = "g++ -march=native -mtune=native -std=gnu++11 -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')
@@ -135,6 +137,11 @@ def sanity_check(p):
raise UnexpectedPrimeException("Parsed prime %s has unexpected format" %p)
+def get_extra_compiler_params(q, base):
+ q_mpz = repr(re.sub(r'2(\s*)\^(\s*)([0-9]+)', r'(1_mpz\1<<\2\3)', str(q)))
+ modulus_bytes_val = repr(str(base))
+ return ' -Dq_mpz=%(q_mpz)s -Dmodulus_bytes_val=%(modulus_bytes_val)s' % locals()
+
def num_bits(p):
return p[0][1]
@@ -148,7 +155,8 @@ def get_params_montgomery(prime, bitwidth):
"sz" : str(sz),
"montgomery" : True,
"operations" : ["fenz", "feadd", "femul", "feopp", "fesub"],
- "compiler" : COMPILER_MONT
+ "compiler" : COMPILER_MONT + get_extra_compiler_params(prime, bitwidth),
+ "compilerxx" : COMPILERXX_MONT + get_extra_compiler_params(prime, bitwidth)
}
# given a parsed prime, pick a number of (unsaturated) limbs
@@ -224,7 +232,8 @@ def get_params_solinas(prime, bitwidth):
"carry_chains" : carry_chains,
"coef_div_modulus" : str(2),
"operations" : ["femul", "fesquare", "freeze"],
- "compiler" : COMPILER_SOLI
+ "compiler" : COMPILER_SOLI + get_extra_compiler_params(prime, base),
+ "compilerxx" : COMPILERXX_SOLI + get_extra_compiler_params(prime, base)
}
if is_goldilocks(p):
output["goldilocks"] = True
diff --git a/src/Specific/CurveParameters/montgomery32_2e127m1.json b/src/Specific/CurveParameters/montgomery32_2e127m1.json
index a5ecc7dda..715ea2c8e 100644
--- a/src/Specific/CurveParameters/montgomery32_2e127m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e127m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='32'",
"modulus": "2^127 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e129m25.json b/src/Specific/CurveParameters/montgomery32_2e129m25.json
index 0a9d6a8c5..98629d300 100644
--- a/src/Specific/CurveParameters/montgomery32_2e129m25.json
+++ b/src/Specific/CurveParameters/montgomery32_2e129m25.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='32'",
"modulus": "2^129 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e130m5.json b/src/Specific/CurveParameters/montgomery32_2e130m5.json
index 77f570c69..28fec4f6c 100644
--- a/src/Specific/CurveParameters/montgomery32_2e130m5.json
+++ b/src/Specific/CurveParameters/montgomery32_2e130m5.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='32'",
"modulus": "2^130 - 5 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e137m13.json b/src/Specific/CurveParameters/montgomery32_2e137m13.json
index 5d18bb2c7..da4940044 100644
--- a/src/Specific/CurveParameters/montgomery32_2e137m13.json
+++ b/src/Specific/CurveParameters/montgomery32_2e137m13.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='32'",
"modulus": "2^137 - 13",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e140m27.json b/src/Specific/CurveParameters/montgomery32_2e140m27.json
index f92abe792..6bdfcc5fe 100644
--- a/src/Specific/CurveParameters/montgomery32_2e140m27.json
+++ b/src/Specific/CurveParameters/montgomery32_2e140m27.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='32'",
"modulus": "2^140 - 27",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e141m9.json b/src/Specific/CurveParameters/montgomery32_2e141m9.json
index 127d19945..c35db30bb 100644
--- a/src/Specific/CurveParameters/montgomery32_2e141m9.json
+++ b/src/Specific/CurveParameters/montgomery32_2e141m9.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='32'",
"modulus": "2^141 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e150m3.json b/src/Specific/CurveParameters/montgomery32_2e150m3.json
index 14f1006ba..717315df3 100644
--- a/src/Specific/CurveParameters/montgomery32_2e150m3.json
+++ b/src/Specific/CurveParameters/montgomery32_2e150m3.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='32'",
"modulus": "2^150 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e150m5.json b/src/Specific/CurveParameters/montgomery32_2e150m5.json
index 1f07fefb5..a810b09d9 100644
--- a/src/Specific/CurveParameters/montgomery32_2e150m5.json
+++ b/src/Specific/CurveParameters/montgomery32_2e150m5.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='32'",
"modulus": "2^150 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e152m17.json b/src/Specific/CurveParameters/montgomery32_2e152m17.json
index c279b8504..0d7785821 100644
--- a/src/Specific/CurveParameters/montgomery32_2e152m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e152m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^152 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e158m15.json b/src/Specific/CurveParameters/montgomery32_2e158m15.json
index 1beba078c..ca98eff99 100644
--- a/src/Specific/CurveParameters/montgomery32_2e158m15.json
+++ b/src/Specific/CurveParameters/montgomery32_2e158m15.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='32'",
"modulus": "2^158 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e165m25.json b/src/Specific/CurveParameters/montgomery32_2e165m25.json
index d26a2a303..b538f71db 100644
--- a/src/Specific/CurveParameters/montgomery32_2e165m25.json
+++ b/src/Specific/CurveParameters/montgomery32_2e165m25.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='32'",
"modulus": "2^165 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e166m5.json b/src/Specific/CurveParameters/montgomery32_2e166m5.json
index 929892ab2..51fb6eb05 100644
--- a/src/Specific/CurveParameters/montgomery32_2e166m5.json
+++ b/src/Specific/CurveParameters/montgomery32_2e166m5.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='32'",
"modulus": "2^166 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e171m19.json b/src/Specific/CurveParameters/montgomery32_2e171m19.json
index b06c10e08..2f72632a8 100644
--- a/src/Specific/CurveParameters/montgomery32_2e171m19.json
+++ b/src/Specific/CurveParameters/montgomery32_2e171m19.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='32'",
"modulus": "2^171 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e174m17.json b/src/Specific/CurveParameters/montgomery32_2e174m17.json
index 908710898..863974821 100644
--- a/src/Specific/CurveParameters/montgomery32_2e174m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e174m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^174 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e174m3.json b/src/Specific/CurveParameters/montgomery32_2e174m3.json
index 636e3f26d..e8720d6a3 100644
--- a/src/Specific/CurveParameters/montgomery32_2e174m3.json
+++ b/src/Specific/CurveParameters/montgomery32_2e174m3.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='32'",
"modulus": "2^174 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e189m25.json b/src/Specific/CurveParameters/montgomery32_2e189m25.json
index 691157c90..7dd2933e6 100644
--- a/src/Specific/CurveParameters/montgomery32_2e189m25.json
+++ b/src/Specific/CurveParameters/montgomery32_2e189m25.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='32'",
"modulus": "2^189 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e190m11.json b/src/Specific/CurveParameters/montgomery32_2e190m11.json
index 988a33d2a..86640e4df 100644
--- a/src/Specific/CurveParameters/montgomery32_2e190m11.json
+++ b/src/Specific/CurveParameters/montgomery32_2e190m11.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='32'",
"modulus": "2^190 - 11",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e191m19.json b/src/Specific/CurveParameters/montgomery32_2e191m19.json
index 3535ebb8a..02d9df5a6 100644
--- a/src/Specific/CurveParameters/montgomery32_2e191m19.json
+++ b/src/Specific/CurveParameters/montgomery32_2e191m19.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='32'",
"modulus": "2^191 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json b/src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json
index de11110cc..783eb5f3e 100644
--- a/src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e192m2e64m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^192 - 2^64 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e194m33.json b/src/Specific/CurveParameters/montgomery32_2e194m33.json
index 7d150a007..e9b52c06a 100644
--- a/src/Specific/CurveParameters/montgomery32_2e194m33.json
+++ b/src/Specific/CurveParameters/montgomery32_2e194m33.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='32'",
"modulus": "2^194 - 33",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e196m15.json b/src/Specific/CurveParameters/montgomery32_2e196m15.json
index 00447d22c..5223faed2 100644
--- a/src/Specific/CurveParameters/montgomery32_2e196m15.json
+++ b/src/Specific/CurveParameters/montgomery32_2e196m15.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='32'",
"modulus": "2^196 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e198m17.json b/src/Specific/CurveParameters/montgomery32_2e198m17.json
index 93f2504f1..695c71cb2 100644
--- a/src/Specific/CurveParameters/montgomery32_2e198m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e198m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^198 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e205m45x2e198m1.json b/src/Specific/CurveParameters/montgomery32_2e205m45x2e198m1.json
index eb62a1f94..dd786d887 100644
--- a/src/Specific/CurveParameters/montgomery32_2e205m45x2e198m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e205m45x2e198m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^205 - 45*2^198 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e206m5.json b/src/Specific/CurveParameters/montgomery32_2e206m5.json
index 7d1613cf8..5a5479fbe 100644
--- a/src/Specific/CurveParameters/montgomery32_2e206m5.json
+++ b/src/Specific/CurveParameters/montgomery32_2e206m5.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='32'",
"modulus": "2^206 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e212m29.json b/src/Specific/CurveParameters/montgomery32_2e212m29.json
index 296caafe8..02f82dcb5 100644
--- a/src/Specific/CurveParameters/montgomery32_2e212m29.json
+++ b/src/Specific/CurveParameters/montgomery32_2e212m29.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='32'",
"modulus": "2^212 - 29",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e213m3.json b/src/Specific/CurveParameters/montgomery32_2e213m3.json
index db1701ef6..3c11de11c 100644
--- a/src/Specific/CurveParameters/montgomery32_2e213m3.json
+++ b/src/Specific/CurveParameters/montgomery32_2e213m3.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='32'",
"modulus": "2^213 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json b/src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json
index 44aabc047..d00b33042 100644
--- a/src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e216m2e108m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^216 - 2^108 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e221m3.json b/src/Specific/CurveParameters/montgomery32_2e221m3.json
index df48ca44e..3b3ad80c6 100644
--- a/src/Specific/CurveParameters/montgomery32_2e221m3.json
+++ b/src/Specific/CurveParameters/montgomery32_2e221m3.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='32'",
"modulus": "2^221 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e222m117.json b/src/Specific/CurveParameters/montgomery32_2e222m117.json
index 21ef0336b..3916e0235 100644
--- a/src/Specific/CurveParameters/montgomery32_2e222m117.json
+++ b/src/Specific/CurveParameters/montgomery32_2e222m117.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='32'",
"modulus": "2^222 - 117",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json b/src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json
index 16a3c8795..49bd8037e 100644
--- a/src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e224m2e96p1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='32'",
"modulus": "2^224 - 2^96 + 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e226m5.json b/src/Specific/CurveParameters/montgomery32_2e226m5.json
index 520c2cabb..b74168b71 100644
--- a/src/Specific/CurveParameters/montgomery32_2e226m5.json
+++ b/src/Specific/CurveParameters/montgomery32_2e226m5.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='32'",
"modulus": "2^226 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e230m27.json b/src/Specific/CurveParameters/montgomery32_2e230m27.json
index c0e2e3ffc..9647bcf14 100644
--- a/src/Specific/CurveParameters/montgomery32_2e230m27.json
+++ b/src/Specific/CurveParameters/montgomery32_2e230m27.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='32'",
"modulus": "2^230 - 27",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e235m15.json b/src/Specific/CurveParameters/montgomery32_2e235m15.json
index d1ac065ed..50e4faf27 100644
--- a/src/Specific/CurveParameters/montgomery32_2e235m15.json
+++ b/src/Specific/CurveParameters/montgomery32_2e235m15.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='32'",
"modulus": "2^235 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e243m9.json b/src/Specific/CurveParameters/montgomery32_2e243m9.json
index 7235d6146..db536b5a9 100644
--- a/src/Specific/CurveParameters/montgomery32_2e243m9.json
+++ b/src/Specific/CurveParameters/montgomery32_2e243m9.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='32'",
"modulus": "2^243 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e251m9.json b/src/Specific/CurveParameters/montgomery32_2e251m9.json
index f92b0abf7..1e6d7b47c 100644
--- a/src/Specific/CurveParameters/montgomery32_2e251m9.json
+++ b/src/Specific/CurveParameters/montgomery32_2e251m9.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='32'",
"modulus": "2^251 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e254m127x2e240m1.json b/src/Specific/CurveParameters/montgomery32_2e254m127x2e240m1.json
index 98561c513..2659cc809 100644
--- a/src/Specific/CurveParameters/montgomery32_2e254m127x2e240m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e254m127x2e240m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^254 - 127*2^240 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e255m19.json b/src/Specific/CurveParameters/montgomery32_2e255m19.json
index f75d04895..e7b1d96fe 100644
--- a/src/Specific/CurveParameters/montgomery32_2e255m19.json
+++ b/src/Specific/CurveParameters/montgomery32_2e255m19.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='32'",
"modulus": "2^255 - 19 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json
index 54780a736..0d4bba0fc 100644
--- a/src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e255m2e4m2e1m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^255 - 2^4 - 2^1 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e255m765.json b/src/Specific/CurveParameters/montgomery32_2e255m765.json
index 123e84ad6..af4028c60 100644
--- a/src/Specific/CurveParameters/montgomery32_2e255m765.json
+++ b/src/Specific/CurveParameters/montgomery32_2e255m765.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='32'",
"modulus": "2^255 - 765",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e256m189.json b/src/Specific/CurveParameters/montgomery32_2e256m189.json
index e594abb66..e18b5bfb2 100644
--- a/src/Specific/CurveParameters/montgomery32_2e256m189.json
+++ b/src/Specific/CurveParameters/montgomery32_2e256m189.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='32'",
"modulus": "2^256 - 189",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json
index ac7fd5c90..e8677432e 100644
--- a/src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e256m2e224p2e192p2e96m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='32'",
"modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json b/src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json
index 5ab51f44d..8a1058675 100644
--- a/src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json
+++ b/src/Specific/CurveParameters/montgomery32_2e256m2e32m977.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='32'",
"modulus": "2^256 - 2^32 - 977 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e256m88x2e240m1.json b/src/Specific/CurveParameters/montgomery32_2e256m88x2e240m1.json
index e20c5190b..60256ab53 100644
--- a/src/Specific/CurveParameters/montgomery32_2e256m88x2e240m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e256m88x2e240m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^256 - 88*2^240 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e266m3.json b/src/Specific/CurveParameters/montgomery32_2e266m3.json
index 470a6a3fb..83da262b7 100644
--- a/src/Specific/CurveParameters/montgomery32_2e266m3.json
+++ b/src/Specific/CurveParameters/montgomery32_2e266m3.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='32'",
"modulus": "2^266 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e285m9.json b/src/Specific/CurveParameters/montgomery32_2e285m9.json
index 51d6a1e56..545e888f7 100644
--- a/src/Specific/CurveParameters/montgomery32_2e285m9.json
+++ b/src/Specific/CurveParameters/montgomery32_2e285m9.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='32'",
"modulus": "2^285 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e291m19.json b/src/Specific/CurveParameters/montgomery32_2e291m19.json
index 572bc37f7..d39f99aee 100644
--- a/src/Specific/CurveParameters/montgomery32_2e291m19.json
+++ b/src/Specific/CurveParameters/montgomery32_2e291m19.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='32'",
"modulus": "2^291 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e321m9.json b/src/Specific/CurveParameters/montgomery32_2e321m9.json
index 787f5329b..3d3e7654c 100644
--- a/src/Specific/CurveParameters/montgomery32_2e321m9.json
+++ b/src/Specific/CurveParameters/montgomery32_2e321m9.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='32'",
"modulus": "2^321 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json b/src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json
index 212eb6314..c11c24301 100644
--- a/src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e322m2e161m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^322 - 2^161 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e336m17.json b/src/Specific/CurveParameters/montgomery32_2e336m17.json
index aaa4d5a77..4467d03be 100644
--- a/src/Specific/CurveParameters/montgomery32_2e336m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e336m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^336 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e336m3.json b/src/Specific/CurveParameters/montgomery32_2e336m3.json
index f3e360151..e6e0daf62 100644
--- a/src/Specific/CurveParameters/montgomery32_2e336m3.json
+++ b/src/Specific/CurveParameters/montgomery32_2e336m3.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='32'",
"modulus": "2^336 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e338m15.json b/src/Specific/CurveParameters/montgomery32_2e338m15.json
index 21906608e..b2d44f911 100644
--- a/src/Specific/CurveParameters/montgomery32_2e338m15.json
+++ b/src/Specific/CurveParameters/montgomery32_2e338m15.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='32'",
"modulus": "2^338 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e369m25.json b/src/Specific/CurveParameters/montgomery32_2e369m25.json
index cf574f400..4732c9862 100644
--- a/src/Specific/CurveParameters/montgomery32_2e369m25.json
+++ b/src/Specific/CurveParameters/montgomery32_2e369m25.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='32'",
"modulus": "2^369 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e379m19.json b/src/Specific/CurveParameters/montgomery32_2e379m19.json
index d99c1dade..1d9192879 100644
--- a/src/Specific/CurveParameters/montgomery32_2e379m19.json
+++ b/src/Specific/CurveParameters/montgomery32_2e379m19.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='32'",
"modulus": "2^379 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e382m105.json b/src/Specific/CurveParameters/montgomery32_2e382m105.json
index 8d696698f..77ce00e35 100644
--- a/src/Specific/CurveParameters/montgomery32_2e382m105.json
+++ b/src/Specific/CurveParameters/montgomery32_2e382m105.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='32'",
"modulus": "2^382 - 105",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e383m187.json b/src/Specific/CurveParameters/montgomery32_2e383m187.json
index ffb44ee8c..3b8fe98b5 100644
--- a/src/Specific/CurveParameters/montgomery32_2e383m187.json
+++ b/src/Specific/CurveParameters/montgomery32_2e383m187.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='32'",
"modulus": "2^383 - 187",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e383m31.json b/src/Specific/CurveParameters/montgomery32_2e383m31.json
index 487e1c1e9..a0a48c27c 100644
--- a/src/Specific/CurveParameters/montgomery32_2e383m31.json
+++ b/src/Specific/CurveParameters/montgomery32_2e383m31.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='32'",
"modulus": "2^383 - 31",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e383m421.json b/src/Specific/CurveParameters/montgomery32_2e383m421.json
index 9c53f5458..ba066f356 100644
--- a/src/Specific/CurveParameters/montgomery32_2e383m421.json
+++ b/src/Specific/CurveParameters/montgomery32_2e383m421.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='32'",
"modulus": "2^383 - 421",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json
index a6db3e84d..2f561bbea 100644
--- a/src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e384m2e128m2e96p2e32m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='32'",
"modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e384m317.json b/src/Specific/CurveParameters/montgomery32_2e384m317.json
index df9f93de2..f52766b8b 100644
--- a/src/Specific/CurveParameters/montgomery32_2e384m317.json
+++ b/src/Specific/CurveParameters/montgomery32_2e384m317.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='32'",
"modulus": "2^384 - 317",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e384m5x2e368m1.json b/src/Specific/CurveParameters/montgomery32_2e384m5x2e368m1.json
index 7259a5dc7..3d9db33dd 100644
--- a/src/Specific/CurveParameters/montgomery32_2e384m5x2e368m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e384m5x2e368m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^384 - 5*2^368 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e384m79x2e376m1.json b/src/Specific/CurveParameters/montgomery32_2e384m79x2e376m1.json
index 5848cd630..90421ecd0 100644
--- a/src/Specific/CurveParameters/montgomery32_2e384m79x2e376m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e384m79x2e376m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^384 - 79*2^376 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e389m21.json b/src/Specific/CurveParameters/montgomery32_2e389m21.json
index 1c4afe659..7b67b78e1 100644
--- a/src/Specific/CurveParameters/montgomery32_2e389m21.json
+++ b/src/Specific/CurveParameters/montgomery32_2e389m21.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='32'",
"modulus": "2^389 - 21",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e401m31.json b/src/Specific/CurveParameters/montgomery32_2e401m31.json
index 5b70e3250..e16e4c586 100644
--- a/src/Specific/CurveParameters/montgomery32_2e401m31.json
+++ b/src/Specific/CurveParameters/montgomery32_2e401m31.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='32'",
"modulus": "2^401 - 31",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e413m21.json b/src/Specific/CurveParameters/montgomery32_2e413m21.json
index 449f82517..d308fe781 100644
--- a/src/Specific/CurveParameters/montgomery32_2e413m21.json
+++ b/src/Specific/CurveParameters/montgomery32_2e413m21.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='32'",
"modulus": "2^413 - 21",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e414m17.json b/src/Specific/CurveParameters/montgomery32_2e414m17.json
index 4822e19a9..7c1aed92b 100644
--- a/src/Specific/CurveParameters/montgomery32_2e414m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e414m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^414 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json b/src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json
index 17c1e6282..cab69f496 100644
--- a/src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e416m2e208m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^416 - 2^208 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e444m17.json b/src/Specific/CurveParameters/montgomery32_2e444m17.json
index 6a525161f..d41b6d28a 100644
--- a/src/Specific/CurveParameters/montgomery32_2e444m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e444m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^444 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json b/src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json
index 2770f8ffd..784f5bdd9 100644
--- a/src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e448m2e224m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='32'",
"modulus": "2^448 - 2^224 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json b/src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json
index 6ea797027..1493ef94e 100644
--- a/src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e450m2e225m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^450 - 2^225 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e452m3.json b/src/Specific/CurveParameters/montgomery32_2e452m3.json
index 842f01daa..af25c357a 100644
--- a/src/Specific/CurveParameters/montgomery32_2e452m3.json
+++ b/src/Specific/CurveParameters/montgomery32_2e452m3.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='32'",
"modulus": "2^452 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e468m17.json b/src/Specific/CurveParameters/montgomery32_2e468m17.json
index 9604563bf..b974025ff 100644
--- a/src/Specific/CurveParameters/montgomery32_2e468m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e468m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^468 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json b/src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json
index 0e38f2249..ec6d03150 100644
--- a/src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e480m2e240m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='32'",
"modulus": "2^480 - 2^240 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e488m17.json b/src/Specific/CurveParameters/montgomery32_2e488m17.json
index 3029c3a45..223636b92 100644
--- a/src/Specific/CurveParameters/montgomery32_2e488m17.json
+++ b/src/Specific/CurveParameters/montgomery32_2e488m17.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='32'",
"modulus": "2^488 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e489m21.json b/src/Specific/CurveParameters/montgomery32_2e489m21.json
index a496ded99..f95a6fae6 100644
--- a/src/Specific/CurveParameters/montgomery32_2e489m21.json
+++ b/src/Specific/CurveParameters/montgomery32_2e489m21.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='32'",
"modulus": "2^489 - 21",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e495m31.json b/src/Specific/CurveParameters/montgomery32_2e495m31.json
index 4a2cb741c..afb21c264 100644
--- a/src/Specific/CurveParameters/montgomery32_2e495m31.json
+++ b/src/Specific/CurveParameters/montgomery32_2e495m31.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='32'",
"modulus": "2^495 - 31",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e510m290x2e496m1.json b/src/Specific/CurveParameters/montgomery32_2e510m290x2e496m1.json
index 8f71120ae..b552b5a5a 100644
--- a/src/Specific/CurveParameters/montgomery32_2e510m290x2e496m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e510m290x2e496m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^510 - 290*2^496 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e511m187.json b/src/Specific/CurveParameters/montgomery32_2e511m187.json
index f8a03fe26..5e72ad29c 100644
--- a/src/Specific/CurveParameters/montgomery32_2e511m187.json
+++ b/src/Specific/CurveParameters/montgomery32_2e511m187.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='32'",
"modulus": "2^511 - 187",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e511m481.json b/src/Specific/CurveParameters/montgomery32_2e511m481.json
index f1b552a8f..da48b8925 100644
--- a/src/Specific/CurveParameters/montgomery32_2e511m481.json
+++ b/src/Specific/CurveParameters/montgomery32_2e511m481.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='32'",
"modulus": "2^511 - 481",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e512m491x2e496m1.json b/src/Specific/CurveParameters/montgomery32_2e512m491x2e496m1.json
index 37948b090..a7a9e6ca7 100644
--- a/src/Specific/CurveParameters/montgomery32_2e512m491x2e496m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e512m491x2e496m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32'",
"modulus": "2^512 - 491*2^496 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e512m569.json b/src/Specific/CurveParameters/montgomery32_2e512m569.json
index e1de2c135..3b4ccd7ea 100644
--- a/src/Specific/CurveParameters/montgomery32_2e512m569.json
+++ b/src/Specific/CurveParameters/montgomery32_2e512m569.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='32'",
"modulus": "2^512 - 569",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery32_2e521m1.json b/src/Specific/CurveParameters/montgomery32_2e521m1.json
index 122404c93..6342315a6 100644
--- a/src/Specific/CurveParameters/montgomery32_2e521m1.json
+++ b/src/Specific/CurveParameters/montgomery32_2e521m1.json
@@ -1,6 +1,7 @@
{
"base": "32",
- "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",
+ "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 -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='32'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='32'",
"modulus": "2^521 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e127m1.json b/src/Specific/CurveParameters/montgomery64_2e127m1.json
index 9a4d3efcc..128c807ed 100644
--- a/src/Specific/CurveParameters/montgomery64_2e127m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e127m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='64'",
"modulus": "2^127 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e129m25.json b/src/Specific/CurveParameters/montgomery64_2e129m25.json
index a2dd39dfd..499b2cbcb 100644
--- a/src/Specific/CurveParameters/montgomery64_2e129m25.json
+++ b/src/Specific/CurveParameters/montgomery64_2e129m25.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='64'",
"modulus": "2^129 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e130m5.json b/src/Specific/CurveParameters/montgomery64_2e130m5.json
index 58a1042dd..2f1c778fc 100644
--- a/src/Specific/CurveParameters/montgomery64_2e130m5.json
+++ b/src/Specific/CurveParameters/montgomery64_2e130m5.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='64'",
"modulus": "2^130 - 5 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e137m13.json b/src/Specific/CurveParameters/montgomery64_2e137m13.json
index f479d5173..77b9f21ee 100644
--- a/src/Specific/CurveParameters/montgomery64_2e137m13.json
+++ b/src/Specific/CurveParameters/montgomery64_2e137m13.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='64'",
"modulus": "2^137 - 13",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e140m27.json b/src/Specific/CurveParameters/montgomery64_2e140m27.json
index 7acbe1eb0..1fdbd1620 100644
--- a/src/Specific/CurveParameters/montgomery64_2e140m27.json
+++ b/src/Specific/CurveParameters/montgomery64_2e140m27.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='64'",
"modulus": "2^140 - 27",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e141m9.json b/src/Specific/CurveParameters/montgomery64_2e141m9.json
index 7cbd29be0..bbe9818fa 100644
--- a/src/Specific/CurveParameters/montgomery64_2e141m9.json
+++ b/src/Specific/CurveParameters/montgomery64_2e141m9.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='64'",
"modulus": "2^141 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e150m3.json b/src/Specific/CurveParameters/montgomery64_2e150m3.json
index 2713777b5..a8dc1b915 100644
--- a/src/Specific/CurveParameters/montgomery64_2e150m3.json
+++ b/src/Specific/CurveParameters/montgomery64_2e150m3.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='64'",
"modulus": "2^150 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e150m5.json b/src/Specific/CurveParameters/montgomery64_2e150m5.json
index ebf294c59..512d2df15 100644
--- a/src/Specific/CurveParameters/montgomery64_2e150m5.json
+++ b/src/Specific/CurveParameters/montgomery64_2e150m5.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='64'",
"modulus": "2^150 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e152m17.json b/src/Specific/CurveParameters/montgomery64_2e152m17.json
index d0fdca7f8..2b3c5c5a3 100644
--- a/src/Specific/CurveParameters/montgomery64_2e152m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e152m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^152 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e158m15.json b/src/Specific/CurveParameters/montgomery64_2e158m15.json
index a23e0509c..69777f88c 100644
--- a/src/Specific/CurveParameters/montgomery64_2e158m15.json
+++ b/src/Specific/CurveParameters/montgomery64_2e158m15.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='64'",
"modulus": "2^158 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e165m25.json b/src/Specific/CurveParameters/montgomery64_2e165m25.json
index d14c491f4..e8ef49fda 100644
--- a/src/Specific/CurveParameters/montgomery64_2e165m25.json
+++ b/src/Specific/CurveParameters/montgomery64_2e165m25.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='64'",
"modulus": "2^165 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e166m5.json b/src/Specific/CurveParameters/montgomery64_2e166m5.json
index 28fdccf62..0b378ba30 100644
--- a/src/Specific/CurveParameters/montgomery64_2e166m5.json
+++ b/src/Specific/CurveParameters/montgomery64_2e166m5.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='64'",
"modulus": "2^166 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e171m19.json b/src/Specific/CurveParameters/montgomery64_2e171m19.json
index 66162664d..e4bb61b1d 100644
--- a/src/Specific/CurveParameters/montgomery64_2e171m19.json
+++ b/src/Specific/CurveParameters/montgomery64_2e171m19.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='64'",
"modulus": "2^171 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e174m17.json b/src/Specific/CurveParameters/montgomery64_2e174m17.json
index b484beeea..574a1c2bb 100644
--- a/src/Specific/CurveParameters/montgomery64_2e174m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e174m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^174 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e174m3.json b/src/Specific/CurveParameters/montgomery64_2e174m3.json
index 79d0471a2..d20a21354 100644
--- a/src/Specific/CurveParameters/montgomery64_2e174m3.json
+++ b/src/Specific/CurveParameters/montgomery64_2e174m3.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='64'",
"modulus": "2^174 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e189m25.json b/src/Specific/CurveParameters/montgomery64_2e189m25.json
index d5f308ea2..7b7fb8682 100644
--- a/src/Specific/CurveParameters/montgomery64_2e189m25.json
+++ b/src/Specific/CurveParameters/montgomery64_2e189m25.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='64'",
"modulus": "2^189 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e190m11.json b/src/Specific/CurveParameters/montgomery64_2e190m11.json
index ad0f1d0c0..fef16e42c 100644
--- a/src/Specific/CurveParameters/montgomery64_2e190m11.json
+++ b/src/Specific/CurveParameters/montgomery64_2e190m11.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='64'",
"modulus": "2^190 - 11",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e191m19.json b/src/Specific/CurveParameters/montgomery64_2e191m19.json
index b795c52cd..3fd6de869 100644
--- a/src/Specific/CurveParameters/montgomery64_2e191m19.json
+++ b/src/Specific/CurveParameters/montgomery64_2e191m19.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='64'",
"modulus": "2^191 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json b/src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json
index 25598cbd2..3bc718896 100644
--- a/src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e192m2e64m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^192 - 2^64 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e194m33.json b/src/Specific/CurveParameters/montgomery64_2e194m33.json
index 59e71c24d..28b1c326d 100644
--- a/src/Specific/CurveParameters/montgomery64_2e194m33.json
+++ b/src/Specific/CurveParameters/montgomery64_2e194m33.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='64'",
"modulus": "2^194 - 33",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e196m15.json b/src/Specific/CurveParameters/montgomery64_2e196m15.json
index da158bb04..f1ce3c074 100644
--- a/src/Specific/CurveParameters/montgomery64_2e196m15.json
+++ b/src/Specific/CurveParameters/montgomery64_2e196m15.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='64'",
"modulus": "2^196 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e198m17.json b/src/Specific/CurveParameters/montgomery64_2e198m17.json
index ba5765de4..8f2fe9c58 100644
--- a/src/Specific/CurveParameters/montgomery64_2e198m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e198m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^198 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e205m45x2e198m1.json b/src/Specific/CurveParameters/montgomery64_2e205m45x2e198m1.json
index 8a4f865fb..755c4e558 100644
--- a/src/Specific/CurveParameters/montgomery64_2e205m45x2e198m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e205m45x2e198m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^205 - 45*2^198 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e206m5.json b/src/Specific/CurveParameters/montgomery64_2e206m5.json
index f6649226a..e5b1fd770 100644
--- a/src/Specific/CurveParameters/montgomery64_2e206m5.json
+++ b/src/Specific/CurveParameters/montgomery64_2e206m5.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='64'",
"modulus": "2^206 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e212m29.json b/src/Specific/CurveParameters/montgomery64_2e212m29.json
index 64b11fbb7..f6ef8964e 100644
--- a/src/Specific/CurveParameters/montgomery64_2e212m29.json
+++ b/src/Specific/CurveParameters/montgomery64_2e212m29.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='64'",
"modulus": "2^212 - 29",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e213m3.json b/src/Specific/CurveParameters/montgomery64_2e213m3.json
index f71954aae..d385b490d 100644
--- a/src/Specific/CurveParameters/montgomery64_2e213m3.json
+++ b/src/Specific/CurveParameters/montgomery64_2e213m3.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='64'",
"modulus": "2^213 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json b/src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json
index 08dc2dac8..986c77a20 100644
--- a/src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e216m2e108m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^216 - 2^108 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e221m3.json b/src/Specific/CurveParameters/montgomery64_2e221m3.json
index ad3f2ecaf..a6894b7ea 100644
--- a/src/Specific/CurveParameters/montgomery64_2e221m3.json
+++ b/src/Specific/CurveParameters/montgomery64_2e221m3.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='64'",
"modulus": "2^221 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e222m117.json b/src/Specific/CurveParameters/montgomery64_2e222m117.json
index d2b24dc04..68d4cf71b 100644
--- a/src/Specific/CurveParameters/montgomery64_2e222m117.json
+++ b/src/Specific/CurveParameters/montgomery64_2e222m117.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='64'",
"modulus": "2^222 - 117",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json b/src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json
index 1fbb5f39c..df0031e48 100644
--- a/src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e224m2e96p1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='64'",
"modulus": "2^224 - 2^96 + 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e226m5.json b/src/Specific/CurveParameters/montgomery64_2e226m5.json
index 53ee6cf79..5c037c9d7 100644
--- a/src/Specific/CurveParameters/montgomery64_2e226m5.json
+++ b/src/Specific/CurveParameters/montgomery64_2e226m5.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='64'",
"modulus": "2^226 - 5",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e230m27.json b/src/Specific/CurveParameters/montgomery64_2e230m27.json
index 4dc1a3282..2cf84cc5d 100644
--- a/src/Specific/CurveParameters/montgomery64_2e230m27.json
+++ b/src/Specific/CurveParameters/montgomery64_2e230m27.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='64'",
"modulus": "2^230 - 27",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e235m15.json b/src/Specific/CurveParameters/montgomery64_2e235m15.json
index f2b6981e5..c09a521e0 100644
--- a/src/Specific/CurveParameters/montgomery64_2e235m15.json
+++ b/src/Specific/CurveParameters/montgomery64_2e235m15.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='64'",
"modulus": "2^235 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e243m9.json b/src/Specific/CurveParameters/montgomery64_2e243m9.json
index 79a67ebd6..825109fe6 100644
--- a/src/Specific/CurveParameters/montgomery64_2e243m9.json
+++ b/src/Specific/CurveParameters/montgomery64_2e243m9.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='64'",
"modulus": "2^243 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e251m9.json b/src/Specific/CurveParameters/montgomery64_2e251m9.json
index 6d4d5a423..1a9dd3bb8 100644
--- a/src/Specific/CurveParameters/montgomery64_2e251m9.json
+++ b/src/Specific/CurveParameters/montgomery64_2e251m9.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='64'",
"modulus": "2^251 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e254m127x2e240m1.json b/src/Specific/CurveParameters/montgomery64_2e254m127x2e240m1.json
index 0663309ea..5dbac0e96 100644
--- a/src/Specific/CurveParameters/montgomery64_2e254m127x2e240m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e254m127x2e240m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^254 - 127*2^240 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e255m19.json b/src/Specific/CurveParameters/montgomery64_2e255m19.json
index 80bf3fb2b..14696b17f 100644
--- a/src/Specific/CurveParameters/montgomery64_2e255m19.json
+++ b/src/Specific/CurveParameters/montgomery64_2e255m19.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='64'",
"modulus": "2^255 - 19 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json
index 9af49cfb0..4f0feac40 100644
--- a/src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e255m2e4m2e1m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^255 - 2^4 - 2^1 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e255m765.json b/src/Specific/CurveParameters/montgomery64_2e255m765.json
index 0bccd1474..8b69b7dba 100644
--- a/src/Specific/CurveParameters/montgomery64_2e255m765.json
+++ b/src/Specific/CurveParameters/montgomery64_2e255m765.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='64'",
"modulus": "2^255 - 765",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e256m189.json b/src/Specific/CurveParameters/montgomery64_2e256m189.json
index 1886601c6..de5a33ec9 100644
--- a/src/Specific/CurveParameters/montgomery64_2e256m189.json
+++ b/src/Specific/CurveParameters/montgomery64_2e256m189.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='64'",
"modulus": "2^256 - 189",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json
index 721c77591..93f2933af 100644
--- a/src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e256m2e224p2e192p2e96m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='64'",
"modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json b/src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json
index 905e3cf36..e073d0b8b 100644
--- a/src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json
+++ b/src/Specific/CurveParameters/montgomery64_2e256m2e32m977.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='64'",
"modulus": "2^256 - 2^32 - 977 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e256m88x2e240m1.json b/src/Specific/CurveParameters/montgomery64_2e256m88x2e240m1.json
index 7cdde3645..1c22e757f 100644
--- a/src/Specific/CurveParameters/montgomery64_2e256m88x2e240m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e256m88x2e240m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^256 - 88*2^240 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e266m3.json b/src/Specific/CurveParameters/montgomery64_2e266m3.json
index 4a5c08edb..183d5c2f9 100644
--- a/src/Specific/CurveParameters/montgomery64_2e266m3.json
+++ b/src/Specific/CurveParameters/montgomery64_2e266m3.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='64'",
"modulus": "2^266 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e285m9.json b/src/Specific/CurveParameters/montgomery64_2e285m9.json
index d8deef6bd..823e5e54c 100644
--- a/src/Specific/CurveParameters/montgomery64_2e285m9.json
+++ b/src/Specific/CurveParameters/montgomery64_2e285m9.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='64'",
"modulus": "2^285 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e291m19.json b/src/Specific/CurveParameters/montgomery64_2e291m19.json
index e6d41c5de..4ba40896d 100644
--- a/src/Specific/CurveParameters/montgomery64_2e291m19.json
+++ b/src/Specific/CurveParameters/montgomery64_2e291m19.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='64'",
"modulus": "2^291 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e321m9.json b/src/Specific/CurveParameters/montgomery64_2e321m9.json
index beaccf2c4..c4fdb6835 100644
--- a/src/Specific/CurveParameters/montgomery64_2e321m9.json
+++ b/src/Specific/CurveParameters/montgomery64_2e321m9.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='64'",
"modulus": "2^321 - 9",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json b/src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json
index 7910194f1..6ac46788b 100644
--- a/src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e322m2e161m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^322 - 2^161 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e336m17.json b/src/Specific/CurveParameters/montgomery64_2e336m17.json
index 320a21df6..bb340a5e0 100644
--- a/src/Specific/CurveParameters/montgomery64_2e336m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e336m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^336 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e336m3.json b/src/Specific/CurveParameters/montgomery64_2e336m3.json
index 14d0f999e..988247468 100644
--- a/src/Specific/CurveParameters/montgomery64_2e336m3.json
+++ b/src/Specific/CurveParameters/montgomery64_2e336m3.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='64'",
"modulus": "2^336 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e338m15.json b/src/Specific/CurveParameters/montgomery64_2e338m15.json
index fb8bc0fb2..1a83b434e 100644
--- a/src/Specific/CurveParameters/montgomery64_2e338m15.json
+++ b/src/Specific/CurveParameters/montgomery64_2e338m15.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='64'",
"modulus": "2^338 - 15",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e369m25.json b/src/Specific/CurveParameters/montgomery64_2e369m25.json
index e34f9091b..0ad37a960 100644
--- a/src/Specific/CurveParameters/montgomery64_2e369m25.json
+++ b/src/Specific/CurveParameters/montgomery64_2e369m25.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='64'",
"modulus": "2^369 - 25",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e379m19.json b/src/Specific/CurveParameters/montgomery64_2e379m19.json
index 337c0cae5..a84d6000b 100644
--- a/src/Specific/CurveParameters/montgomery64_2e379m19.json
+++ b/src/Specific/CurveParameters/montgomery64_2e379m19.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='64'",
"modulus": "2^379 - 19",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e382m105.json b/src/Specific/CurveParameters/montgomery64_2e382m105.json
index b26ff6f40..36f56d2d6 100644
--- a/src/Specific/CurveParameters/montgomery64_2e382m105.json
+++ b/src/Specific/CurveParameters/montgomery64_2e382m105.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='64'",
"modulus": "2^382 - 105",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e383m187.json b/src/Specific/CurveParameters/montgomery64_2e383m187.json
index 0a31ae518..e81669b39 100644
--- a/src/Specific/CurveParameters/montgomery64_2e383m187.json
+++ b/src/Specific/CurveParameters/montgomery64_2e383m187.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='64'",
"modulus": "2^383 - 187",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e383m31.json b/src/Specific/CurveParameters/montgomery64_2e383m31.json
index 18dd23f09..7a52c8242 100644
--- a/src/Specific/CurveParameters/montgomery64_2e383m31.json
+++ b/src/Specific/CurveParameters/montgomery64_2e383m31.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='64'",
"modulus": "2^383 - 31",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e383m421.json b/src/Specific/CurveParameters/montgomery64_2e383m421.json
index 4129bfeff..ada5cc752 100644
--- a/src/Specific/CurveParameters/montgomery64_2e383m421.json
+++ b/src/Specific/CurveParameters/montgomery64_2e383m421.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='64'",
"modulus": "2^383 - 421",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json
index 63941d5b1..726cb8d1c 100644
--- a/src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e384m2e128m2e96p2e32m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='64'",
"modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e384m317.json b/src/Specific/CurveParameters/montgomery64_2e384m317.json
index 0abfe554c..0966c2e44 100644
--- a/src/Specific/CurveParameters/montgomery64_2e384m317.json
+++ b/src/Specific/CurveParameters/montgomery64_2e384m317.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='64'",
"modulus": "2^384 - 317",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e384m5x2e368m1.json b/src/Specific/CurveParameters/montgomery64_2e384m5x2e368m1.json
index 9d8b26351..e8ab207fa 100644
--- a/src/Specific/CurveParameters/montgomery64_2e384m5x2e368m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e384m5x2e368m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^384 - 5*2^368 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e384m79x2e376m1.json b/src/Specific/CurveParameters/montgomery64_2e384m79x2e376m1.json
index f21b98382..377641d0a 100644
--- a/src/Specific/CurveParameters/montgomery64_2e384m79x2e376m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e384m79x2e376m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^384 - 79*2^376 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e389m21.json b/src/Specific/CurveParameters/montgomery64_2e389m21.json
index 5456be3eb..9dfccbd13 100644
--- a/src/Specific/CurveParameters/montgomery64_2e389m21.json
+++ b/src/Specific/CurveParameters/montgomery64_2e389m21.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='64'",
"modulus": "2^389 - 21",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e401m31.json b/src/Specific/CurveParameters/montgomery64_2e401m31.json
index 2c726d58c..12fa188c9 100644
--- a/src/Specific/CurveParameters/montgomery64_2e401m31.json
+++ b/src/Specific/CurveParameters/montgomery64_2e401m31.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='64'",
"modulus": "2^401 - 31",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e413m21.json b/src/Specific/CurveParameters/montgomery64_2e413m21.json
index b2726e349..c4cc2a4f9 100644
--- a/src/Specific/CurveParameters/montgomery64_2e413m21.json
+++ b/src/Specific/CurveParameters/montgomery64_2e413m21.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='64'",
"modulus": "2^413 - 21",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e414m17.json b/src/Specific/CurveParameters/montgomery64_2e414m17.json
index 96de35fb0..3bdad8889 100644
--- a/src/Specific/CurveParameters/montgomery64_2e414m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e414m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^414 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json b/src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json
index fe6936ea9..ca3c3a025 100644
--- a/src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e416m2e208m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^416 - 2^208 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e444m17.json b/src/Specific/CurveParameters/montgomery64_2e444m17.json
index 60404a40a..f0e336aa2 100644
--- a/src/Specific/CurveParameters/montgomery64_2e444m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e444m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^444 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json b/src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json
index dc3650e9c..19d57b66a 100644
--- a/src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e448m2e224m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='64'",
"modulus": "2^448 - 2^224 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json b/src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json
index b5affaf1d..a7946bfef 100644
--- a/src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e450m2e225m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^450 - 2^225 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e452m3.json b/src/Specific/CurveParameters/montgomery64_2e452m3.json
index c4b577388..d118cbe9f 100644
--- a/src/Specific/CurveParameters/montgomery64_2e452m3.json
+++ b/src/Specific/CurveParameters/montgomery64_2e452m3.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='64'",
"modulus": "2^452 - 3",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e468m17.json b/src/Specific/CurveParameters/montgomery64_2e468m17.json
index 03337e231..f0d605f4d 100644
--- a/src/Specific/CurveParameters/montgomery64_2e468m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e468m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^468 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json b/src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json
index 99b8e4a6b..ef02aea58 100644
--- a/src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e480m2e240m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='64'",
"modulus": "2^480 - 2^240 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e488m17.json b/src/Specific/CurveParameters/montgomery64_2e488m17.json
index 98738bdb8..41d54fb56 100644
--- a/src/Specific/CurveParameters/montgomery64_2e488m17.json
+++ b/src/Specific/CurveParameters/montgomery64_2e488m17.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='64'",
"modulus": "2^488 - 17",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e489m21.json b/src/Specific/CurveParameters/montgomery64_2e489m21.json
index d5728237d..cde620317 100644
--- a/src/Specific/CurveParameters/montgomery64_2e489m21.json
+++ b/src/Specific/CurveParameters/montgomery64_2e489m21.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='64'",
"modulus": "2^489 - 21",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e495m31.json b/src/Specific/CurveParameters/montgomery64_2e495m31.json
index b4a29e928..9668ece44 100644
--- a/src/Specific/CurveParameters/montgomery64_2e495m31.json
+++ b/src/Specific/CurveParameters/montgomery64_2e495m31.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='64'",
"modulus": "2^495 - 31",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e510m290x2e496m1.json b/src/Specific/CurveParameters/montgomery64_2e510m290x2e496m1.json
index d983f012e..e553ec69d 100644
--- a/src/Specific/CurveParameters/montgomery64_2e510m290x2e496m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e510m290x2e496m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^510 - 290*2^496 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e511m187.json b/src/Specific/CurveParameters/montgomery64_2e511m187.json
index f67bf3a67..11b7b7283 100644
--- a/src/Specific/CurveParameters/montgomery64_2e511m187.json
+++ b/src/Specific/CurveParameters/montgomery64_2e511m187.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='64'",
"modulus": "2^511 - 187",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e511m481.json b/src/Specific/CurveParameters/montgomery64_2e511m481.json
index 811275ae8..83d94e94a 100644
--- a/src/Specific/CurveParameters/montgomery64_2e511m481.json
+++ b/src/Specific/CurveParameters/montgomery64_2e511m481.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='64'",
"modulus": "2^511 - 481",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e512m491x2e496m1.json b/src/Specific/CurveParameters/montgomery64_2e512m491x2e496m1.json
index 37f6ca8d5..af597c7b1 100644
--- a/src/Specific/CurveParameters/montgomery64_2e512m491x2e496m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e512m491x2e496m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64'",
"modulus": "2^512 - 491*2^496 - 1",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e512m569.json b/src/Specific/CurveParameters/montgomery64_2e512m569.json
index 0857a193b..3d02e3966 100644
--- a/src/Specific/CurveParameters/montgomery64_2e512m569.json
+++ b/src/Specific/CurveParameters/montgomery64_2e512m569.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='64'",
"modulus": "2^512 - 569",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/montgomery64_2e521m1.json b/src/Specific/CurveParameters/montgomery64_2e521m1.json
index 1c0803192..0526b0e24 100644
--- a/src/Specific/CurveParameters/montgomery64_2e521m1.json
+++ b/src/Specific/CurveParameters/montgomery64_2e521m1.json
@@ -1,6 +1,7 @@
{
"base": "64",
- "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",
+ "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 -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='64'",
+ "compilerxx": "g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='64'",
"modulus": "2^521 - 1 ",
"montgomery": true,
"operations": [
diff --git a/src/Specific/CurveParameters/solinas32_2e127m1.json b/src/Specific/CurveParameters/solinas32_2e127m1.json
index 837e541e0..3b46498c4 100644
--- a/src/Specific/CurveParameters/solinas32_2e127m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e127m1.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='21 + 1/6'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='21 + 1/6'",
"modulus": "2^127 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e129m25.json b/src/Specific/CurveParameters/solinas32_2e129m25.json
index e0653be2b..db6cd9fbd 100644
--- a/src/Specific/CurveParameters/solinas32_2e129m25.json
+++ b/src/Specific/CurveParameters/solinas32_2e129m25.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='21.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='21.5'",
"modulus": "2^129 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e130m5.json b/src/Specific/CurveParameters/solinas32_2e130m5.json
index 00239c92d..85d6e5d41 100644
--- a/src/Specific/CurveParameters/solinas32_2e130m5.json
+++ b/src/Specific/CurveParameters/solinas32_2e130m5.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='26'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='26'",
"modulus": "2^130 - 5 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e137m13.json b/src/Specific/CurveParameters/solinas32_2e137m13.json
index e3f52b3e3..1748bceee 100644
--- a/src/Specific/CurveParameters/solinas32_2e137m13.json
+++ b/src/Specific/CurveParameters/solinas32_2e137m13.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='17.125'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='17.125'",
"modulus": "2^137 - 13",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e140m27.json b/src/Specific/CurveParameters/solinas32_2e140m27.json
index 97098b5f6..4b6ef9a92 100644
--- a/src/Specific/CurveParameters/solinas32_2e140m27.json
+++ b/src/Specific/CurveParameters/solinas32_2e140m27.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='23 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='23 + 1/3'",
"modulus": "2^140 - 27",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e141m9.json b/src/Specific/CurveParameters/solinas32_2e141m9.json
index 31937e469..1051b11c8 100644
--- a/src/Specific/CurveParameters/solinas32_2e141m9.json
+++ b/src/Specific/CurveParameters/solinas32_2e141m9.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='23.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='23.5'",
"modulus": "2^141 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e150m3.json b/src/Specific/CurveParameters/solinas32_2e150m3.json
index e92f75cef..45f780d21 100644
--- a/src/Specific/CurveParameters/solinas32_2e150m3.json
+++ b/src/Specific/CurveParameters/solinas32_2e150m3.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='30'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='30'",
"modulus": "2^150 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e150m5.json b/src/Specific/CurveParameters/solinas32_2e150m5.json
index fd1c73feb..58055a5c8 100644
--- a/src/Specific/CurveParameters/solinas32_2e150m5.json
+++ b/src/Specific/CurveParameters/solinas32_2e150m5.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='25'",
"modulus": "2^150 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e152m17.json b/src/Specific/CurveParameters/solinas32_2e152m17.json
index 7af8e37e1..b3ad9fe4a 100644
--- a/src/Specific/CurveParameters/solinas32_2e152m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e152m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='25 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='25 + 1/3'",
"modulus": "2^152 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e158m15.json b/src/Specific/CurveParameters/solinas32_2e158m15.json
index 3fd3c966d..9c41638c9 100644
--- a/src/Specific/CurveParameters/solinas32_2e158m15.json
+++ b/src/Specific/CurveParameters/solinas32_2e158m15.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='26 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='26 + 1/3'",
"modulus": "2^158 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e165m25.json b/src/Specific/CurveParameters/solinas32_2e165m25.json
index f6e6020cd..476371763 100644
--- a/src/Specific/CurveParameters/solinas32_2e165m25.json
+++ b/src/Specific/CurveParameters/solinas32_2e165m25.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='18 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='18 + 1/3'",
"modulus": "2^165 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e166m5.json b/src/Specific/CurveParameters/solinas32_2e166m5.json
index f9b067efc..b82978a5c 100644
--- a/src/Specific/CurveParameters/solinas32_2e166m5.json
+++ b/src/Specific/CurveParameters/solinas32_2e166m5.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='15 + 1/11'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='15 + 1/11'",
"modulus": "2^166 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e171m19.json b/src/Specific/CurveParameters/solinas32_2e171m19.json
index 6bc59a012..e4584c973 100644
--- a/src/Specific/CurveParameters/solinas32_2e171m19.json
+++ b/src/Specific/CurveParameters/solinas32_2e171m19.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='19'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='19'",
"modulus": "2^171 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e174m17.json b/src/Specific/CurveParameters/solinas32_2e174m17.json
index ea9a6ffd7..9c3b60eb0 100644
--- a/src/Specific/CurveParameters/solinas32_2e174m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e174m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='19 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='19 + 1/3'",
"modulus": "2^174 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e174m3.json b/src/Specific/CurveParameters/solinas32_2e174m3.json
index c7efb6610..7aec160ba 100644
--- a/src/Specific/CurveParameters/solinas32_2e174m3.json
+++ b/src/Specific/CurveParameters/solinas32_2e174m3.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='29'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='29'",
"modulus": "2^174 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e189m25.json b/src/Specific/CurveParameters/solinas32_2e189m25.json
index d80041011..a85424933 100644
--- a/src/Specific/CurveParameters/solinas32_2e189m25.json
+++ b/src/Specific/CurveParameters/solinas32_2e189m25.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='27'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='27'",
"modulus": "2^189 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e190m11.json b/src/Specific/CurveParameters/solinas32_2e190m11.json
index 660beb1b3..ba6e23efa 100644
--- a/src/Specific/CurveParameters/solinas32_2e190m11.json
+++ b/src/Specific/CurveParameters/solinas32_2e190m11.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='27 + 1/7'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='27 + 1/7'",
"modulus": "2^190 - 11",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e191m19.json b/src/Specific/CurveParameters/solinas32_2e191m19.json
index afd5781df..20f8a17e6 100644
--- a/src/Specific/CurveParameters/solinas32_2e191m19.json
+++ b/src/Specific/CurveParameters/solinas32_2e191m19.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='19.1'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='19.1'",
"modulus": "2^191 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json b/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json
index cf5ac4327..f1754c11c 100644
--- a/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e192m2e64m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='24'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='24'",
"modulus": "2^192 - 2^64 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e194m33.json b/src/Specific/CurveParameters/solinas32_2e194m33.json
index a313ab148..6e74c1505 100644
--- a/src/Specific/CurveParameters/solinas32_2e194m33.json
+++ b/src/Specific/CurveParameters/solinas32_2e194m33.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='24.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='24.25'",
"modulus": "2^194 - 33",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e196m15.json b/src/Specific/CurveParameters/solinas32_2e196m15.json
index 7097093b0..0860a2788 100644
--- a/src/Specific/CurveParameters/solinas32_2e196m15.json
+++ b/src/Specific/CurveParameters/solinas32_2e196m15.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='28'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='28'",
"modulus": "2^196 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e198m17.json b/src/Specific/CurveParameters/solinas32_2e198m17.json
index a57680127..a77d217fb 100644
--- a/src/Specific/CurveParameters/solinas32_2e198m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e198m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='22'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='22'",
"modulus": "2^198 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json b/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json
index ad8a83e9e..3f8b6c4cb 100644
--- a/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e205m45x2e198m1.json
@@ -24,7 +24,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='20.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='20.5'",
"modulus": "2^205 - 45*2^198 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e206m5.json b/src/Specific/CurveParameters/solinas32_2e206m5.json
index 11b242741..fe6b003b1 100644
--- a/src/Specific/CurveParameters/solinas32_2e206m5.json
+++ b/src/Specific/CurveParameters/solinas32_2e206m5.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='17 + 1/6'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='17 + 1/6'",
"modulus": "2^206 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e212m29.json b/src/Specific/CurveParameters/solinas32_2e212m29.json
index 92361858c..007d32e5f 100644
--- a/src/Specific/CurveParameters/solinas32_2e212m29.json
+++ b/src/Specific/CurveParameters/solinas32_2e212m29.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='26.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='26.5'",
"modulus": "2^212 - 29",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e213m3.json b/src/Specific/CurveParameters/solinas32_2e213m3.json
index 977db3aef..b10a022c5 100644
--- a/src/Specific/CurveParameters/solinas32_2e213m3.json
+++ b/src/Specific/CurveParameters/solinas32_2e213m3.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='14.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='14.2'",
"modulus": "2^213 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json b/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json
index 3fd0c6ea9..fdc3b98be 100644
--- a/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e216m2e108m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='27'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='27'",
"goldilocks": true,
"modulus": "2^216 - 2^108 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas32_2e221m3.json b/src/Specific/CurveParameters/solinas32_2e221m3.json
index 2c19bc8cd..7ec7776bd 100644
--- a/src/Specific/CurveParameters/solinas32_2e221m3.json
+++ b/src/Specific/CurveParameters/solinas32_2e221m3.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='22.1'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='22.1'",
"modulus": "2^221 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e222m117.json b/src/Specific/CurveParameters/solinas32_2e222m117.json
index 09327b58f..c3ce5f18a 100644
--- a/src/Specific/CurveParameters/solinas32_2e222m117.json
+++ b/src/Specific/CurveParameters/solinas32_2e222m117.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='22.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='22.2'",
"modulus": "2^222 - 117",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json b/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json
index 5950229f2..b2c10aa29 100644
--- a/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json
+++ b/src/Specific/CurveParameters/solinas32_2e224m2e96p1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='28'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='28'",
"modulus": "2^224 - 2^96 + 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e226m5.json b/src/Specific/CurveParameters/solinas32_2e226m5.json
index 2b34c1bfb..b2c89610d 100644
--- a/src/Specific/CurveParameters/solinas32_2e226m5.json
+++ b/src/Specific/CurveParameters/solinas32_2e226m5.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='28.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='28.25'",
"modulus": "2^226 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e230m27.json b/src/Specific/CurveParameters/solinas32_2e230m27.json
index 857d13036..8c33fe33e 100644
--- a/src/Specific/CurveParameters/solinas32_2e230m27.json
+++ b/src/Specific/CurveParameters/solinas32_2e230m27.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='23'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='23'",
"modulus": "2^230 - 27",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e235m15.json b/src/Specific/CurveParameters/solinas32_2e235m15.json
index 3c383b797..b81015fba 100644
--- a/src/Specific/CurveParameters/solinas32_2e235m15.json
+++ b/src/Specific/CurveParameters/solinas32_2e235m15.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='26 + 1/9'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='26 + 1/9'",
"modulus": "2^235 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e243m9.json b/src/Specific/CurveParameters/solinas32_2e243m9.json
index 4961c246a..134bee39e 100644
--- a/src/Specific/CurveParameters/solinas32_2e243m9.json
+++ b/src/Specific/CurveParameters/solinas32_2e243m9.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='27'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='27'",
"modulus": "2^243 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e251m9.json b/src/Specific/CurveParameters/solinas32_2e251m9.json
index 3c359b701..8c3df69c2 100644
--- a/src/Specific/CurveParameters/solinas32_2e251m9.json
+++ b/src/Specific/CurveParameters/solinas32_2e251m9.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='25.1'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='25.1'",
"modulus": "2^251 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e254m127x2e240m1.json b/src/Specific/CurveParameters/solinas32_2e254m127x2e240m1.json
index 1037460f3..fbe0b361e 100644
--- a/src/Specific/CurveParameters/solinas32_2e254m127x2e240m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e254m127x2e240m1.json
@@ -25,7 +25,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='23 + 1/11'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='23 + 1/11'",
"modulus": "2^254 - 127*2^240 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e255m19.json b/src/Specific/CurveParameters/solinas32_2e255m19.json
index 048a61053..27687ef13 100644
--- a/src/Specific/CurveParameters/solinas32_2e255m19.json
+++ b/src/Specific/CurveParameters/solinas32_2e255m19.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='25.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='25.5'",
"modulus": "2^255 - 19 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json
index 0fea0b5a6..6b965d679 100644
--- a/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e255m2e4m2e1m1.json
@@ -24,7 +24,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='28 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='28 + 1/3'",
"modulus": "2^255 - 2^4 - 2^1 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e255m765.json b/src/Specific/CurveParameters/solinas32_2e255m765.json
index 1f38e48f4..2dc163b34 100644
--- a/src/Specific/CurveParameters/solinas32_2e255m765.json
+++ b/src/Specific/CurveParameters/solinas32_2e255m765.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='21.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='21.25'",
"modulus": "2^255 - 765",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e256m189.json b/src/Specific/CurveParameters/solinas32_2e256m189.json
index 595e34912..5d28b9303 100644
--- a/src/Specific/CurveParameters/solinas32_2e256m189.json
+++ b/src/Specific/CurveParameters/solinas32_2e256m189.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='21 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='21 + 1/3'",
"modulus": "2^256 - 189",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json
index 5aa485112..11b47033b 100644
--- a/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e256m2e224p2e192p2e96m1.json
@@ -30,7 +30,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='21 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='21 + 1/3'",
"modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json b/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json
index 304b1ee8e..7e321a39b 100644
--- a/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json
+++ b/src/Specific/CurveParameters/solinas32_2e256m2e32m977.json
@@ -26,7 +26,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='21 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='21 + 1/3'",
"modulus": "2^256 - 2^32 - 977 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e256m88x2e240m1.json b/src/Specific/CurveParameters/solinas32_2e256m88x2e240m1.json
index 92e2ed2c8..2cdbae9e6 100644
--- a/src/Specific/CurveParameters/solinas32_2e256m88x2e240m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e256m88x2e240m1.json
@@ -26,7 +26,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='21 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='21 + 1/3'",
"modulus": "2^256 - 88*2^240 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e266m3.json b/src/Specific/CurveParameters/solinas32_2e266m3.json
index 45972661a..bb7f1a3b0 100644
--- a/src/Specific/CurveParameters/solinas32_2e266m3.json
+++ b/src/Specific/CurveParameters/solinas32_2e266m3.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='22 + 1/6'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='22 + 1/6'",
"modulus": "2^266 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e285m9.json b/src/Specific/CurveParameters/solinas32_2e285m9.json
index bfbb5e769..ad7089b56 100644
--- a/src/Specific/CurveParameters/solinas32_2e285m9.json
+++ b/src/Specific/CurveParameters/solinas32_2e285m9.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='19'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='19'",
"modulus": "2^285 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e291m19.json b/src/Specific/CurveParameters/solinas32_2e291m19.json
index fcbccdb4c..2bb3670dd 100644
--- a/src/Specific/CurveParameters/solinas32_2e291m19.json
+++ b/src/Specific/CurveParameters/solinas32_2e291m19.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='24.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='24.25'",
"modulus": "2^291 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e321m9.json b/src/Specific/CurveParameters/solinas32_2e321m9.json
index e4db0dea7..fb79c7272 100644
--- a/src/Specific/CurveParameters/solinas32_2e321m9.json
+++ b/src/Specific/CurveParameters/solinas32_2e321m9.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='20 + 1/16'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='20 + 1/16'",
"modulus": "2^321 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json b/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json
index 87fec00c2..13923cc3b 100644
--- a/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e322m2e161m1.json
@@ -28,7 +28,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='23'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='23'",
"goldilocks": true,
"modulus": "2^322 - 2^161 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas32_2e336m17.json b/src/Specific/CurveParameters/solinas32_2e336m17.json
index f57366b30..3150f68e8 100644
--- a/src/Specific/CurveParameters/solinas32_2e336m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e336m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='24'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='24'",
"modulus": "2^336 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e336m3.json b/src/Specific/CurveParameters/solinas32_2e336m3.json
index 4741f3661..c797d11d1 100644
--- a/src/Specific/CurveParameters/solinas32_2e336m3.json
+++ b/src/Specific/CurveParameters/solinas32_2e336m3.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='28'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='28'",
"modulus": "2^336 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e338m15.json b/src/Specific/CurveParameters/solinas32_2e338m15.json
index 88ac2509f..c3b28b4fc 100644
--- a/src/Specific/CurveParameters/solinas32_2e338m15.json
+++ b/src/Specific/CurveParameters/solinas32_2e338m15.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='26'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='26'",
"modulus": "2^338 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e369m25.json b/src/Specific/CurveParameters/solinas32_2e369m25.json
index 0ae3436bc..b2ad7980c 100644
--- a/src/Specific/CurveParameters/solinas32_2e369m25.json
+++ b/src/Specific/CurveParameters/solinas32_2e369m25.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='23 + 1/16'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='23 + 1/16'",
"modulus": "2^369 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e379m19.json b/src/Specific/CurveParameters/solinas32_2e379m19.json
index b4fc53571..e2e1c4499 100644
--- a/src/Specific/CurveParameters/solinas32_2e379m19.json
+++ b/src/Specific/CurveParameters/solinas32_2e379m19.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='21 + 1/18'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='21 + 1/18'",
"modulus": "2^379 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e382m105.json b/src/Specific/CurveParameters/solinas32_2e382m105.json
index 583128d40..00d34be37 100644
--- a/src/Specific/CurveParameters/solinas32_2e382m105.json
+++ b/src/Specific/CurveParameters/solinas32_2e382m105.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='19.1'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='19.1'",
"modulus": "2^382 - 105",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json
index 9f6e034f9..a15e45329 100644
--- a/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e384m2e128m2e96p2e32m1.json
@@ -34,7 +34,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='24'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='24'",
"modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e384m317.json b/src/Specific/CurveParameters/solinas32_2e384m317.json
index 2dbce8fc3..a21655fdc 100644
--- a/src/Specific/CurveParameters/solinas32_2e384m317.json
+++ b/src/Specific/CurveParameters/solinas32_2e384m317.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='21 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='21 + 1/3'",
"modulus": "2^384 - 317",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e384m5x2e368m1.json b/src/Specific/CurveParameters/solinas32_2e384m5x2e368m1.json
index a77d78d5e..3c9de1feb 100644
--- a/src/Specific/CurveParameters/solinas32_2e384m5x2e368m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e384m5x2e368m1.json
@@ -30,7 +30,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='24'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='24'",
"modulus": "2^384 - 5*2^368 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e384m79x2e376m1.json b/src/Specific/CurveParameters/solinas32_2e384m79x2e376m1.json
index 96f251eda..f01680f3b 100644
--- a/src/Specific/CurveParameters/solinas32_2e384m79x2e376m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e384m79x2e376m1.json
@@ -30,7 +30,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='24'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='24'",
"modulus": "2^384 - 79*2^376 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e401m31.json b/src/Specific/CurveParameters/solinas32_2e401m31.json
index d53584b0d..8cff0547b 100644
--- a/src/Specific/CurveParameters/solinas32_2e401m31.json
+++ b/src/Specific/CurveParameters/solinas32_2e401m31.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='25 + 1/16'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='25 + 1/16'",
"modulus": "2^401 - 31",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e414m17.json b/src/Specific/CurveParameters/solinas32_2e414m17.json
index c52ba4e9b..d30b14a05 100644
--- a/src/Specific/CurveParameters/solinas32_2e414m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e414m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='23'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='23'",
"modulus": "2^414 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json b/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json
index b02eb447a..72fb48279 100644
--- a/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e416m2e208m1.json
@@ -30,7 +30,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='26'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='26'",
"goldilocks": true,
"modulus": "2^416 - 2^208 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas32_2e444m17.json b/src/Specific/CurveParameters/solinas32_2e444m17.json
index 47e696c9c..c8d4676e6 100644
--- a/src/Specific/CurveParameters/solinas32_2e444m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e444m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='22.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='22.2'",
"modulus": "2^444 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json b/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json
index 6e1e2d600..a46153d87 100644
--- a/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e448m2e224m1.json
@@ -30,7 +30,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='28'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='28'",
"goldilocks": true,
"modulus": "2^448 - 2^224 - 1 ",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json b/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json
index aa6a7fbee..8de0e9253 100644
--- a/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e450m2e225m1.json
@@ -29,7 +29,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='30'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='30'",
"goldilocks": true,
"modulus": "2^450 - 2^225 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas32_2e452m3.json b/src/Specific/CurveParameters/solinas32_2e452m3.json
index a1b1da43f..aa82665f7 100644
--- a/src/Specific/CurveParameters/solinas32_2e452m3.json
+++ b/src/Specific/CurveParameters/solinas32_2e452m3.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='28.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='28.25'",
"modulus": "2^452 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e468m17.json b/src/Specific/CurveParameters/solinas32_2e468m17.json
index 63dea199f..681652cfc 100644
--- a/src/Specific/CurveParameters/solinas32_2e468m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e468m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='26'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='26'",
"modulus": "2^468 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json b/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json
index cf97ab518..8d7991017 100644
--- a/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e480m2e240m1.json
@@ -30,7 +30,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='30'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='30'",
"goldilocks": true,
"modulus": "2^480 - 2^240 - 1 ",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas32_2e488m17.json b/src/Specific/CurveParameters/solinas32_2e488m17.json
index 2b574bdb4..3bbb96d7b 100644
--- a/src/Specific/CurveParameters/solinas32_2e488m17.json
+++ b/src/Specific/CurveParameters/solinas32_2e488m17.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='20 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='20 + 1/3'",
"modulus": "2^488 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e489m21.json b/src/Specific/CurveParameters/solinas32_2e489m21.json
index e93c3936e..16996b11b 100644
--- a/src/Specific/CurveParameters/solinas32_2e489m21.json
+++ b/src/Specific/CurveParameters/solinas32_2e489m21.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='18 + 1/9'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='18 + 1/9'",
"modulus": "2^489 - 21",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e495m31.json b/src/Specific/CurveParameters/solinas32_2e495m31.json
index 071bfd940..f6aacc7fc 100644
--- a/src/Specific/CurveParameters/solinas32_2e495m31.json
+++ b/src/Specific/CurveParameters/solinas32_2e495m31.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='26 + 1/19'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='26 + 1/19'",
"modulus": "2^495 - 31",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e510m290x2e496m1.json b/src/Specific/CurveParameters/solinas32_2e510m290x2e496m1.json
index 5c72c69ab..508b4b95e 100644
--- a/src/Specific/CurveParameters/solinas32_2e510m290x2e496m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e510m290x2e496m1.json
@@ -38,7 +38,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21.25'",
"modulus": "2^510 - 290*2^496 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e511m187.json b/src/Specific/CurveParameters/solinas32_2e511m187.json
index a893a4b5c..9999271cb 100644
--- a/src/Specific/CurveParameters/solinas32_2e511m187.json
+++ b/src/Specific/CurveParameters/solinas32_2e511m187.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='18.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='18.25'",
"modulus": "2^511 - 187",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e511m481.json b/src/Specific/CurveParameters/solinas32_2e511m481.json
index 54cdc29ae..a821ec0c9 100644
--- a/src/Specific/CurveParameters/solinas32_2e511m481.json
+++ b/src/Specific/CurveParameters/solinas32_2e511m481.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='18.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='18.25'",
"modulus": "2^511 - 481",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e512m491x2e496m1.json b/src/Specific/CurveParameters/solinas32_2e512m491x2e496m1.json
index 29c1faa56..141e6968c 100644
--- a/src/Specific/CurveParameters/solinas32_2e512m491x2e496m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e512m491x2e496m1.json
@@ -38,7 +38,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21 + 1/3'",
"modulus": "2^512 - 491*2^496 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e512m569.json b/src/Specific/CurveParameters/solinas32_2e512m569.json
index 86ece4ed5..b94268d94 100644
--- a/src/Specific/CurveParameters/solinas32_2e512m569.json
+++ b/src/Specific/CurveParameters/solinas32_2e512m569.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='21 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='21 + 1/3'",
"modulus": "2^512 - 569",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas32_2e521m1.json b/src/Specific/CurveParameters/solinas32_2e521m1.json
index 3ab7c4eb3..620ed154d 100644
--- a/src/Specific/CurveParameters/solinas32_2e521m1.json
+++ b/src/Specific/CurveParameters/solinas32_2e521m1.json
@@ -3,7 +3,8 @@
"bitwidth": 32,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='26 + 1/20'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='26 + 1/20'",
"modulus": "2^521 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e127m1.json b/src/Specific/CurveParameters/solinas64_2e127m1.json
index 141dc5839..a31b58572 100644
--- a/src/Specific/CurveParameters/solinas64_2e127m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e127m1.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='42 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='42 + 1/3'",
"modulus": "2^127 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e129m25.json b/src/Specific/CurveParameters/solinas64_2e129m25.json
index 7d5492a9c..f4176bf7c 100644
--- a/src/Specific/CurveParameters/solinas64_2e129m25.json
+++ b/src/Specific/CurveParameters/solinas64_2e129m25.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='43'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='43'",
"modulus": "2^129 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e130m5.json b/src/Specific/CurveParameters/solinas64_2e130m5.json
index 1534408e5..fa61ea18f 100644
--- a/src/Specific/CurveParameters/solinas64_2e130m5.json
+++ b/src/Specific/CurveParameters/solinas64_2e130m5.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='43 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='43 + 1/3'",
"modulus": "2^130 - 5 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e137m13.json b/src/Specific/CurveParameters/solinas64_2e137m13.json
index d99875d95..8bd8b682b 100644
--- a/src/Specific/CurveParameters/solinas64_2e137m13.json
+++ b/src/Specific/CurveParameters/solinas64_2e137m13.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='34.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='34.25'",
"modulus": "2^137 - 13",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e140m27.json b/src/Specific/CurveParameters/solinas64_2e140m27.json
index 7bf235b2a..202ab212c 100644
--- a/src/Specific/CurveParameters/solinas64_2e140m27.json
+++ b/src/Specific/CurveParameters/solinas64_2e140m27.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='35'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='35'",
"modulus": "2^140 - 27",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e141m9.json b/src/Specific/CurveParameters/solinas64_2e141m9.json
index f92a60a44..cabd86734 100644
--- a/src/Specific/CurveParameters/solinas64_2e141m9.json
+++ b/src/Specific/CurveParameters/solinas64_2e141m9.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='47'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='47'",
"modulus": "2^141 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e150m3.json b/src/Specific/CurveParameters/solinas64_2e150m3.json
index d70b914e8..6f565b875 100644
--- a/src/Specific/CurveParameters/solinas64_2e150m3.json
+++ b/src/Specific/CurveParameters/solinas64_2e150m3.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='50'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='50'",
"modulus": "2^150 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e150m5.json b/src/Specific/CurveParameters/solinas64_2e150m5.json
index 28676707c..b5aa64600 100644
--- a/src/Specific/CurveParameters/solinas64_2e150m5.json
+++ b/src/Specific/CurveParameters/solinas64_2e150m5.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='50'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='50'",
"modulus": "2^150 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e152m17.json b/src/Specific/CurveParameters/solinas64_2e152m17.json
index ffccea0f5..e86d4660a 100644
--- a/src/Specific/CurveParameters/solinas64_2e152m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e152m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='38'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='38'",
"modulus": "2^152 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e158m15.json b/src/Specific/CurveParameters/solinas64_2e158m15.json
index 314d6d379..659fa52e6 100644
--- a/src/Specific/CurveParameters/solinas64_2e158m15.json
+++ b/src/Specific/CurveParameters/solinas64_2e158m15.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='39.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='39.5'",
"modulus": "2^158 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e165m25.json b/src/Specific/CurveParameters/solinas64_2e165m25.json
index d5ebdc63c..04127f921 100644
--- a/src/Specific/CurveParameters/solinas64_2e165m25.json
+++ b/src/Specific/CurveParameters/solinas64_2e165m25.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='55'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='55'",
"modulus": "2^165 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e166m5.json b/src/Specific/CurveParameters/solinas64_2e166m5.json
index 0e41e5a50..3423b7cf3 100644
--- a/src/Specific/CurveParameters/solinas64_2e166m5.json
+++ b/src/Specific/CurveParameters/solinas64_2e166m5.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='55 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='55 + 1/3'",
"modulus": "2^166 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e171m19.json b/src/Specific/CurveParameters/solinas64_2e171m19.json
index eedc70d7f..b9c894484 100644
--- a/src/Specific/CurveParameters/solinas64_2e171m19.json
+++ b/src/Specific/CurveParameters/solinas64_2e171m19.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='57'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='57'",
"modulus": "2^171 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e174m17.json b/src/Specific/CurveParameters/solinas64_2e174m17.json
index 348e9bf9d..f828b63d1 100644
--- a/src/Specific/CurveParameters/solinas64_2e174m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e174m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='58'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='58'",
"modulus": "2^174 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e174m3.json b/src/Specific/CurveParameters/solinas64_2e174m3.json
index 47f2c6f60..ce0c2b98b 100644
--- a/src/Specific/CurveParameters/solinas64_2e174m3.json
+++ b/src/Specific/CurveParameters/solinas64_2e174m3.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='58'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='58'",
"modulus": "2^174 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e189m25.json b/src/Specific/CurveParameters/solinas64_2e189m25.json
index 0d06899cd..fc7046ce6 100644
--- a/src/Specific/CurveParameters/solinas64_2e189m25.json
+++ b/src/Specific/CurveParameters/solinas64_2e189m25.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='47.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='47.25'",
"modulus": "2^189 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e190m11.json b/src/Specific/CurveParameters/solinas64_2e190m11.json
index 0a90936ae..8884c1666 100644
--- a/src/Specific/CurveParameters/solinas64_2e190m11.json
+++ b/src/Specific/CurveParameters/solinas64_2e190m11.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='47.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='47.5'",
"modulus": "2^190 - 11",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e191m19.json b/src/Specific/CurveParameters/solinas64_2e191m19.json
index 7093b987e..e1342a989 100644
--- a/src/Specific/CurveParameters/solinas64_2e191m19.json
+++ b/src/Specific/CurveParameters/solinas64_2e191m19.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='38.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='38.2'",
"modulus": "2^191 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json b/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json
index 123e20cca..44ef6b228 100644
--- a/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e192m2e64m1.json
@@ -18,7 +18,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='48'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='48'",
"modulus": "2^192 - 2^64 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e194m33.json b/src/Specific/CurveParameters/solinas64_2e194m33.json
index 79d18f1ef..6a44029b6 100644
--- a/src/Specific/CurveParameters/solinas64_2e194m33.json
+++ b/src/Specific/CurveParameters/solinas64_2e194m33.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='48.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='48.5'",
"modulus": "2^194 - 33",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e196m15.json b/src/Specific/CurveParameters/solinas64_2e196m15.json
index 0034a0545..89d72ef68 100644
--- a/src/Specific/CurveParameters/solinas64_2e196m15.json
+++ b/src/Specific/CurveParameters/solinas64_2e196m15.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='49'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='49'",
"modulus": "2^196 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e198m17.json b/src/Specific/CurveParameters/solinas64_2e198m17.json
index 33c458b9f..e8739b1ac 100644
--- a/src/Specific/CurveParameters/solinas64_2e198m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e198m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='49.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='49.5'",
"modulus": "2^198 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json b/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json
index 98bc1e22c..d0b24a448 100644
--- a/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e205m45x2e198m1.json
@@ -18,7 +18,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='51.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='51.25'",
"modulus": "2^205 - 45*2^198 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e206m5.json b/src/Specific/CurveParameters/solinas64_2e206m5.json
index 46c12c022..a26c9ea3d 100644
--- a/src/Specific/CurveParameters/solinas64_2e206m5.json
+++ b/src/Specific/CurveParameters/solinas64_2e206m5.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='51.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='51.5'",
"modulus": "2^206 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e212m29.json b/src/Specific/CurveParameters/solinas64_2e212m29.json
index 55d9e7f01..25ac62b28 100644
--- a/src/Specific/CurveParameters/solinas64_2e212m29.json
+++ b/src/Specific/CurveParameters/solinas64_2e212m29.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='53'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='53'",
"modulus": "2^212 - 29",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e213m3.json b/src/Specific/CurveParameters/solinas64_2e213m3.json
index 32b7bb667..643caeaca 100644
--- a/src/Specific/CurveParameters/solinas64_2e213m3.json
+++ b/src/Specific/CurveParameters/solinas64_2e213m3.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='53.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='53.25'",
"modulus": "2^213 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json b/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json
index 5a1f69e0d..a85995bbe 100644
--- a/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e216m2e108m1.json
@@ -18,7 +18,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='54'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='54'",
"goldilocks": true,
"modulus": "2^216 - 2^108 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas64_2e221m3.json b/src/Specific/CurveParameters/solinas64_2e221m3.json
index ada5c5889..78dddb2ae 100644
--- a/src/Specific/CurveParameters/solinas64_2e221m3.json
+++ b/src/Specific/CurveParameters/solinas64_2e221m3.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='55.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='55.25'",
"modulus": "2^221 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e222m117.json b/src/Specific/CurveParameters/solinas64_2e222m117.json
index 654e4489e..be1251ea3 100644
--- a/src/Specific/CurveParameters/solinas64_2e222m117.json
+++ b/src/Specific/CurveParameters/solinas64_2e222m117.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='55.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='55.5'",
"modulus": "2^222 - 117",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json b/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json
index 52fd80604..f619da2a6 100644
--- a/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json
+++ b/src/Specific/CurveParameters/solinas64_2e224m2e96p1.json
@@ -18,7 +18,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='56'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='56'",
"modulus": "2^224 - 2^96 + 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e226m5.json b/src/Specific/CurveParameters/solinas64_2e226m5.json
index e6e6eb0f3..fbdf4ee3c 100644
--- a/src/Specific/CurveParameters/solinas64_2e226m5.json
+++ b/src/Specific/CurveParameters/solinas64_2e226m5.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='56.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='56.5'",
"modulus": "2^226 - 5",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e230m27.json b/src/Specific/CurveParameters/solinas64_2e230m27.json
index 0d8c08bd7..bee3feaab 100644
--- a/src/Specific/CurveParameters/solinas64_2e230m27.json
+++ b/src/Specific/CurveParameters/solinas64_2e230m27.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='57.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='57.5'",
"modulus": "2^230 - 27",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e235m15.json b/src/Specific/CurveParameters/solinas64_2e235m15.json
index 4954b9eb8..8f0c8811c 100644
--- a/src/Specific/CurveParameters/solinas64_2e235m15.json
+++ b/src/Specific/CurveParameters/solinas64_2e235m15.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='47'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='47'",
"modulus": "2^235 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e243m9.json b/src/Specific/CurveParameters/solinas64_2e243m9.json
index fea34ce72..16702dc8c 100644
--- a/src/Specific/CurveParameters/solinas64_2e243m9.json
+++ b/src/Specific/CurveParameters/solinas64_2e243m9.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='40.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='40.5'",
"modulus": "2^243 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e251m9.json b/src/Specific/CurveParameters/solinas64_2e251m9.json
index 6bd77ba7a..c415ecac1 100644
--- a/src/Specific/CurveParameters/solinas64_2e251m9.json
+++ b/src/Specific/CurveParameters/solinas64_2e251m9.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='50.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='50.2'",
"modulus": "2^251 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e254m127x2e240m1.json b/src/Specific/CurveParameters/solinas64_2e254m127x2e240m1.json
index fc6744165..18d5d9551 100644
--- a/src/Specific/CurveParameters/solinas64_2e254m127x2e240m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e254m127x2e240m1.json
@@ -20,7 +20,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='42 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='42 + 1/3'",
"modulus": "2^254 - 127*2^240 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e255m19.json b/src/Specific/CurveParameters/solinas64_2e255m19.json
index ee44fbea6..2a14b156f 100644
--- a/src/Specific/CurveParameters/solinas64_2e255m19.json
+++ b/src/Specific/CurveParameters/solinas64_2e255m19.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='51'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='51'",
"modulus": "2^255 - 19 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json b/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json
index 6e396d8bc..4a64a9528 100644
--- a/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e255m2e4m2e1m1.json
@@ -20,7 +20,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='51'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='51'",
"modulus": "2^255 - 2^4 - 2^1 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e255m765.json b/src/Specific/CurveParameters/solinas64_2e255m765.json
index a20233c69..53dbbf0c3 100644
--- a/src/Specific/CurveParameters/solinas64_2e255m765.json
+++ b/src/Specific/CurveParameters/solinas64_2e255m765.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='51'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='51'",
"modulus": "2^255 - 765",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e256m189.json b/src/Specific/CurveParameters/solinas64_2e256m189.json
index 2507b5657..033acb774 100644
--- a/src/Specific/CurveParameters/solinas64_2e256m189.json
+++ b/src/Specific/CurveParameters/solinas64_2e256m189.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='51.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='51.2'",
"modulus": "2^256 - 189",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json b/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json
index 19f057cc3..7402e55e0 100644
--- a/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e256m2e224p2e192p2e96m1.json
@@ -23,7 +23,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='51.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='51.2'",
"modulus": "2^256 - 2^224 + 2^192 + 2^96 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json b/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json
index 3b0cfeb0d..37bf9b6fc 100644
--- a/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json
+++ b/src/Specific/CurveParameters/solinas64_2e256m2e32m977.json
@@ -18,7 +18,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='51.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='51.2'",
"modulus": "2^256 - 2^32 - 977 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e256m88x2e240m1.json b/src/Specific/CurveParameters/solinas64_2e256m88x2e240m1.json
index b693a0318..d57f1a0c9 100644
--- a/src/Specific/CurveParameters/solinas64_2e256m88x2e240m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e256m88x2e240m1.json
@@ -19,7 +19,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='51.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='51.2'",
"modulus": "2^256 - 88*2^240 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e266m3.json b/src/Specific/CurveParameters/solinas64_2e266m3.json
index c7f9e50a6..16baa3f0a 100644
--- a/src/Specific/CurveParameters/solinas64_2e266m3.json
+++ b/src/Specific/CurveParameters/solinas64_2e266m3.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='53.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='53.2'",
"modulus": "2^266 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e285m9.json b/src/Specific/CurveParameters/solinas64_2e285m9.json
index 96bc31d92..ef28e6619 100644
--- a/src/Specific/CurveParameters/solinas64_2e285m9.json
+++ b/src/Specific/CurveParameters/solinas64_2e285m9.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='57'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='57'",
"modulus": "2^285 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e291m19.json b/src/Specific/CurveParameters/solinas64_2e291m19.json
index 8a5504623..918751bc2 100644
--- a/src/Specific/CurveParameters/solinas64_2e291m19.json
+++ b/src/Specific/CurveParameters/solinas64_2e291m19.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='58.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='58.2'",
"modulus": "2^291 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e321m9.json b/src/Specific/CurveParameters/solinas64_2e321m9.json
index fad098cf7..3822c33af 100644
--- a/src/Specific/CurveParameters/solinas64_2e321m9.json
+++ b/src/Specific/CurveParameters/solinas64_2e321m9.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='53.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='53.5'",
"modulus": "2^321 - 9",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json b/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json
index 3dc187ade..f17584701 100644
--- a/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e322m2e161m1.json
@@ -21,7 +21,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='46'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='46'",
"goldilocks": true,
"modulus": "2^322 - 2^161 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas64_2e336m17.json b/src/Specific/CurveParameters/solinas64_2e336m17.json
index 852c593e4..84465a757 100644
--- a/src/Specific/CurveParameters/solinas64_2e336m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e336m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='56'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='56'",
"modulus": "2^336 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e336m3.json b/src/Specific/CurveParameters/solinas64_2e336m3.json
index 70543adde..9dc101b62 100644
--- a/src/Specific/CurveParameters/solinas64_2e336m3.json
+++ b/src/Specific/CurveParameters/solinas64_2e336m3.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='56'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='56'",
"modulus": "2^336 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e338m15.json b/src/Specific/CurveParameters/solinas64_2e338m15.json
index 35f42f35d..9cba4bfd6 100644
--- a/src/Specific/CurveParameters/solinas64_2e338m15.json
+++ b/src/Specific/CurveParameters/solinas64_2e338m15.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='56 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='56 + 1/3'",
"modulus": "2^338 - 15",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e369m25.json b/src/Specific/CurveParameters/solinas64_2e369m25.json
index 94614556f..19535e71b 100644
--- a/src/Specific/CurveParameters/solinas64_2e369m25.json
+++ b/src/Specific/CurveParameters/solinas64_2e369m25.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='46.125'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='46.125'",
"modulus": "2^369 - 25",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e379m19.json b/src/Specific/CurveParameters/solinas64_2e379m19.json
index 337966d5d..67afcd24b 100644
--- a/src/Specific/CurveParameters/solinas64_2e379m19.json
+++ b/src/Specific/CurveParameters/solinas64_2e379m19.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='54 + 1/7'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='54 + 1/7'",
"modulus": "2^379 - 19",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e382m105.json b/src/Specific/CurveParameters/solinas64_2e382m105.json
index a4b8fa7f1..5261d8e51 100644
--- a/src/Specific/CurveParameters/solinas64_2e382m105.json
+++ b/src/Specific/CurveParameters/solinas64_2e382m105.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='38.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='38.2'",
"modulus": "2^382 - 105",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json b/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json
index 65b04e03e..bb51e10d6 100644
--- a/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e384m2e128m2e96p2e32m1.json
@@ -26,7 +26,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='48'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='48'",
"modulus": "2^384 - 2^128 - 2^96 + 2^32 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e384m317.json b/src/Specific/CurveParameters/solinas64_2e384m317.json
index 1145b333f..aecb1e8c6 100644
--- a/src/Specific/CurveParameters/solinas64_2e384m317.json
+++ b/src/Specific/CurveParameters/solinas64_2e384m317.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='48'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='48'",
"modulus": "2^384 - 317",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e384m5x2e368m1.json b/src/Specific/CurveParameters/solinas64_2e384m5x2e368m1.json
index 1ad9ed763..5915664ae 100644
--- a/src/Specific/CurveParameters/solinas64_2e384m5x2e368m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e384m5x2e368m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='48'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='48'",
"modulus": "2^384 - 5*2^368 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e384m79x2e376m1.json b/src/Specific/CurveParameters/solinas64_2e384m79x2e376m1.json
index 4891e573b..6fba15748 100644
--- a/src/Specific/CurveParameters/solinas64_2e384m79x2e376m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e384m79x2e376m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='48'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='48'",
"modulus": "2^384 - 79*2^376 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e401m31.json b/src/Specific/CurveParameters/solinas64_2e401m31.json
index 9fc327b83..857ec4842 100644
--- a/src/Specific/CurveParameters/solinas64_2e401m31.json
+++ b/src/Specific/CurveParameters/solinas64_2e401m31.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='50.125'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='50.125'",
"modulus": "2^401 - 31",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e413m21.json b/src/Specific/CurveParameters/solinas64_2e413m21.json
index 6c794c0f2..cc189cec5 100644
--- a/src/Specific/CurveParameters/solinas64_2e413m21.json
+++ b/src/Specific/CurveParameters/solinas64_2e413m21.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='59'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='59'",
"modulus": "2^413 - 21",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e414m17.json b/src/Specific/CurveParameters/solinas64_2e414m17.json
index 14c9a4033..6e7144d28 100644
--- a/src/Specific/CurveParameters/solinas64_2e414m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e414m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='46'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='46'",
"modulus": "2^414 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json b/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json
index b85d5523a..05cbf65f3 100644
--- a/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e416m2e208m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='52'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='52'",
"goldilocks": true,
"modulus": "2^416 - 2^208 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas64_2e444m17.json b/src/Specific/CurveParameters/solinas64_2e444m17.json
index d04d61bd1..105b0d02d 100644
--- a/src/Specific/CurveParameters/solinas64_2e444m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e444m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='55.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='55.5'",
"modulus": "2^444 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json b/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json
index 04ecbfba2..64e483bcd 100644
--- a/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e448m2e224m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='56'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='56'",
"goldilocks": true,
"modulus": "2^448 - 2^224 - 1 ",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json b/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json
index 65259dfea..34603a838 100644
--- a/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e450m2e225m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='56.25'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='56.25'",
"goldilocks": true,
"modulus": "2^450 - 2^225 - 1",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas64_2e452m3.json b/src/Specific/CurveParameters/solinas64_2e452m3.json
index 8f7a437c2..43a60df97 100644
--- a/src/Specific/CurveParameters/solinas64_2e452m3.json
+++ b/src/Specific/CurveParameters/solinas64_2e452m3.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='56.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='56.5'",
"modulus": "2^452 - 3",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e468m17.json b/src/Specific/CurveParameters/solinas64_2e468m17.json
index e44385178..7a55560c0 100644
--- a/src/Specific/CurveParameters/solinas64_2e468m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e468m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='58.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='58.5'",
"modulus": "2^468 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json b/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json
index 22a9da4ec..2e92faceb 100644
--- a/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e480m2e240m1.json
@@ -22,7 +22,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='60'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='60'",
"goldilocks": true,
"modulus": "2^480 - 2^240 - 1 ",
"operations": [
diff --git a/src/Specific/CurveParameters/solinas64_2e488m17.json b/src/Specific/CurveParameters/solinas64_2e488m17.json
index abfbf9475..7283272d9 100644
--- a/src/Specific/CurveParameters/solinas64_2e488m17.json
+++ b/src/Specific/CurveParameters/solinas64_2e488m17.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='30.5'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='30.5'",
"modulus": "2^488 - 17",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e489m21.json b/src/Specific/CurveParameters/solinas64_2e489m21.json
index 5c9fb1f4b..fd2577d0b 100644
--- a/src/Specific/CurveParameters/solinas64_2e489m21.json
+++ b/src/Specific/CurveParameters/solinas64_2e489m21.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='54 + 1/3'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='54 + 1/3'",
"modulus": "2^489 - 21",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e495m31.json b/src/Specific/CurveParameters/solinas64_2e495m31.json
index 4c6936f39..3b45a7419 100644
--- a/src/Specific/CurveParameters/solinas64_2e495m31.json
+++ b/src/Specific/CurveParameters/solinas64_2e495m31.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='55'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='55'",
"modulus": "2^495 - 31",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e510m290x2e496m1.json b/src/Specific/CurveParameters/solinas64_2e510m290x2e496m1.json
index 0a1a8411f..45ae2ecc3 100644
--- a/src/Specific/CurveParameters/solinas64_2e510m290x2e496m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e510m290x2e496m1.json
@@ -24,7 +24,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51'",
"modulus": "2^510 - 290*2^496 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e511m187.json b/src/Specific/CurveParameters/solinas64_2e511m187.json
index 656b71861..b1218c7da 100644
--- a/src/Specific/CurveParameters/solinas64_2e511m187.json
+++ b/src/Specific/CurveParameters/solinas64_2e511m187.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='51.1'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='51.1'",
"modulus": "2^511 - 187",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e511m481.json b/src/Specific/CurveParameters/solinas64_2e511m481.json
index 1c07236d2..e4201491a 100644
--- a/src/Specific/CurveParameters/solinas64_2e511m481.json
+++ b/src/Specific/CurveParameters/solinas64_2e511m481.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='51.1'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='51.1'",
"modulus": "2^511 - 481",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e512m491x2e496m1.json b/src/Specific/CurveParameters/solinas64_2e512m491x2e496m1.json
index 915a45241..5db9dcdb5 100644
--- a/src/Specific/CurveParameters/solinas64_2e512m491x2e496m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e512m491x2e496m1.json
@@ -24,7 +24,8 @@
]
],
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51.2'",
"modulus": "2^512 - 491*2^496 - 1",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e512m569.json b/src/Specific/CurveParameters/solinas64_2e512m569.json
index 0db9d94f7..098f5e3e3 100644
--- a/src/Specific/CurveParameters/solinas64_2e512m569.json
+++ b/src/Specific/CurveParameters/solinas64_2e512m569.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='51.2'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='51.2'",
"modulus": "2^512 - 569",
"operations": [
"femul",
diff --git a/src/Specific/CurveParameters/solinas64_2e521m1.json b/src/Specific/CurveParameters/solinas64_2e521m1.json
index 7c6161364..a7532f5c4 100644
--- a/src/Specific/CurveParameters/solinas64_2e521m1.json
+++ b/src/Specific/CurveParameters/solinas64_2e521m1.json
@@ -3,7 +3,8 @@
"bitwidth": 64,
"carry_chains": "default",
"coef_div_modulus": "2",
- "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes",
+ "compiler": "gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='52.1'",
+ "compilerxx": "g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='52.1'",
"modulus": "2^521 - 1 ",
"operations": [
"femul",
diff --git a/src/Specific/Framework/bench/gmpxx.cpp b/src/Specific/Framework/bench/gmpxx.cpp
index 4710f8ad3..08f00e9af 100644
--- a/src/Specific/Framework/bench/gmpxx.cpp
+++ b/src/Specific/Framework/bench/gmpxx.cpp
@@ -3,10 +3,21 @@
#include <stdio.h>
#include <gmpxx.h>
+#ifndef q_mpz
+#define q_mpz ((1_mpz<<255)-19)
+#endif
-static const mpz_class q = (1_mpz<<255)-19;
-static const size_t modulus_bytes = 32;
-static const unsigned int a24 = 0x01db41;
+#ifndef modulus_bytes_val
+#define modulus_bytes_val 32
+#endif
+
+#ifndef a24_hex
+#define a24_hex 0x01db41
+#endif
+
+static const mpz_class q = q_mpz;
+static const size_t modulus_bytes = modulus_bytes_val;
+static const unsigned int a24 = a24_hex;
static void fe_print(const mpz_class &x) {
printf("0x"); for (size_t i = modulus_bytes-1; i<modulus_bytes; --i) { printf("%02x", mpz_class(x>>(8*i)).get_ui()&0xff); }
diff --git a/src/Specific/Framework/make_curve.py b/src/Specific/Framework/make_curve.py
index b5c2543d8..ae913d957 100755
--- a/src/Specific/Framework/make_curve.py
+++ b/src/Specific/Framework/make_curve.py
@@ -496,6 +496,8 @@ def main(*args):
outputs[os.path.basename(fname)] = header + '\n' + open(os.path.join(parameters_folder, fname), 'r').read()
if 'compiler' in parameters.keys():
outputs['compiler.sh'] = make_compiler(parameters['compiler'])
+ if 'compilerxx' in parameters.keys():
+ outputs['compilerxx.sh'] = make_compiler(parameters['compilerxx'])
outputs['py_interpreter.sh'] = make_py_interpreter(parameters)
file_list = tuple((k, os.path.join(output_folder, k)) for k in sorted(outputs.keys()))
if not force:
@@ -515,7 +517,7 @@ def main(*args):
new_files.append(fname)
with io.open(fname, 'w', newline='\n') as f:
f.write(unicode(outputs[k]))
- if fname.endswith('compiler.sh') or fname.endswith('py_interpreter.sh'):
+ if any(fname.endswith(name) for name in ('compiler.sh', 'compilerxx.sh', 'py_interpreter.sh')):
mode = os.fstat(f.fileno()).st_mode
mode |= 0o111
mode &= 0o7777
diff --git a/src/Specific/montgomery32_2e127m1/compiler.sh b/src/Specific/montgomery32_2e127m1/compiler.sh
index 518f95765..8e6393a94 100755
--- a/src/Specific/montgomery32_2e127m1/compiler.sh
+++ b/src/Specific/montgomery32_2e127m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e127m1/compilerxx.sh b/src/Specific/montgomery32_2e127m1/compilerxx.sh
new file mode 100755
index 000000000..0abc2839b
--- /dev/null
+++ b/src/Specific/montgomery32_2e127m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e129m25/compiler.sh b/src/Specific/montgomery32_2e129m25/compiler.sh
index 518f95765..fee40d8f5 100755
--- a/src/Specific/montgomery32_2e129m25/compiler.sh
+++ b/src/Specific/montgomery32_2e129m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e129m25/compilerxx.sh b/src/Specific/montgomery32_2e129m25/compilerxx.sh
new file mode 100755
index 000000000..aec035356
--- /dev/null
+++ b/src/Specific/montgomery32_2e129m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e130m5/compiler.sh b/src/Specific/montgomery32_2e130m5/compiler.sh
index 518f95765..8f3430faf 100755
--- a/src/Specific/montgomery32_2e130m5/compiler.sh
+++ b/src/Specific/montgomery32_2e130m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e130m5/compilerxx.sh b/src/Specific/montgomery32_2e130m5/compilerxx.sh
new file mode 100755
index 000000000..1751299f4
--- /dev/null
+++ b/src/Specific/montgomery32_2e130m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e137m13/compiler.sh b/src/Specific/montgomery32_2e137m13/compiler.sh
index 518f95765..f9e453502 100755
--- a/src/Specific/montgomery32_2e137m13/compiler.sh
+++ b/src/Specific/montgomery32_2e137m13/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e137m13/compilerxx.sh b/src/Specific/montgomery32_2e137m13/compilerxx.sh
new file mode 100755
index 000000000..6d8daa6fb
--- /dev/null
+++ b/src/Specific/montgomery32_2e137m13/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e140m27/compiler.sh b/src/Specific/montgomery32_2e140m27/compiler.sh
index 518f95765..e152592a6 100755
--- a/src/Specific/montgomery32_2e140m27/compiler.sh
+++ b/src/Specific/montgomery32_2e140m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e140m27/compilerxx.sh b/src/Specific/montgomery32_2e140m27/compilerxx.sh
new file mode 100755
index 000000000..8c6025c65
--- /dev/null
+++ b/src/Specific/montgomery32_2e140m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e141m9/compiler.sh b/src/Specific/montgomery32_2e141m9/compiler.sh
index 518f95765..5d503f22c 100755
--- a/src/Specific/montgomery32_2e141m9/compiler.sh
+++ b/src/Specific/montgomery32_2e141m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e141m9/compilerxx.sh b/src/Specific/montgomery32_2e141m9/compilerxx.sh
new file mode 100755
index 000000000..2e18dc1c1
--- /dev/null
+++ b/src/Specific/montgomery32_2e141m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e150m3/compiler.sh b/src/Specific/montgomery32_2e150m3/compiler.sh
index 518f95765..a19708951 100755
--- a/src/Specific/montgomery32_2e150m3/compiler.sh
+++ b/src/Specific/montgomery32_2e150m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e150m3/compilerxx.sh b/src/Specific/montgomery32_2e150m3/compilerxx.sh
new file mode 100755
index 000000000..1dcfbe0bd
--- /dev/null
+++ b/src/Specific/montgomery32_2e150m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e150m5/compiler.sh b/src/Specific/montgomery32_2e150m5/compiler.sh
index 518f95765..91a336d0c 100755
--- a/src/Specific/montgomery32_2e150m5/compiler.sh
+++ b/src/Specific/montgomery32_2e150m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e150m5/compilerxx.sh b/src/Specific/montgomery32_2e150m5/compilerxx.sh
new file mode 100755
index 000000000..2362c18ff
--- /dev/null
+++ b/src/Specific/montgomery32_2e150m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e152m17/compiler.sh b/src/Specific/montgomery32_2e152m17/compiler.sh
index 518f95765..697f63a01 100755
--- a/src/Specific/montgomery32_2e152m17/compiler.sh
+++ b/src/Specific/montgomery32_2e152m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e152m17/compilerxx.sh b/src/Specific/montgomery32_2e152m17/compilerxx.sh
new file mode 100755
index 000000000..bd386afc5
--- /dev/null
+++ b/src/Specific/montgomery32_2e152m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e158m15/compiler.sh b/src/Specific/montgomery32_2e158m15/compiler.sh
index 518f95765..23556825b 100755
--- a/src/Specific/montgomery32_2e158m15/compiler.sh
+++ b/src/Specific/montgomery32_2e158m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e158m15/compilerxx.sh b/src/Specific/montgomery32_2e158m15/compilerxx.sh
new file mode 100755
index 000000000..e6d059c53
--- /dev/null
+++ b/src/Specific/montgomery32_2e158m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e165m25/compiler.sh b/src/Specific/montgomery32_2e165m25/compiler.sh
index 518f95765..ea03327d4 100755
--- a/src/Specific/montgomery32_2e165m25/compiler.sh
+++ b/src/Specific/montgomery32_2e165m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e165m25/compilerxx.sh b/src/Specific/montgomery32_2e165m25/compilerxx.sh
new file mode 100755
index 000000000..baa4bdbaa
--- /dev/null
+++ b/src/Specific/montgomery32_2e165m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e166m5/compiler.sh b/src/Specific/montgomery32_2e166m5/compiler.sh
index 518f95765..6169fea8b 100755
--- a/src/Specific/montgomery32_2e166m5/compiler.sh
+++ b/src/Specific/montgomery32_2e166m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e166m5/compilerxx.sh b/src/Specific/montgomery32_2e166m5/compilerxx.sh
new file mode 100755
index 000000000..093eb7641
--- /dev/null
+++ b/src/Specific/montgomery32_2e166m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e171m19/compiler.sh b/src/Specific/montgomery32_2e171m19/compiler.sh
index 518f95765..af43fff94 100755
--- a/src/Specific/montgomery32_2e171m19/compiler.sh
+++ b/src/Specific/montgomery32_2e171m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e171m19/compilerxx.sh b/src/Specific/montgomery32_2e171m19/compilerxx.sh
new file mode 100755
index 000000000..d35288e76
--- /dev/null
+++ b/src/Specific/montgomery32_2e171m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e174m17/compiler.sh b/src/Specific/montgomery32_2e174m17/compiler.sh
index 518f95765..63de4ff94 100755
--- a/src/Specific/montgomery32_2e174m17/compiler.sh
+++ b/src/Specific/montgomery32_2e174m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e174m17/compilerxx.sh b/src/Specific/montgomery32_2e174m17/compilerxx.sh
new file mode 100755
index 000000000..9d1f8760d
--- /dev/null
+++ b/src/Specific/montgomery32_2e174m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e174m3/compiler.sh b/src/Specific/montgomery32_2e174m3/compiler.sh
index 518f95765..36bea9cc7 100755
--- a/src/Specific/montgomery32_2e174m3/compiler.sh
+++ b/src/Specific/montgomery32_2e174m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e174m3/compilerxx.sh b/src/Specific/montgomery32_2e174m3/compilerxx.sh
new file mode 100755
index 000000000..9060e7ee3
--- /dev/null
+++ b/src/Specific/montgomery32_2e174m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e189m25/compiler.sh b/src/Specific/montgomery32_2e189m25/compiler.sh
index 518f95765..053f3fa23 100755
--- a/src/Specific/montgomery32_2e189m25/compiler.sh
+++ b/src/Specific/montgomery32_2e189m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e189m25/compilerxx.sh b/src/Specific/montgomery32_2e189m25/compilerxx.sh
new file mode 100755
index 000000000..8e1324fad
--- /dev/null
+++ b/src/Specific/montgomery32_2e189m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e190m11/compiler.sh b/src/Specific/montgomery32_2e190m11/compiler.sh
index 518f95765..e77e3a1b2 100755
--- a/src/Specific/montgomery32_2e190m11/compiler.sh
+++ b/src/Specific/montgomery32_2e190m11/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e190m11/compilerxx.sh b/src/Specific/montgomery32_2e190m11/compilerxx.sh
new file mode 100755
index 000000000..6d3725f7f
--- /dev/null
+++ b/src/Specific/montgomery32_2e190m11/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e191m19/compiler.sh b/src/Specific/montgomery32_2e191m19/compiler.sh
index 518f95765..68afe91df 100755
--- a/src/Specific/montgomery32_2e191m19/compiler.sh
+++ b/src/Specific/montgomery32_2e191m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e191m19/compilerxx.sh b/src/Specific/montgomery32_2e191m19/compilerxx.sh
new file mode 100755
index 000000000..891061b90
--- /dev/null
+++ b/src/Specific/montgomery32_2e191m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e192m2e64m1/compiler.sh b/src/Specific/montgomery32_2e192m2e64m1/compiler.sh
index 518f95765..c8c486579 100755
--- a/src/Specific/montgomery32_2e192m2e64m1/compiler.sh
+++ b/src/Specific/montgomery32_2e192m2e64m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e192m2e64m1/compilerxx.sh b/src/Specific/montgomery32_2e192m2e64m1/compilerxx.sh
new file mode 100755
index 000000000..09ba00566
--- /dev/null
+++ b/src/Specific/montgomery32_2e192m2e64m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e194m33/compiler.sh b/src/Specific/montgomery32_2e194m33/compiler.sh
index 518f95765..0c111fcf7 100755
--- a/src/Specific/montgomery32_2e194m33/compiler.sh
+++ b/src/Specific/montgomery32_2e194m33/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e194m33/compilerxx.sh b/src/Specific/montgomery32_2e194m33/compilerxx.sh
new file mode 100755
index 000000000..d1e370497
--- /dev/null
+++ b/src/Specific/montgomery32_2e194m33/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e196m15/compiler.sh b/src/Specific/montgomery32_2e196m15/compiler.sh
index 518f95765..6c4b1aec3 100755
--- a/src/Specific/montgomery32_2e196m15/compiler.sh
+++ b/src/Specific/montgomery32_2e196m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e196m15/compilerxx.sh b/src/Specific/montgomery32_2e196m15/compilerxx.sh
new file mode 100755
index 000000000..5cb6c3621
--- /dev/null
+++ b/src/Specific/montgomery32_2e196m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e198m17/compiler.sh b/src/Specific/montgomery32_2e198m17/compiler.sh
index 518f95765..e080646d2 100755
--- a/src/Specific/montgomery32_2e198m17/compiler.sh
+++ b/src/Specific/montgomery32_2e198m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e198m17/compilerxx.sh b/src/Specific/montgomery32_2e198m17/compilerxx.sh
new file mode 100755
index 000000000..e055f6819
--- /dev/null
+++ b/src/Specific/montgomery32_2e198m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e205m45x2e198m1/compiler.sh b/src/Specific/montgomery32_2e205m45x2e198m1/compiler.sh
index 518f95765..ccde5993d 100755
--- a/src/Specific/montgomery32_2e205m45x2e198m1/compiler.sh
+++ b/src/Specific/montgomery32_2e205m45x2e198m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e205m45x2e198m1/compilerxx.sh b/src/Specific/montgomery32_2e205m45x2e198m1/compilerxx.sh
new file mode 100755
index 000000000..5ab5c2039
--- /dev/null
+++ b/src/Specific/montgomery32_2e205m45x2e198m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e206m5/compiler.sh b/src/Specific/montgomery32_2e206m5/compiler.sh
index 518f95765..0d7cf263e 100755
--- a/src/Specific/montgomery32_2e206m5/compiler.sh
+++ b/src/Specific/montgomery32_2e206m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e206m5/compilerxx.sh b/src/Specific/montgomery32_2e206m5/compilerxx.sh
new file mode 100755
index 000000000..afe19ff03
--- /dev/null
+++ b/src/Specific/montgomery32_2e206m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e212m29/compiler.sh b/src/Specific/montgomery32_2e212m29/compiler.sh
index 518f95765..41624c5d0 100755
--- a/src/Specific/montgomery32_2e212m29/compiler.sh
+++ b/src/Specific/montgomery32_2e212m29/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e212m29/compilerxx.sh b/src/Specific/montgomery32_2e212m29/compilerxx.sh
new file mode 100755
index 000000000..0f6f55fef
--- /dev/null
+++ b/src/Specific/montgomery32_2e212m29/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e213m3/compiler.sh b/src/Specific/montgomery32_2e213m3/compiler.sh
index 518f95765..aad43d74f 100755
--- a/src/Specific/montgomery32_2e213m3/compiler.sh
+++ b/src/Specific/montgomery32_2e213m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e213m3/compilerxx.sh b/src/Specific/montgomery32_2e213m3/compilerxx.sh
new file mode 100755
index 000000000..058bf95ac
--- /dev/null
+++ b/src/Specific/montgomery32_2e213m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e216m2e108m1/compiler.sh b/src/Specific/montgomery32_2e216m2e108m1/compiler.sh
index 518f95765..b51f5c625 100755
--- a/src/Specific/montgomery32_2e216m2e108m1/compiler.sh
+++ b/src/Specific/montgomery32_2e216m2e108m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e216m2e108m1/compilerxx.sh b/src/Specific/montgomery32_2e216m2e108m1/compilerxx.sh
new file mode 100755
index 000000000..abf6fe8fa
--- /dev/null
+++ b/src/Specific/montgomery32_2e216m2e108m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e221m3/compiler.sh b/src/Specific/montgomery32_2e221m3/compiler.sh
index 518f95765..23da30789 100755
--- a/src/Specific/montgomery32_2e221m3/compiler.sh
+++ b/src/Specific/montgomery32_2e221m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e221m3/compilerxx.sh b/src/Specific/montgomery32_2e221m3/compilerxx.sh
new file mode 100755
index 000000000..310e9a51d
--- /dev/null
+++ b/src/Specific/montgomery32_2e221m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e222m117/compiler.sh b/src/Specific/montgomery32_2e222m117/compiler.sh
index 518f95765..1d42dd1cf 100755
--- a/src/Specific/montgomery32_2e222m117/compiler.sh
+++ b/src/Specific/montgomery32_2e222m117/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e222m117/compilerxx.sh b/src/Specific/montgomery32_2e222m117/compilerxx.sh
new file mode 100755
index 000000000..3f5efa48f
--- /dev/null
+++ b/src/Specific/montgomery32_2e222m117/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e224m2e96p1/compiler.sh b/src/Specific/montgomery32_2e224m2e96p1/compiler.sh
index 518f95765..65e186a52 100755
--- a/src/Specific/montgomery32_2e224m2e96p1/compiler.sh
+++ b/src/Specific/montgomery32_2e224m2e96p1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e224m2e96p1/compilerxx.sh b/src/Specific/montgomery32_2e224m2e96p1/compilerxx.sh
new file mode 100755
index 000000000..af79a4135
--- /dev/null
+++ b/src/Specific/montgomery32_2e224m2e96p1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e226m5/compiler.sh b/src/Specific/montgomery32_2e226m5/compiler.sh
index 518f95765..d8e0f847b 100755
--- a/src/Specific/montgomery32_2e226m5/compiler.sh
+++ b/src/Specific/montgomery32_2e226m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e226m5/compilerxx.sh b/src/Specific/montgomery32_2e226m5/compilerxx.sh
new file mode 100755
index 000000000..a4a4481c2
--- /dev/null
+++ b/src/Specific/montgomery32_2e226m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e230m27/compiler.sh b/src/Specific/montgomery32_2e230m27/compiler.sh
index 518f95765..de7e50ab0 100755
--- a/src/Specific/montgomery32_2e230m27/compiler.sh
+++ b/src/Specific/montgomery32_2e230m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e230m27/compilerxx.sh b/src/Specific/montgomery32_2e230m27/compilerxx.sh
new file mode 100755
index 000000000..ee3a4342e
--- /dev/null
+++ b/src/Specific/montgomery32_2e230m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e235m15/compiler.sh b/src/Specific/montgomery32_2e235m15/compiler.sh
index 518f95765..f7a80935a 100755
--- a/src/Specific/montgomery32_2e235m15/compiler.sh
+++ b/src/Specific/montgomery32_2e235m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e235m15/compilerxx.sh b/src/Specific/montgomery32_2e235m15/compilerxx.sh
new file mode 100755
index 000000000..7566cdd5e
--- /dev/null
+++ b/src/Specific/montgomery32_2e235m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e243m9/compiler.sh b/src/Specific/montgomery32_2e243m9/compiler.sh
index 518f95765..14d9665b4 100755
--- a/src/Specific/montgomery32_2e243m9/compiler.sh
+++ b/src/Specific/montgomery32_2e243m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e243m9/compilerxx.sh b/src/Specific/montgomery32_2e243m9/compilerxx.sh
new file mode 100755
index 000000000..26219d57d
--- /dev/null
+++ b/src/Specific/montgomery32_2e243m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e251m9/compiler.sh b/src/Specific/montgomery32_2e251m9/compiler.sh
index 518f95765..8c88c504a 100755
--- a/src/Specific/montgomery32_2e251m9/compiler.sh
+++ b/src/Specific/montgomery32_2e251m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e251m9/compilerxx.sh b/src/Specific/montgomery32_2e251m9/compilerxx.sh
new file mode 100755
index 000000000..58734a5d5
--- /dev/null
+++ b/src/Specific/montgomery32_2e251m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e254m127x2e240m1/compiler.sh b/src/Specific/montgomery32_2e254m127x2e240m1/compiler.sh
index 518f95765..cf8a6f62b 100755
--- a/src/Specific/montgomery32_2e254m127x2e240m1/compiler.sh
+++ b/src/Specific/montgomery32_2e254m127x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e254m127x2e240m1/compilerxx.sh b/src/Specific/montgomery32_2e254m127x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..a4fd824d1
--- /dev/null
+++ b/src/Specific/montgomery32_2e254m127x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e255m19/compiler.sh b/src/Specific/montgomery32_2e255m19/compiler.sh
index 518f95765..a7db29303 100755
--- a/src/Specific/montgomery32_2e255m19/compiler.sh
+++ b/src/Specific/montgomery32_2e255m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e255m19/compilerxx.sh b/src/Specific/montgomery32_2e255m19/compilerxx.sh
new file mode 100755
index 000000000..aabfae525
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e255m2e4m2e1m1/compiler.sh b/src/Specific/montgomery32_2e255m2e4m2e1m1/compiler.sh
index 518f95765..9bba973a9 100755
--- a/src/Specific/montgomery32_2e255m2e4m2e1m1/compiler.sh
+++ b/src/Specific/montgomery32_2e255m2e4m2e1m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e255m2e4m2e1m1/compilerxx.sh b/src/Specific/montgomery32_2e255m2e4m2e1m1/compilerxx.sh
new file mode 100755
index 000000000..9692c35ab
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m2e4m2e1m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e255m765/compiler.sh b/src/Specific/montgomery32_2e255m765/compiler.sh
index 518f95765..388ba36b8 100755
--- a/src/Specific/montgomery32_2e255m765/compiler.sh
+++ b/src/Specific/montgomery32_2e255m765/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e255m765/compilerxx.sh b/src/Specific/montgomery32_2e255m765/compilerxx.sh
new file mode 100755
index 000000000..09d6b3b2e
--- /dev/null
+++ b/src/Specific/montgomery32_2e255m765/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m189/compiler.sh b/src/Specific/montgomery32_2e256m189/compiler.sh
index 518f95765..19150964e 100755
--- a/src/Specific/montgomery32_2e256m189/compiler.sh
+++ b/src/Specific/montgomery32_2e256m189/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m189/compilerxx.sh b/src/Specific/montgomery32_2e256m189/compilerxx.sh
new file mode 100755
index 000000000..5cdb6670c
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m189/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compiler.sh b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compiler.sh
index 518f95765..b063afa0c 100755
--- a/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compiler.sh
+++ b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compilerxx.sh b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compilerxx.sh
new file mode 100755
index 000000000..b2d259fa3
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m2e224p2e192p2e96m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m2e32m977/compiler.sh b/src/Specific/montgomery32_2e256m2e32m977/compiler.sh
index 518f95765..66c2febcd 100755
--- a/src/Specific/montgomery32_2e256m2e32m977/compiler.sh
+++ b/src/Specific/montgomery32_2e256m2e32m977/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m2e32m977/compilerxx.sh b/src/Specific/montgomery32_2e256m2e32m977/compilerxx.sh
new file mode 100755
index 000000000..07eecf1da
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m2e32m977/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m88x2e240m1/compiler.sh b/src/Specific/montgomery32_2e256m88x2e240m1/compiler.sh
index 518f95765..20f55aefd 100755
--- a/src/Specific/montgomery32_2e256m88x2e240m1/compiler.sh
+++ b/src/Specific/montgomery32_2e256m88x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e256m88x2e240m1/compilerxx.sh b/src/Specific/montgomery32_2e256m88x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..81f204262
--- /dev/null
+++ b/src/Specific/montgomery32_2e256m88x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e266m3/compiler.sh b/src/Specific/montgomery32_2e266m3/compiler.sh
index 518f95765..f497525ec 100755
--- a/src/Specific/montgomery32_2e266m3/compiler.sh
+++ b/src/Specific/montgomery32_2e266m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e266m3/compilerxx.sh b/src/Specific/montgomery32_2e266m3/compilerxx.sh
new file mode 100755
index 000000000..496440fe2
--- /dev/null
+++ b/src/Specific/montgomery32_2e266m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e285m9/compiler.sh b/src/Specific/montgomery32_2e285m9/compiler.sh
index 518f95765..ce0b731c4 100755
--- a/src/Specific/montgomery32_2e285m9/compiler.sh
+++ b/src/Specific/montgomery32_2e285m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e285m9/compilerxx.sh b/src/Specific/montgomery32_2e285m9/compilerxx.sh
new file mode 100755
index 000000000..6aeb2eff3
--- /dev/null
+++ b/src/Specific/montgomery32_2e285m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e291m19/compiler.sh b/src/Specific/montgomery32_2e291m19/compiler.sh
index 518f95765..a0a36434d 100755
--- a/src/Specific/montgomery32_2e291m19/compiler.sh
+++ b/src/Specific/montgomery32_2e291m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e291m19/compilerxx.sh b/src/Specific/montgomery32_2e291m19/compilerxx.sh
new file mode 100755
index 000000000..f03711ede
--- /dev/null
+++ b/src/Specific/montgomery32_2e291m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e321m9/compiler.sh b/src/Specific/montgomery32_2e321m9/compiler.sh
index 518f95765..4e68d8ce8 100755
--- a/src/Specific/montgomery32_2e321m9/compiler.sh
+++ b/src/Specific/montgomery32_2e321m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e321m9/compilerxx.sh b/src/Specific/montgomery32_2e321m9/compilerxx.sh
new file mode 100755
index 000000000..bdbd04478
--- /dev/null
+++ b/src/Specific/montgomery32_2e321m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e322m2e161m1/compiler.sh b/src/Specific/montgomery32_2e322m2e161m1/compiler.sh
index 518f95765..89c6f6c82 100755
--- a/src/Specific/montgomery32_2e322m2e161m1/compiler.sh
+++ b/src/Specific/montgomery32_2e322m2e161m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e322m2e161m1/compilerxx.sh b/src/Specific/montgomery32_2e322m2e161m1/compilerxx.sh
new file mode 100755
index 000000000..cbd503987
--- /dev/null
+++ b/src/Specific/montgomery32_2e322m2e161m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e336m17/compiler.sh b/src/Specific/montgomery32_2e336m17/compiler.sh
index 518f95765..d09baa5c5 100755
--- a/src/Specific/montgomery32_2e336m17/compiler.sh
+++ b/src/Specific/montgomery32_2e336m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e336m17/compilerxx.sh b/src/Specific/montgomery32_2e336m17/compilerxx.sh
new file mode 100755
index 000000000..beb6ab0ec
--- /dev/null
+++ b/src/Specific/montgomery32_2e336m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e336m3/compiler.sh b/src/Specific/montgomery32_2e336m3/compiler.sh
index 518f95765..eda2777d1 100755
--- a/src/Specific/montgomery32_2e336m3/compiler.sh
+++ b/src/Specific/montgomery32_2e336m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e336m3/compilerxx.sh b/src/Specific/montgomery32_2e336m3/compilerxx.sh
new file mode 100755
index 000000000..5f0532b04
--- /dev/null
+++ b/src/Specific/montgomery32_2e336m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e338m15/compiler.sh b/src/Specific/montgomery32_2e338m15/compiler.sh
index 518f95765..af129fe96 100755
--- a/src/Specific/montgomery32_2e338m15/compiler.sh
+++ b/src/Specific/montgomery32_2e338m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e338m15/compilerxx.sh b/src/Specific/montgomery32_2e338m15/compilerxx.sh
new file mode 100755
index 000000000..1f2d953ff
--- /dev/null
+++ b/src/Specific/montgomery32_2e338m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e369m25/compiler.sh b/src/Specific/montgomery32_2e369m25/compiler.sh
index 518f95765..cc9e07e56 100755
--- a/src/Specific/montgomery32_2e369m25/compiler.sh
+++ b/src/Specific/montgomery32_2e369m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e369m25/compilerxx.sh b/src/Specific/montgomery32_2e369m25/compilerxx.sh
new file mode 100755
index 000000000..603817757
--- /dev/null
+++ b/src/Specific/montgomery32_2e369m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e379m19/compiler.sh b/src/Specific/montgomery32_2e379m19/compiler.sh
index 518f95765..3fe1a1f61 100755
--- a/src/Specific/montgomery32_2e379m19/compiler.sh
+++ b/src/Specific/montgomery32_2e379m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e379m19/compilerxx.sh b/src/Specific/montgomery32_2e379m19/compilerxx.sh
new file mode 100755
index 000000000..e688c5344
--- /dev/null
+++ b/src/Specific/montgomery32_2e379m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e382m105/compiler.sh b/src/Specific/montgomery32_2e382m105/compiler.sh
index 518f95765..cf7e1a64d 100755
--- a/src/Specific/montgomery32_2e382m105/compiler.sh
+++ b/src/Specific/montgomery32_2e382m105/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e382m105/compilerxx.sh b/src/Specific/montgomery32_2e382m105/compilerxx.sh
new file mode 100755
index 000000000..d7f7c00d1
--- /dev/null
+++ b/src/Specific/montgomery32_2e382m105/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e383m187/compiler.sh b/src/Specific/montgomery32_2e383m187/compiler.sh
index 518f95765..2b7994823 100755
--- a/src/Specific/montgomery32_2e383m187/compiler.sh
+++ b/src/Specific/montgomery32_2e383m187/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e383m187/compilerxx.sh b/src/Specific/montgomery32_2e383m187/compilerxx.sh
new file mode 100755
index 000000000..67cea5ce2
--- /dev/null
+++ b/src/Specific/montgomery32_2e383m187/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e383m31/compiler.sh b/src/Specific/montgomery32_2e383m31/compiler.sh
index 518f95765..4f1ce79ef 100755
--- a/src/Specific/montgomery32_2e383m31/compiler.sh
+++ b/src/Specific/montgomery32_2e383m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e383m31/compilerxx.sh b/src/Specific/montgomery32_2e383m31/compilerxx.sh
new file mode 100755
index 000000000..b0ad5da73
--- /dev/null
+++ b/src/Specific/montgomery32_2e383m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e383m421/compiler.sh b/src/Specific/montgomery32_2e383m421/compiler.sh
index 518f95765..d54ca17f3 100755
--- a/src/Specific/montgomery32_2e383m421/compiler.sh
+++ b/src/Specific/montgomery32_2e383m421/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e383m421/compilerxx.sh b/src/Specific/montgomery32_2e383m421/compilerxx.sh
new file mode 100755
index 000000000..763df0f7d
--- /dev/null
+++ b/src/Specific/montgomery32_2e383m421/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compiler.sh b/src/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compiler.sh
index 518f95765..376cd2989 100755
--- a/src/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compiler.sh
+++ b/src/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compilerxx.sh b/src/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compilerxx.sh
new file mode 100755
index 000000000..183d0a35f
--- /dev/null
+++ b/src/Specific/montgomery32_2e384m2e128m2e96p2e32m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m317/compiler.sh b/src/Specific/montgomery32_2e384m317/compiler.sh
index 518f95765..bee72de5a 100755
--- a/src/Specific/montgomery32_2e384m317/compiler.sh
+++ b/src/Specific/montgomery32_2e384m317/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m317/compilerxx.sh b/src/Specific/montgomery32_2e384m317/compilerxx.sh
new file mode 100755
index 000000000..8ca86c9c3
--- /dev/null
+++ b/src/Specific/montgomery32_2e384m317/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m5x2e368m1/compiler.sh b/src/Specific/montgomery32_2e384m5x2e368m1/compiler.sh
index 518f95765..1de59ee27 100755
--- a/src/Specific/montgomery32_2e384m5x2e368m1/compiler.sh
+++ b/src/Specific/montgomery32_2e384m5x2e368m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m5x2e368m1/compilerxx.sh b/src/Specific/montgomery32_2e384m5x2e368m1/compilerxx.sh
new file mode 100755
index 000000000..cf4251f2c
--- /dev/null
+++ b/src/Specific/montgomery32_2e384m5x2e368m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m79x2e376m1/compiler.sh b/src/Specific/montgomery32_2e384m79x2e376m1/compiler.sh
index 518f95765..7f3f2cfb3 100755
--- a/src/Specific/montgomery32_2e384m79x2e376m1/compiler.sh
+++ b/src/Specific/montgomery32_2e384m79x2e376m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e384m79x2e376m1/compilerxx.sh b/src/Specific/montgomery32_2e384m79x2e376m1/compilerxx.sh
new file mode 100755
index 000000000..cedf4b4d1
--- /dev/null
+++ b/src/Specific/montgomery32_2e384m79x2e376m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e389m21/compiler.sh b/src/Specific/montgomery32_2e389m21/compiler.sh
index 518f95765..03ed350ac 100755
--- a/src/Specific/montgomery32_2e389m21/compiler.sh
+++ b/src/Specific/montgomery32_2e389m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e389m21/compilerxx.sh b/src/Specific/montgomery32_2e389m21/compilerxx.sh
new file mode 100755
index 000000000..840b554d5
--- /dev/null
+++ b/src/Specific/montgomery32_2e389m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e401m31/compiler.sh b/src/Specific/montgomery32_2e401m31/compiler.sh
index 518f95765..3a9fddfa9 100755
--- a/src/Specific/montgomery32_2e401m31/compiler.sh
+++ b/src/Specific/montgomery32_2e401m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e401m31/compilerxx.sh b/src/Specific/montgomery32_2e401m31/compilerxx.sh
new file mode 100755
index 000000000..4a76dd5bd
--- /dev/null
+++ b/src/Specific/montgomery32_2e401m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e413m21/compiler.sh b/src/Specific/montgomery32_2e413m21/compiler.sh
index 518f95765..07173e907 100755
--- a/src/Specific/montgomery32_2e413m21/compiler.sh
+++ b/src/Specific/montgomery32_2e413m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e413m21/compilerxx.sh b/src/Specific/montgomery32_2e413m21/compilerxx.sh
new file mode 100755
index 000000000..62d03a7fc
--- /dev/null
+++ b/src/Specific/montgomery32_2e413m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e414m17/compiler.sh b/src/Specific/montgomery32_2e414m17/compiler.sh
index 518f95765..3ce30abac 100755
--- a/src/Specific/montgomery32_2e414m17/compiler.sh
+++ b/src/Specific/montgomery32_2e414m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e414m17/compilerxx.sh b/src/Specific/montgomery32_2e414m17/compilerxx.sh
new file mode 100755
index 000000000..200cbfe38
--- /dev/null
+++ b/src/Specific/montgomery32_2e414m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e416m2e208m1/compiler.sh b/src/Specific/montgomery32_2e416m2e208m1/compiler.sh
index 518f95765..708eb89fa 100755
--- a/src/Specific/montgomery32_2e416m2e208m1/compiler.sh
+++ b/src/Specific/montgomery32_2e416m2e208m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e416m2e208m1/compilerxx.sh b/src/Specific/montgomery32_2e416m2e208m1/compilerxx.sh
new file mode 100755
index 000000000..9263fcc01
--- /dev/null
+++ b/src/Specific/montgomery32_2e416m2e208m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e444m17/compiler.sh b/src/Specific/montgomery32_2e444m17/compiler.sh
index 518f95765..b28665aeb 100755
--- a/src/Specific/montgomery32_2e444m17/compiler.sh
+++ b/src/Specific/montgomery32_2e444m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e444m17/compilerxx.sh b/src/Specific/montgomery32_2e444m17/compilerxx.sh
new file mode 100755
index 000000000..7673af8e7
--- /dev/null
+++ b/src/Specific/montgomery32_2e444m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e448m2e224m1/compiler.sh b/src/Specific/montgomery32_2e448m2e224m1/compiler.sh
index 518f95765..2ba6471c1 100755
--- a/src/Specific/montgomery32_2e448m2e224m1/compiler.sh
+++ b/src/Specific/montgomery32_2e448m2e224m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e448m2e224m1/compilerxx.sh b/src/Specific/montgomery32_2e448m2e224m1/compilerxx.sh
new file mode 100755
index 000000000..4cee83a7d
--- /dev/null
+++ b/src/Specific/montgomery32_2e448m2e224m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e450m2e225m1/compiler.sh b/src/Specific/montgomery32_2e450m2e225m1/compiler.sh
index 518f95765..f776bb29d 100755
--- a/src/Specific/montgomery32_2e450m2e225m1/compiler.sh
+++ b/src/Specific/montgomery32_2e450m2e225m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e450m2e225m1/compilerxx.sh b/src/Specific/montgomery32_2e450m2e225m1/compilerxx.sh
new file mode 100755
index 000000000..2480dea9d
--- /dev/null
+++ b/src/Specific/montgomery32_2e450m2e225m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e452m3/compiler.sh b/src/Specific/montgomery32_2e452m3/compiler.sh
index 518f95765..34992a390 100755
--- a/src/Specific/montgomery32_2e452m3/compiler.sh
+++ b/src/Specific/montgomery32_2e452m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e452m3/compilerxx.sh b/src/Specific/montgomery32_2e452m3/compilerxx.sh
new file mode 100755
index 000000000..ed8eba2ff
--- /dev/null
+++ b/src/Specific/montgomery32_2e452m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e468m17/compiler.sh b/src/Specific/montgomery32_2e468m17/compiler.sh
index 518f95765..bbab69a4f 100755
--- a/src/Specific/montgomery32_2e468m17/compiler.sh
+++ b/src/Specific/montgomery32_2e468m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e468m17/compilerxx.sh b/src/Specific/montgomery32_2e468m17/compilerxx.sh
new file mode 100755
index 000000000..7cacbd80c
--- /dev/null
+++ b/src/Specific/montgomery32_2e468m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e480m2e240m1/compiler.sh b/src/Specific/montgomery32_2e480m2e240m1/compiler.sh
index 518f95765..370095d38 100755
--- a/src/Specific/montgomery32_2e480m2e240m1/compiler.sh
+++ b/src/Specific/montgomery32_2e480m2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e480m2e240m1/compilerxx.sh b/src/Specific/montgomery32_2e480m2e240m1/compilerxx.sh
new file mode 100755
index 000000000..e7416cd79
--- /dev/null
+++ b/src/Specific/montgomery32_2e480m2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e488m17/compiler.sh b/src/Specific/montgomery32_2e488m17/compiler.sh
index 518f95765..891f3a765 100755
--- a/src/Specific/montgomery32_2e488m17/compiler.sh
+++ b/src/Specific/montgomery32_2e488m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e488m17/compilerxx.sh b/src/Specific/montgomery32_2e488m17/compilerxx.sh
new file mode 100755
index 000000000..a3844ade4
--- /dev/null
+++ b/src/Specific/montgomery32_2e488m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e489m21/compiler.sh b/src/Specific/montgomery32_2e489m21/compiler.sh
index 518f95765..1b3f52fa1 100755
--- a/src/Specific/montgomery32_2e489m21/compiler.sh
+++ b/src/Specific/montgomery32_2e489m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e489m21/compilerxx.sh b/src/Specific/montgomery32_2e489m21/compilerxx.sh
new file mode 100755
index 000000000..2b1bf1b68
--- /dev/null
+++ b/src/Specific/montgomery32_2e489m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e495m31/compiler.sh b/src/Specific/montgomery32_2e495m31/compiler.sh
index 518f95765..c79d7ac85 100755
--- a/src/Specific/montgomery32_2e495m31/compiler.sh
+++ b/src/Specific/montgomery32_2e495m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e495m31/compilerxx.sh b/src/Specific/montgomery32_2e495m31/compilerxx.sh
new file mode 100755
index 000000000..d095aa8e6
--- /dev/null
+++ b/src/Specific/montgomery32_2e495m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e510m290x2e496m1/compiler.sh b/src/Specific/montgomery32_2e510m290x2e496m1/compiler.sh
index 518f95765..49ee82576 100755
--- a/src/Specific/montgomery32_2e510m290x2e496m1/compiler.sh
+++ b/src/Specific/montgomery32_2e510m290x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e510m290x2e496m1/compilerxx.sh b/src/Specific/montgomery32_2e510m290x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..5f9c33267
--- /dev/null
+++ b/src/Specific/montgomery32_2e510m290x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e511m187/compiler.sh b/src/Specific/montgomery32_2e511m187/compiler.sh
index 518f95765..08e31d7a7 100755
--- a/src/Specific/montgomery32_2e511m187/compiler.sh
+++ b/src/Specific/montgomery32_2e511m187/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e511m187/compilerxx.sh b/src/Specific/montgomery32_2e511m187/compilerxx.sh
new file mode 100755
index 000000000..1d966040c
--- /dev/null
+++ b/src/Specific/montgomery32_2e511m187/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e511m481/compiler.sh b/src/Specific/montgomery32_2e511m481/compiler.sh
index 518f95765..fdafb5f74 100755
--- a/src/Specific/montgomery32_2e511m481/compiler.sh
+++ b/src/Specific/montgomery32_2e511m481/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e511m481/compilerxx.sh b/src/Specific/montgomery32_2e511m481/compilerxx.sh
new file mode 100755
index 000000000..e68e25811
--- /dev/null
+++ b/src/Specific/montgomery32_2e511m481/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e512m491x2e496m1/compiler.sh b/src/Specific/montgomery32_2e512m491x2e496m1/compiler.sh
index 518f95765..04f4a747b 100755
--- a/src/Specific/montgomery32_2e512m491x2e496m1/compiler.sh
+++ b/src/Specific/montgomery32_2e512m491x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e512m491x2e496m1/compilerxx.sh b/src/Specific/montgomery32_2e512m491x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..d90063c4a
--- /dev/null
+++ b/src/Specific/montgomery32_2e512m491x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e512m569/compiler.sh b/src/Specific/montgomery32_2e512m569/compiler.sh
index 518f95765..df05a9fb6 100755
--- a/src/Specific/montgomery32_2e512m569/compiler.sh
+++ b/src/Specific/montgomery32_2e512m569/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e512m569/compilerxx.sh b/src/Specific/montgomery32_2e512m569/compilerxx.sh
new file mode 100755
index 000000000..94f179d0f
--- /dev/null
+++ b/src/Specific/montgomery32_2e512m569/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e521m1/compiler.sh b/src/Specific/montgomery32_2e521m1/compiler.sh
index 518f95765..a3b51cf31 100755
--- a/src/Specific/montgomery32_2e521m1/compiler.sh
+++ b/src/Specific/montgomery32_2e521m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery32_2e521m1/compilerxx.sh b/src/Specific/montgomery32_2e521m1/compilerxx.sh
new file mode 100755
index 000000000..003fcdac9
--- /dev/null
+++ b/src/Specific/montgomery32_2e521m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='32' "$@"
diff --git a/src/Specific/montgomery64_2e127m1/compiler.sh b/src/Specific/montgomery64_2e127m1/compiler.sh
index 518f95765..6f3901a8a 100755
--- a/src/Specific/montgomery64_2e127m1/compiler.sh
+++ b/src/Specific/montgomery64_2e127m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e127m1/compilerxx.sh b/src/Specific/montgomery64_2e127m1/compilerxx.sh
new file mode 100755
index 000000000..04d592d43
--- /dev/null
+++ b/src/Specific/montgomery64_2e127m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e129m25/compiler.sh b/src/Specific/montgomery64_2e129m25/compiler.sh
index 518f95765..27c508b51 100755
--- a/src/Specific/montgomery64_2e129m25/compiler.sh
+++ b/src/Specific/montgomery64_2e129m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e129m25/compilerxx.sh b/src/Specific/montgomery64_2e129m25/compilerxx.sh
new file mode 100755
index 000000000..a3fc26404
--- /dev/null
+++ b/src/Specific/montgomery64_2e129m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e130m5/compiler.sh b/src/Specific/montgomery64_2e130m5/compiler.sh
index 518f95765..12f6918b0 100755
--- a/src/Specific/montgomery64_2e130m5/compiler.sh
+++ b/src/Specific/montgomery64_2e130m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e130m5/compilerxx.sh b/src/Specific/montgomery64_2e130m5/compilerxx.sh
new file mode 100755
index 000000000..9bf2ae348
--- /dev/null
+++ b/src/Specific/montgomery64_2e130m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e137m13/compiler.sh b/src/Specific/montgomery64_2e137m13/compiler.sh
index 518f95765..af22a5533 100755
--- a/src/Specific/montgomery64_2e137m13/compiler.sh
+++ b/src/Specific/montgomery64_2e137m13/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e137m13/compilerxx.sh b/src/Specific/montgomery64_2e137m13/compilerxx.sh
new file mode 100755
index 000000000..0db724973
--- /dev/null
+++ b/src/Specific/montgomery64_2e137m13/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e140m27/compiler.sh b/src/Specific/montgomery64_2e140m27/compiler.sh
index 518f95765..a8421352a 100755
--- a/src/Specific/montgomery64_2e140m27/compiler.sh
+++ b/src/Specific/montgomery64_2e140m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e140m27/compilerxx.sh b/src/Specific/montgomery64_2e140m27/compilerxx.sh
new file mode 100755
index 000000000..9b77d86d5
--- /dev/null
+++ b/src/Specific/montgomery64_2e140m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e141m9/compiler.sh b/src/Specific/montgomery64_2e141m9/compiler.sh
index 518f95765..bf80e843d 100755
--- a/src/Specific/montgomery64_2e141m9/compiler.sh
+++ b/src/Specific/montgomery64_2e141m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e141m9/compilerxx.sh b/src/Specific/montgomery64_2e141m9/compilerxx.sh
new file mode 100755
index 000000000..51edac906
--- /dev/null
+++ b/src/Specific/montgomery64_2e141m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e150m3/compiler.sh b/src/Specific/montgomery64_2e150m3/compiler.sh
index 518f95765..be9b4ed47 100755
--- a/src/Specific/montgomery64_2e150m3/compiler.sh
+++ b/src/Specific/montgomery64_2e150m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e150m3/compilerxx.sh b/src/Specific/montgomery64_2e150m3/compilerxx.sh
new file mode 100755
index 000000000..d051afb5f
--- /dev/null
+++ b/src/Specific/montgomery64_2e150m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e150m5/compiler.sh b/src/Specific/montgomery64_2e150m5/compiler.sh
index 518f95765..c373e100e 100755
--- a/src/Specific/montgomery64_2e150m5/compiler.sh
+++ b/src/Specific/montgomery64_2e150m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e150m5/compilerxx.sh b/src/Specific/montgomery64_2e150m5/compilerxx.sh
new file mode 100755
index 000000000..6b0fe6198
--- /dev/null
+++ b/src/Specific/montgomery64_2e150m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e152m17/compiler.sh b/src/Specific/montgomery64_2e152m17/compiler.sh
index 518f95765..85105bac0 100755
--- a/src/Specific/montgomery64_2e152m17/compiler.sh
+++ b/src/Specific/montgomery64_2e152m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e152m17/compilerxx.sh b/src/Specific/montgomery64_2e152m17/compilerxx.sh
new file mode 100755
index 000000000..cee358780
--- /dev/null
+++ b/src/Specific/montgomery64_2e152m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e158m15/compiler.sh b/src/Specific/montgomery64_2e158m15/compiler.sh
index 518f95765..b8a383a53 100755
--- a/src/Specific/montgomery64_2e158m15/compiler.sh
+++ b/src/Specific/montgomery64_2e158m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e158m15/compilerxx.sh b/src/Specific/montgomery64_2e158m15/compilerxx.sh
new file mode 100755
index 000000000..a7c8da82c
--- /dev/null
+++ b/src/Specific/montgomery64_2e158m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e165m25/compiler.sh b/src/Specific/montgomery64_2e165m25/compiler.sh
index 518f95765..7e4449c1c 100755
--- a/src/Specific/montgomery64_2e165m25/compiler.sh
+++ b/src/Specific/montgomery64_2e165m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e165m25/compilerxx.sh b/src/Specific/montgomery64_2e165m25/compilerxx.sh
new file mode 100755
index 000000000..600c75f8c
--- /dev/null
+++ b/src/Specific/montgomery64_2e165m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e166m5/compiler.sh b/src/Specific/montgomery64_2e166m5/compiler.sh
index 518f95765..25446cf85 100755
--- a/src/Specific/montgomery64_2e166m5/compiler.sh
+++ b/src/Specific/montgomery64_2e166m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e166m5/compilerxx.sh b/src/Specific/montgomery64_2e166m5/compilerxx.sh
new file mode 100755
index 000000000..df9bcad9d
--- /dev/null
+++ b/src/Specific/montgomery64_2e166m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e171m19/compiler.sh b/src/Specific/montgomery64_2e171m19/compiler.sh
index 518f95765..a90dbab3d 100755
--- a/src/Specific/montgomery64_2e171m19/compiler.sh
+++ b/src/Specific/montgomery64_2e171m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e171m19/compilerxx.sh b/src/Specific/montgomery64_2e171m19/compilerxx.sh
new file mode 100755
index 000000000..433db1899
--- /dev/null
+++ b/src/Specific/montgomery64_2e171m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e174m17/compiler.sh b/src/Specific/montgomery64_2e174m17/compiler.sh
index 518f95765..6d6f05a0e 100755
--- a/src/Specific/montgomery64_2e174m17/compiler.sh
+++ b/src/Specific/montgomery64_2e174m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e174m17/compilerxx.sh b/src/Specific/montgomery64_2e174m17/compilerxx.sh
new file mode 100755
index 000000000..56df0b83d
--- /dev/null
+++ b/src/Specific/montgomery64_2e174m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e174m3/compiler.sh b/src/Specific/montgomery64_2e174m3/compiler.sh
index 518f95765..17a9ff0fc 100755
--- a/src/Specific/montgomery64_2e174m3/compiler.sh
+++ b/src/Specific/montgomery64_2e174m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e174m3/compilerxx.sh b/src/Specific/montgomery64_2e174m3/compilerxx.sh
new file mode 100755
index 000000000..36e72e469
--- /dev/null
+++ b/src/Specific/montgomery64_2e174m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e189m25/compiler.sh b/src/Specific/montgomery64_2e189m25/compiler.sh
index 518f95765..0a1ea928d 100755
--- a/src/Specific/montgomery64_2e189m25/compiler.sh
+++ b/src/Specific/montgomery64_2e189m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e189m25/compilerxx.sh b/src/Specific/montgomery64_2e189m25/compilerxx.sh
new file mode 100755
index 000000000..77732a0d7
--- /dev/null
+++ b/src/Specific/montgomery64_2e189m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e190m11/compiler.sh b/src/Specific/montgomery64_2e190m11/compiler.sh
index 518f95765..4c1a16a69 100755
--- a/src/Specific/montgomery64_2e190m11/compiler.sh
+++ b/src/Specific/montgomery64_2e190m11/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e190m11/compilerxx.sh b/src/Specific/montgomery64_2e190m11/compilerxx.sh
new file mode 100755
index 000000000..3c2f25889
--- /dev/null
+++ b/src/Specific/montgomery64_2e190m11/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e191m19/compiler.sh b/src/Specific/montgomery64_2e191m19/compiler.sh
index 518f95765..9fdfceeeb 100755
--- a/src/Specific/montgomery64_2e191m19/compiler.sh
+++ b/src/Specific/montgomery64_2e191m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e191m19/compilerxx.sh b/src/Specific/montgomery64_2e191m19/compilerxx.sh
new file mode 100755
index 000000000..f4696c32b
--- /dev/null
+++ b/src/Specific/montgomery64_2e191m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e192m2e64m1/compiler.sh b/src/Specific/montgomery64_2e192m2e64m1/compiler.sh
index 518f95765..52b953d5b 100755
--- a/src/Specific/montgomery64_2e192m2e64m1/compiler.sh
+++ b/src/Specific/montgomery64_2e192m2e64m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e192m2e64m1/compilerxx.sh b/src/Specific/montgomery64_2e192m2e64m1/compilerxx.sh
new file mode 100755
index 000000000..4fede0f87
--- /dev/null
+++ b/src/Specific/montgomery64_2e192m2e64m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e194m33/compiler.sh b/src/Specific/montgomery64_2e194m33/compiler.sh
index 518f95765..bc5909d1d 100755
--- a/src/Specific/montgomery64_2e194m33/compiler.sh
+++ b/src/Specific/montgomery64_2e194m33/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e194m33/compilerxx.sh b/src/Specific/montgomery64_2e194m33/compilerxx.sh
new file mode 100755
index 000000000..afe98221a
--- /dev/null
+++ b/src/Specific/montgomery64_2e194m33/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e196m15/compiler.sh b/src/Specific/montgomery64_2e196m15/compiler.sh
index 518f95765..3e408f93c 100755
--- a/src/Specific/montgomery64_2e196m15/compiler.sh
+++ b/src/Specific/montgomery64_2e196m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e196m15/compilerxx.sh b/src/Specific/montgomery64_2e196m15/compilerxx.sh
new file mode 100755
index 000000000..cde46ffed
--- /dev/null
+++ b/src/Specific/montgomery64_2e196m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e198m17/compiler.sh b/src/Specific/montgomery64_2e198m17/compiler.sh
index 518f95765..1aa454c63 100755
--- a/src/Specific/montgomery64_2e198m17/compiler.sh
+++ b/src/Specific/montgomery64_2e198m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e198m17/compilerxx.sh b/src/Specific/montgomery64_2e198m17/compilerxx.sh
new file mode 100755
index 000000000..4f7962780
--- /dev/null
+++ b/src/Specific/montgomery64_2e198m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e205m45x2e198m1/compiler.sh b/src/Specific/montgomery64_2e205m45x2e198m1/compiler.sh
index 518f95765..fa0ab401c 100755
--- a/src/Specific/montgomery64_2e205m45x2e198m1/compiler.sh
+++ b/src/Specific/montgomery64_2e205m45x2e198m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e205m45x2e198m1/compilerxx.sh b/src/Specific/montgomery64_2e205m45x2e198m1/compilerxx.sh
new file mode 100755
index 000000000..1f6954483
--- /dev/null
+++ b/src/Specific/montgomery64_2e205m45x2e198m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e206m5/compiler.sh b/src/Specific/montgomery64_2e206m5/compiler.sh
index 518f95765..2d8c15490 100755
--- a/src/Specific/montgomery64_2e206m5/compiler.sh
+++ b/src/Specific/montgomery64_2e206m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e206m5/compilerxx.sh b/src/Specific/montgomery64_2e206m5/compilerxx.sh
new file mode 100755
index 000000000..5b53c275d
--- /dev/null
+++ b/src/Specific/montgomery64_2e206m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e212m29/compiler.sh b/src/Specific/montgomery64_2e212m29/compiler.sh
index 518f95765..202ac600e 100755
--- a/src/Specific/montgomery64_2e212m29/compiler.sh
+++ b/src/Specific/montgomery64_2e212m29/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e212m29/compilerxx.sh b/src/Specific/montgomery64_2e212m29/compilerxx.sh
new file mode 100755
index 000000000..bba6d3923
--- /dev/null
+++ b/src/Specific/montgomery64_2e212m29/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e213m3/compiler.sh b/src/Specific/montgomery64_2e213m3/compiler.sh
index 518f95765..7ad38a5f8 100755
--- a/src/Specific/montgomery64_2e213m3/compiler.sh
+++ b/src/Specific/montgomery64_2e213m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e213m3/compilerxx.sh b/src/Specific/montgomery64_2e213m3/compilerxx.sh
new file mode 100755
index 000000000..a0d56f099
--- /dev/null
+++ b/src/Specific/montgomery64_2e213m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e216m2e108m1/compiler.sh b/src/Specific/montgomery64_2e216m2e108m1/compiler.sh
index 518f95765..a43aa3aa8 100755
--- a/src/Specific/montgomery64_2e216m2e108m1/compiler.sh
+++ b/src/Specific/montgomery64_2e216m2e108m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e216m2e108m1/compilerxx.sh b/src/Specific/montgomery64_2e216m2e108m1/compilerxx.sh
new file mode 100755
index 000000000..02ad5d743
--- /dev/null
+++ b/src/Specific/montgomery64_2e216m2e108m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e221m3/compiler.sh b/src/Specific/montgomery64_2e221m3/compiler.sh
index 518f95765..855f7eac6 100755
--- a/src/Specific/montgomery64_2e221m3/compiler.sh
+++ b/src/Specific/montgomery64_2e221m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e221m3/compilerxx.sh b/src/Specific/montgomery64_2e221m3/compilerxx.sh
new file mode 100755
index 000000000..a76fcb757
--- /dev/null
+++ b/src/Specific/montgomery64_2e221m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e222m117/compiler.sh b/src/Specific/montgomery64_2e222m117/compiler.sh
index 518f95765..2ddee636a 100755
--- a/src/Specific/montgomery64_2e222m117/compiler.sh
+++ b/src/Specific/montgomery64_2e222m117/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e222m117/compilerxx.sh b/src/Specific/montgomery64_2e222m117/compilerxx.sh
new file mode 100755
index 000000000..1ba73b784
--- /dev/null
+++ b/src/Specific/montgomery64_2e222m117/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e224m2e96p1/compiler.sh b/src/Specific/montgomery64_2e224m2e96p1/compiler.sh
index 518f95765..8011e4362 100755
--- a/src/Specific/montgomery64_2e224m2e96p1/compiler.sh
+++ b/src/Specific/montgomery64_2e224m2e96p1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e224m2e96p1/compilerxx.sh b/src/Specific/montgomery64_2e224m2e96p1/compilerxx.sh
new file mode 100755
index 000000000..712c8010c
--- /dev/null
+++ b/src/Specific/montgomery64_2e224m2e96p1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e226m5/compiler.sh b/src/Specific/montgomery64_2e226m5/compiler.sh
index 518f95765..b2a8f49ff 100755
--- a/src/Specific/montgomery64_2e226m5/compiler.sh
+++ b/src/Specific/montgomery64_2e226m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e226m5/compilerxx.sh b/src/Specific/montgomery64_2e226m5/compilerxx.sh
new file mode 100755
index 000000000..7cae82da5
--- /dev/null
+++ b/src/Specific/montgomery64_2e226m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e230m27/compiler.sh b/src/Specific/montgomery64_2e230m27/compiler.sh
index 518f95765..98bc89e52 100755
--- a/src/Specific/montgomery64_2e230m27/compiler.sh
+++ b/src/Specific/montgomery64_2e230m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e230m27/compilerxx.sh b/src/Specific/montgomery64_2e230m27/compilerxx.sh
new file mode 100755
index 000000000..c808b2152
--- /dev/null
+++ b/src/Specific/montgomery64_2e230m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e235m15/compiler.sh b/src/Specific/montgomery64_2e235m15/compiler.sh
index 518f95765..a30fe443c 100755
--- a/src/Specific/montgomery64_2e235m15/compiler.sh
+++ b/src/Specific/montgomery64_2e235m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e235m15/compilerxx.sh b/src/Specific/montgomery64_2e235m15/compilerxx.sh
new file mode 100755
index 000000000..b964fb078
--- /dev/null
+++ b/src/Specific/montgomery64_2e235m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e243m9/compiler.sh b/src/Specific/montgomery64_2e243m9/compiler.sh
index 518f95765..71031d699 100755
--- a/src/Specific/montgomery64_2e243m9/compiler.sh
+++ b/src/Specific/montgomery64_2e243m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e243m9/compilerxx.sh b/src/Specific/montgomery64_2e243m9/compilerxx.sh
new file mode 100755
index 000000000..fb3586b42
--- /dev/null
+++ b/src/Specific/montgomery64_2e243m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e251m9/compiler.sh b/src/Specific/montgomery64_2e251m9/compiler.sh
index 518f95765..ffe890273 100755
--- a/src/Specific/montgomery64_2e251m9/compiler.sh
+++ b/src/Specific/montgomery64_2e251m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e251m9/compilerxx.sh b/src/Specific/montgomery64_2e251m9/compilerxx.sh
new file mode 100755
index 000000000..7d37b83fc
--- /dev/null
+++ b/src/Specific/montgomery64_2e251m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e254m127x2e240m1/compiler.sh b/src/Specific/montgomery64_2e254m127x2e240m1/compiler.sh
index 518f95765..512ff3f89 100755
--- a/src/Specific/montgomery64_2e254m127x2e240m1/compiler.sh
+++ b/src/Specific/montgomery64_2e254m127x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e254m127x2e240m1/compilerxx.sh b/src/Specific/montgomery64_2e254m127x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..c3a06ad8a
--- /dev/null
+++ b/src/Specific/montgomery64_2e254m127x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e255m19/compiler.sh b/src/Specific/montgomery64_2e255m19/compiler.sh
index 518f95765..8f3f3319f 100755
--- a/src/Specific/montgomery64_2e255m19/compiler.sh
+++ b/src/Specific/montgomery64_2e255m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e255m19/compilerxx.sh b/src/Specific/montgomery64_2e255m19/compilerxx.sh
new file mode 100755
index 000000000..14110c772
--- /dev/null
+++ b/src/Specific/montgomery64_2e255m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e255m2e4m2e1m1/compiler.sh b/src/Specific/montgomery64_2e255m2e4m2e1m1/compiler.sh
index 518f95765..37d0aaae0 100755
--- a/src/Specific/montgomery64_2e255m2e4m2e1m1/compiler.sh
+++ b/src/Specific/montgomery64_2e255m2e4m2e1m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e255m2e4m2e1m1/compilerxx.sh b/src/Specific/montgomery64_2e255m2e4m2e1m1/compilerxx.sh
new file mode 100755
index 000000000..4c70d1775
--- /dev/null
+++ b/src/Specific/montgomery64_2e255m2e4m2e1m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e255m765/compiler.sh b/src/Specific/montgomery64_2e255m765/compiler.sh
index 518f95765..a0bc86fb5 100755
--- a/src/Specific/montgomery64_2e255m765/compiler.sh
+++ b/src/Specific/montgomery64_2e255m765/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e255m765/compilerxx.sh b/src/Specific/montgomery64_2e255m765/compilerxx.sh
new file mode 100755
index 000000000..20fc272eb
--- /dev/null
+++ b/src/Specific/montgomery64_2e255m765/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m189/compiler.sh b/src/Specific/montgomery64_2e256m189/compiler.sh
index 518f95765..607527817 100755
--- a/src/Specific/montgomery64_2e256m189/compiler.sh
+++ b/src/Specific/montgomery64_2e256m189/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m189/compilerxx.sh b/src/Specific/montgomery64_2e256m189/compilerxx.sh
new file mode 100755
index 000000000..f70094248
--- /dev/null
+++ b/src/Specific/montgomery64_2e256m189/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compiler.sh b/src/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compiler.sh
index 518f95765..db2329f76 100755
--- a/src/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compiler.sh
+++ b/src/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compilerxx.sh b/src/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compilerxx.sh
new file mode 100755
index 000000000..c98b685c7
--- /dev/null
+++ b/src/Specific/montgomery64_2e256m2e224p2e192p2e96m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m2e32m977/compiler.sh b/src/Specific/montgomery64_2e256m2e32m977/compiler.sh
index 518f95765..d5c9ed77f 100755
--- a/src/Specific/montgomery64_2e256m2e32m977/compiler.sh
+++ b/src/Specific/montgomery64_2e256m2e32m977/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m2e32m977/compilerxx.sh b/src/Specific/montgomery64_2e256m2e32m977/compilerxx.sh
new file mode 100755
index 000000000..aa61f5fa7
--- /dev/null
+++ b/src/Specific/montgomery64_2e256m2e32m977/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m88x2e240m1/compiler.sh b/src/Specific/montgomery64_2e256m88x2e240m1/compiler.sh
index 518f95765..507fb3aaa 100755
--- a/src/Specific/montgomery64_2e256m88x2e240m1/compiler.sh
+++ b/src/Specific/montgomery64_2e256m88x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e256m88x2e240m1/compilerxx.sh b/src/Specific/montgomery64_2e256m88x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..fe5e3ab83
--- /dev/null
+++ b/src/Specific/montgomery64_2e256m88x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e266m3/compiler.sh b/src/Specific/montgomery64_2e266m3/compiler.sh
index 518f95765..e9e0a7454 100755
--- a/src/Specific/montgomery64_2e266m3/compiler.sh
+++ b/src/Specific/montgomery64_2e266m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e266m3/compilerxx.sh b/src/Specific/montgomery64_2e266m3/compilerxx.sh
new file mode 100755
index 000000000..9d33fd229
--- /dev/null
+++ b/src/Specific/montgomery64_2e266m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e285m9/compiler.sh b/src/Specific/montgomery64_2e285m9/compiler.sh
index 518f95765..1496d4e66 100755
--- a/src/Specific/montgomery64_2e285m9/compiler.sh
+++ b/src/Specific/montgomery64_2e285m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e285m9/compilerxx.sh b/src/Specific/montgomery64_2e285m9/compilerxx.sh
new file mode 100755
index 000000000..67310c0ec
--- /dev/null
+++ b/src/Specific/montgomery64_2e285m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e291m19/compiler.sh b/src/Specific/montgomery64_2e291m19/compiler.sh
index 518f95765..de115b447 100755
--- a/src/Specific/montgomery64_2e291m19/compiler.sh
+++ b/src/Specific/montgomery64_2e291m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e291m19/compilerxx.sh b/src/Specific/montgomery64_2e291m19/compilerxx.sh
new file mode 100755
index 000000000..1dd7a170a
--- /dev/null
+++ b/src/Specific/montgomery64_2e291m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e321m9/compiler.sh b/src/Specific/montgomery64_2e321m9/compiler.sh
index 518f95765..5bf61283e 100755
--- a/src/Specific/montgomery64_2e321m9/compiler.sh
+++ b/src/Specific/montgomery64_2e321m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e321m9/compilerxx.sh b/src/Specific/montgomery64_2e321m9/compilerxx.sh
new file mode 100755
index 000000000..13dc57b21
--- /dev/null
+++ b/src/Specific/montgomery64_2e321m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e322m2e161m1/compiler.sh b/src/Specific/montgomery64_2e322m2e161m1/compiler.sh
index 518f95765..306fced44 100755
--- a/src/Specific/montgomery64_2e322m2e161m1/compiler.sh
+++ b/src/Specific/montgomery64_2e322m2e161m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e322m2e161m1/compilerxx.sh b/src/Specific/montgomery64_2e322m2e161m1/compilerxx.sh
new file mode 100755
index 000000000..381e88458
--- /dev/null
+++ b/src/Specific/montgomery64_2e322m2e161m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e336m17/compiler.sh b/src/Specific/montgomery64_2e336m17/compiler.sh
index 518f95765..1f2d3b082 100755
--- a/src/Specific/montgomery64_2e336m17/compiler.sh
+++ b/src/Specific/montgomery64_2e336m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e336m17/compilerxx.sh b/src/Specific/montgomery64_2e336m17/compilerxx.sh
new file mode 100755
index 000000000..b636da27f
--- /dev/null
+++ b/src/Specific/montgomery64_2e336m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e336m3/compiler.sh b/src/Specific/montgomery64_2e336m3/compiler.sh
index 518f95765..a49af9610 100755
--- a/src/Specific/montgomery64_2e336m3/compiler.sh
+++ b/src/Specific/montgomery64_2e336m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e336m3/compilerxx.sh b/src/Specific/montgomery64_2e336m3/compilerxx.sh
new file mode 100755
index 000000000..a6df49809
--- /dev/null
+++ b/src/Specific/montgomery64_2e336m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e338m15/compiler.sh b/src/Specific/montgomery64_2e338m15/compiler.sh
index 518f95765..a27a8cb4b 100755
--- a/src/Specific/montgomery64_2e338m15/compiler.sh
+++ b/src/Specific/montgomery64_2e338m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e338m15/compilerxx.sh b/src/Specific/montgomery64_2e338m15/compilerxx.sh
new file mode 100755
index 000000000..7aef3153d
--- /dev/null
+++ b/src/Specific/montgomery64_2e338m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e369m25/compiler.sh b/src/Specific/montgomery64_2e369m25/compiler.sh
index 518f95765..838116c89 100755
--- a/src/Specific/montgomery64_2e369m25/compiler.sh
+++ b/src/Specific/montgomery64_2e369m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e369m25/compilerxx.sh b/src/Specific/montgomery64_2e369m25/compilerxx.sh
new file mode 100755
index 000000000..dbd26db38
--- /dev/null
+++ b/src/Specific/montgomery64_2e369m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e379m19/compiler.sh b/src/Specific/montgomery64_2e379m19/compiler.sh
index 518f95765..aeacc4959 100755
--- a/src/Specific/montgomery64_2e379m19/compiler.sh
+++ b/src/Specific/montgomery64_2e379m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e379m19/compilerxx.sh b/src/Specific/montgomery64_2e379m19/compilerxx.sh
new file mode 100755
index 000000000..9f1a19322
--- /dev/null
+++ b/src/Specific/montgomery64_2e379m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e382m105/compiler.sh b/src/Specific/montgomery64_2e382m105/compiler.sh
index 518f95765..8b82ee991 100755
--- a/src/Specific/montgomery64_2e382m105/compiler.sh
+++ b/src/Specific/montgomery64_2e382m105/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e382m105/compilerxx.sh b/src/Specific/montgomery64_2e382m105/compilerxx.sh
new file mode 100755
index 000000000..5bf006c42
--- /dev/null
+++ b/src/Specific/montgomery64_2e382m105/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e383m187/compiler.sh b/src/Specific/montgomery64_2e383m187/compiler.sh
index 518f95765..2ef8a6670 100755
--- a/src/Specific/montgomery64_2e383m187/compiler.sh
+++ b/src/Specific/montgomery64_2e383m187/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e383m187/compilerxx.sh b/src/Specific/montgomery64_2e383m187/compilerxx.sh
new file mode 100755
index 000000000..3a1e58b6a
--- /dev/null
+++ b/src/Specific/montgomery64_2e383m187/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 187' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e383m31/compiler.sh b/src/Specific/montgomery64_2e383m31/compiler.sh
index 518f95765..6a3c6e6a9 100755
--- a/src/Specific/montgomery64_2e383m31/compiler.sh
+++ b/src/Specific/montgomery64_2e383m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e383m31/compilerxx.sh b/src/Specific/montgomery64_2e383m31/compilerxx.sh
new file mode 100755
index 000000000..5db528545
--- /dev/null
+++ b/src/Specific/montgomery64_2e383m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 31' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e383m421/compiler.sh b/src/Specific/montgomery64_2e383m421/compiler.sh
index 518f95765..6e45fe19a 100755
--- a/src/Specific/montgomery64_2e383m421/compiler.sh
+++ b/src/Specific/montgomery64_2e383m421/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e383m421/compilerxx.sh b/src/Specific/montgomery64_2e383m421/compilerxx.sh
new file mode 100755
index 000000000..f5287d917
--- /dev/null
+++ b/src/Specific/montgomery64_2e383m421/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<383) - 421' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compiler.sh b/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compiler.sh
index 518f95765..5e6ee181f 100755
--- a/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compiler.sh
+++ b/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compilerxx.sh b/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compilerxx.sh
new file mode 100755
index 000000000..a8bb95e00
--- /dev/null
+++ b/src/Specific/montgomery64_2e384m2e128m2e96p2e32m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m317/compiler.sh b/src/Specific/montgomery64_2e384m317/compiler.sh
index 518f95765..53301dcfa 100755
--- a/src/Specific/montgomery64_2e384m317/compiler.sh
+++ b/src/Specific/montgomery64_2e384m317/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m317/compilerxx.sh b/src/Specific/montgomery64_2e384m317/compilerxx.sh
new file mode 100755
index 000000000..f6c411930
--- /dev/null
+++ b/src/Specific/montgomery64_2e384m317/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m5x2e368m1/compiler.sh b/src/Specific/montgomery64_2e384m5x2e368m1/compiler.sh
index 518f95765..0af2c2c58 100755
--- a/src/Specific/montgomery64_2e384m5x2e368m1/compiler.sh
+++ b/src/Specific/montgomery64_2e384m5x2e368m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m5x2e368m1/compilerxx.sh b/src/Specific/montgomery64_2e384m5x2e368m1/compilerxx.sh
new file mode 100755
index 000000000..049ce5bb7
--- /dev/null
+++ b/src/Specific/montgomery64_2e384m5x2e368m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m79x2e376m1/compiler.sh b/src/Specific/montgomery64_2e384m79x2e376m1/compiler.sh
index 518f95765..dd9e295aa 100755
--- a/src/Specific/montgomery64_2e384m79x2e376m1/compiler.sh
+++ b/src/Specific/montgomery64_2e384m79x2e376m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e384m79x2e376m1/compilerxx.sh b/src/Specific/montgomery64_2e384m79x2e376m1/compilerxx.sh
new file mode 100755
index 000000000..ffcd7f6ea
--- /dev/null
+++ b/src/Specific/montgomery64_2e384m79x2e376m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e389m21/compiler.sh b/src/Specific/montgomery64_2e389m21/compiler.sh
index 518f95765..c68b25592 100755
--- a/src/Specific/montgomery64_2e389m21/compiler.sh
+++ b/src/Specific/montgomery64_2e389m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e389m21/compilerxx.sh b/src/Specific/montgomery64_2e389m21/compilerxx.sh
new file mode 100755
index 000000000..4c9a00467
--- /dev/null
+++ b/src/Specific/montgomery64_2e389m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<389) - 21' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e401m31/compiler.sh b/src/Specific/montgomery64_2e401m31/compiler.sh
index 518f95765..9a467de72 100755
--- a/src/Specific/montgomery64_2e401m31/compiler.sh
+++ b/src/Specific/montgomery64_2e401m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e401m31/compilerxx.sh b/src/Specific/montgomery64_2e401m31/compilerxx.sh
new file mode 100755
index 000000000..3efdff029
--- /dev/null
+++ b/src/Specific/montgomery64_2e401m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e413m21/compiler.sh b/src/Specific/montgomery64_2e413m21/compiler.sh
index 518f95765..3c7fcdf2d 100755
--- a/src/Specific/montgomery64_2e413m21/compiler.sh
+++ b/src/Specific/montgomery64_2e413m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e413m21/compilerxx.sh b/src/Specific/montgomery64_2e413m21/compilerxx.sh
new file mode 100755
index 000000000..0d91dad95
--- /dev/null
+++ b/src/Specific/montgomery64_2e413m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e414m17/compiler.sh b/src/Specific/montgomery64_2e414m17/compiler.sh
index 518f95765..ec91862fb 100755
--- a/src/Specific/montgomery64_2e414m17/compiler.sh
+++ b/src/Specific/montgomery64_2e414m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e414m17/compilerxx.sh b/src/Specific/montgomery64_2e414m17/compilerxx.sh
new file mode 100755
index 000000000..7e81c590c
--- /dev/null
+++ b/src/Specific/montgomery64_2e414m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e416m2e208m1/compiler.sh b/src/Specific/montgomery64_2e416m2e208m1/compiler.sh
index 518f95765..a92f7a3d3 100755
--- a/src/Specific/montgomery64_2e416m2e208m1/compiler.sh
+++ b/src/Specific/montgomery64_2e416m2e208m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e416m2e208m1/compilerxx.sh b/src/Specific/montgomery64_2e416m2e208m1/compilerxx.sh
new file mode 100755
index 000000000..211d0e160
--- /dev/null
+++ b/src/Specific/montgomery64_2e416m2e208m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e444m17/compiler.sh b/src/Specific/montgomery64_2e444m17/compiler.sh
index 518f95765..2e51c52fb 100755
--- a/src/Specific/montgomery64_2e444m17/compiler.sh
+++ b/src/Specific/montgomery64_2e444m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e444m17/compilerxx.sh b/src/Specific/montgomery64_2e444m17/compilerxx.sh
new file mode 100755
index 000000000..4171fbe49
--- /dev/null
+++ b/src/Specific/montgomery64_2e444m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e448m2e224m1/compiler.sh b/src/Specific/montgomery64_2e448m2e224m1/compiler.sh
index 518f95765..15b7c493e 100755
--- a/src/Specific/montgomery64_2e448m2e224m1/compiler.sh
+++ b/src/Specific/montgomery64_2e448m2e224m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e448m2e224m1/compilerxx.sh b/src/Specific/montgomery64_2e448m2e224m1/compilerxx.sh
new file mode 100755
index 000000000..d7d8a728e
--- /dev/null
+++ b/src/Specific/montgomery64_2e448m2e224m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e450m2e225m1/compiler.sh b/src/Specific/montgomery64_2e450m2e225m1/compiler.sh
index 518f95765..1bb8410cb 100755
--- a/src/Specific/montgomery64_2e450m2e225m1/compiler.sh
+++ b/src/Specific/montgomery64_2e450m2e225m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e450m2e225m1/compilerxx.sh b/src/Specific/montgomery64_2e450m2e225m1/compilerxx.sh
new file mode 100755
index 000000000..887a9cbdb
--- /dev/null
+++ b/src/Specific/montgomery64_2e450m2e225m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e452m3/compiler.sh b/src/Specific/montgomery64_2e452m3/compiler.sh
index 518f95765..3da6d54dc 100755
--- a/src/Specific/montgomery64_2e452m3/compiler.sh
+++ b/src/Specific/montgomery64_2e452m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e452m3/compilerxx.sh b/src/Specific/montgomery64_2e452m3/compilerxx.sh
new file mode 100755
index 000000000..6693fbfb3
--- /dev/null
+++ b/src/Specific/montgomery64_2e452m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e468m17/compiler.sh b/src/Specific/montgomery64_2e468m17/compiler.sh
index 518f95765..1ee262f6e 100755
--- a/src/Specific/montgomery64_2e468m17/compiler.sh
+++ b/src/Specific/montgomery64_2e468m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e468m17/compilerxx.sh b/src/Specific/montgomery64_2e468m17/compilerxx.sh
new file mode 100755
index 000000000..fd82b9e49
--- /dev/null
+++ b/src/Specific/montgomery64_2e468m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e480m2e240m1/compiler.sh b/src/Specific/montgomery64_2e480m2e240m1/compiler.sh
index 518f95765..05149a8b3 100755
--- a/src/Specific/montgomery64_2e480m2e240m1/compiler.sh
+++ b/src/Specific/montgomery64_2e480m2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e480m2e240m1/compilerxx.sh b/src/Specific/montgomery64_2e480m2e240m1/compilerxx.sh
new file mode 100755
index 000000000..d2c038a96
--- /dev/null
+++ b/src/Specific/montgomery64_2e480m2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e488m17/compiler.sh b/src/Specific/montgomery64_2e488m17/compiler.sh
index 518f95765..ea9957601 100755
--- a/src/Specific/montgomery64_2e488m17/compiler.sh
+++ b/src/Specific/montgomery64_2e488m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e488m17/compilerxx.sh b/src/Specific/montgomery64_2e488m17/compilerxx.sh
new file mode 100755
index 000000000..8ea142e72
--- /dev/null
+++ b/src/Specific/montgomery64_2e488m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e489m21/compiler.sh b/src/Specific/montgomery64_2e489m21/compiler.sh
index 518f95765..17105b41a 100755
--- a/src/Specific/montgomery64_2e489m21/compiler.sh
+++ b/src/Specific/montgomery64_2e489m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e489m21/compilerxx.sh b/src/Specific/montgomery64_2e489m21/compilerxx.sh
new file mode 100755
index 000000000..594c7dc63
--- /dev/null
+++ b/src/Specific/montgomery64_2e489m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e495m31/compiler.sh b/src/Specific/montgomery64_2e495m31/compiler.sh
index 518f95765..dffaecc5b 100755
--- a/src/Specific/montgomery64_2e495m31/compiler.sh
+++ b/src/Specific/montgomery64_2e495m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e495m31/compilerxx.sh b/src/Specific/montgomery64_2e495m31/compilerxx.sh
new file mode 100755
index 000000000..dd047e55f
--- /dev/null
+++ b/src/Specific/montgomery64_2e495m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e510m290x2e496m1/compiler.sh b/src/Specific/montgomery64_2e510m290x2e496m1/compiler.sh
index 518f95765..e9a55a332 100755
--- a/src/Specific/montgomery64_2e510m290x2e496m1/compiler.sh
+++ b/src/Specific/montgomery64_2e510m290x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e510m290x2e496m1/compilerxx.sh b/src/Specific/montgomery64_2e510m290x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..c5f524de6
--- /dev/null
+++ b/src/Specific/montgomery64_2e510m290x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e511m187/compiler.sh b/src/Specific/montgomery64_2e511m187/compiler.sh
index 518f95765..5faaa750b 100755
--- a/src/Specific/montgomery64_2e511m187/compiler.sh
+++ b/src/Specific/montgomery64_2e511m187/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e511m187/compilerxx.sh b/src/Specific/montgomery64_2e511m187/compilerxx.sh
new file mode 100755
index 000000000..ef9aa54a8
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m187/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e511m481/compiler.sh b/src/Specific/montgomery64_2e511m481/compiler.sh
index 518f95765..50ba52974 100755
--- a/src/Specific/montgomery64_2e511m481/compiler.sh
+++ b/src/Specific/montgomery64_2e511m481/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e511m481/compilerxx.sh b/src/Specific/montgomery64_2e511m481/compilerxx.sh
new file mode 100755
index 000000000..2b87db682
--- /dev/null
+++ b/src/Specific/montgomery64_2e511m481/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e512m491x2e496m1/compiler.sh b/src/Specific/montgomery64_2e512m491x2e496m1/compiler.sh
index 518f95765..b67b7d393 100755
--- a/src/Specific/montgomery64_2e512m491x2e496m1/compiler.sh
+++ b/src/Specific/montgomery64_2e512m491x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e512m491x2e496m1/compilerxx.sh b/src/Specific/montgomery64_2e512m491x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..9a7197fa6
--- /dev/null
+++ b/src/Specific/montgomery64_2e512m491x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e512m569/compiler.sh b/src/Specific/montgomery64_2e512m569/compiler.sh
index 518f95765..214529aaf 100755
--- a/src/Specific/montgomery64_2e512m569/compiler.sh
+++ b/src/Specific/montgomery64_2e512m569/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e512m569/compilerxx.sh b/src/Specific/montgomery64_2e512m569/compilerxx.sh
new file mode 100755
index 000000000..1c42bb9c2
--- /dev/null
+++ b/src/Specific/montgomery64_2e512m569/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e521m1/compiler.sh b/src/Specific/montgomery64_2e521m1/compiler.sh
index 518f95765..f24b56d28 100755
--- a/src/Specific/montgomery64_2e521m1/compiler.sh
+++ b/src/Specific/montgomery64_2e521m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-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 "$@"
+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 -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/montgomery64_2e521m1/compilerxx.sh b/src/Specific/montgomery64_2e521m1/compilerxx.sh
new file mode 100755
index 000000000..888722c70
--- /dev/null
+++ b/src/Specific/montgomery64_2e521m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -fno-peephole2 `#GCC BUG 81300` -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='64' "$@"
diff --git a/src/Specific/solinas32_2e127m1/compiler.sh b/src/Specific/solinas32_2e127m1/compiler.sh
index 401968c8b..0ed0c196e 100755
--- a/src/Specific/solinas32_2e127m1/compiler.sh
+++ b/src/Specific/solinas32_2e127m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='21 + 1/6' "$@"
diff --git a/src/Specific/solinas32_2e127m1/compilerxx.sh b/src/Specific/solinas32_2e127m1/compilerxx.sh
new file mode 100755
index 000000000..90a5260ae
--- /dev/null
+++ b/src/Specific/solinas32_2e127m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='21 + 1/6' "$@"
diff --git a/src/Specific/solinas32_2e129m25/compiler.sh b/src/Specific/solinas32_2e129m25/compiler.sh
index 401968c8b..7906c2f6a 100755
--- a/src/Specific/solinas32_2e129m25/compiler.sh
+++ b/src/Specific/solinas32_2e129m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='21.5' "$@"
diff --git a/src/Specific/solinas32_2e129m25/compilerxx.sh b/src/Specific/solinas32_2e129m25/compilerxx.sh
new file mode 100755
index 000000000..152dc93ad
--- /dev/null
+++ b/src/Specific/solinas32_2e129m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='21.5' "$@"
diff --git a/src/Specific/solinas32_2e130m5/compiler.sh b/src/Specific/solinas32_2e130m5/compiler.sh
index 401968c8b..6f297acc7 100755
--- a/src/Specific/solinas32_2e130m5/compiler.sh
+++ b/src/Specific/solinas32_2e130m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e130m5/compilerxx.sh b/src/Specific/solinas32_2e130m5/compilerxx.sh
new file mode 100755
index 000000000..f852e55a5
--- /dev/null
+++ b/src/Specific/solinas32_2e130m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e137m13/compiler.sh b/src/Specific/solinas32_2e137m13/compiler.sh
index 401968c8b..67d2980e2 100755
--- a/src/Specific/solinas32_2e137m13/compiler.sh
+++ b/src/Specific/solinas32_2e137m13/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='17.125' "$@"
diff --git a/src/Specific/solinas32_2e137m13/compilerxx.sh b/src/Specific/solinas32_2e137m13/compilerxx.sh
new file mode 100755
index 000000000..db6bbe54e
--- /dev/null
+++ b/src/Specific/solinas32_2e137m13/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='17.125' "$@"
diff --git a/src/Specific/solinas32_2e140m27/compiler.sh b/src/Specific/solinas32_2e140m27/compiler.sh
index 401968c8b..2c1edaf88 100755
--- a/src/Specific/solinas32_2e140m27/compiler.sh
+++ b/src/Specific/solinas32_2e140m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='23 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e140m27/compilerxx.sh b/src/Specific/solinas32_2e140m27/compilerxx.sh
new file mode 100755
index 000000000..9479c4f23
--- /dev/null
+++ b/src/Specific/solinas32_2e140m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='23 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e141m9/compiler.sh b/src/Specific/solinas32_2e141m9/compiler.sh
index 401968c8b..bf92603d9 100755
--- a/src/Specific/solinas32_2e141m9/compiler.sh
+++ b/src/Specific/solinas32_2e141m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='23.5' "$@"
diff --git a/src/Specific/solinas32_2e141m9/compilerxx.sh b/src/Specific/solinas32_2e141m9/compilerxx.sh
new file mode 100755
index 000000000..ac9506af9
--- /dev/null
+++ b/src/Specific/solinas32_2e141m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='23.5' "$@"
diff --git a/src/Specific/solinas32_2e150m3/compiler.sh b/src/Specific/solinas32_2e150m3/compiler.sh
index 401968c8b..d7b1b3e5d 100755
--- a/src/Specific/solinas32_2e150m3/compiler.sh
+++ b/src/Specific/solinas32_2e150m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='30' "$@"
diff --git a/src/Specific/solinas32_2e150m3/compilerxx.sh b/src/Specific/solinas32_2e150m3/compilerxx.sh
new file mode 100755
index 000000000..5dd24d443
--- /dev/null
+++ b/src/Specific/solinas32_2e150m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='30' "$@"
diff --git a/src/Specific/solinas32_2e150m5/compiler.sh b/src/Specific/solinas32_2e150m5/compiler.sh
index 401968c8b..01f578be3 100755
--- a/src/Specific/solinas32_2e150m5/compiler.sh
+++ b/src/Specific/solinas32_2e150m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='25' "$@"
diff --git a/src/Specific/solinas32_2e150m5/compilerxx.sh b/src/Specific/solinas32_2e150m5/compilerxx.sh
new file mode 100755
index 000000000..c36ff8d69
--- /dev/null
+++ b/src/Specific/solinas32_2e150m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='25' "$@"
diff --git a/src/Specific/solinas32_2e152m17/compiler.sh b/src/Specific/solinas32_2e152m17/compiler.sh
index 401968c8b..689bf58c0 100755
--- a/src/Specific/solinas32_2e152m17/compiler.sh
+++ b/src/Specific/solinas32_2e152m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='25 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e152m17/compilerxx.sh b/src/Specific/solinas32_2e152m17/compilerxx.sh
new file mode 100755
index 000000000..ed18f9948
--- /dev/null
+++ b/src/Specific/solinas32_2e152m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='25 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e158m15/compiler.sh b/src/Specific/solinas32_2e158m15/compiler.sh
index 401968c8b..96ae896d7 100755
--- a/src/Specific/solinas32_2e158m15/compiler.sh
+++ b/src/Specific/solinas32_2e158m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='26 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e158m15/compilerxx.sh b/src/Specific/solinas32_2e158m15/compilerxx.sh
new file mode 100755
index 000000000..13e6996f8
--- /dev/null
+++ b/src/Specific/solinas32_2e158m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='26 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e165m25/compiler.sh b/src/Specific/solinas32_2e165m25/compiler.sh
index 401968c8b..2a8989226 100755
--- a/src/Specific/solinas32_2e165m25/compiler.sh
+++ b/src/Specific/solinas32_2e165m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='18 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e165m25/compilerxx.sh b/src/Specific/solinas32_2e165m25/compilerxx.sh
new file mode 100755
index 000000000..980931fa1
--- /dev/null
+++ b/src/Specific/solinas32_2e165m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='18 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e166m5/compiler.sh b/src/Specific/solinas32_2e166m5/compiler.sh
index 401968c8b..020513ddd 100755
--- a/src/Specific/solinas32_2e166m5/compiler.sh
+++ b/src/Specific/solinas32_2e166m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='15 + 1/11' "$@"
diff --git a/src/Specific/solinas32_2e166m5/compilerxx.sh b/src/Specific/solinas32_2e166m5/compilerxx.sh
new file mode 100755
index 000000000..f8e6b795d
--- /dev/null
+++ b/src/Specific/solinas32_2e166m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='15 + 1/11' "$@"
diff --git a/src/Specific/solinas32_2e171m19/compiler.sh b/src/Specific/solinas32_2e171m19/compiler.sh
index 401968c8b..a16f9e677 100755
--- a/src/Specific/solinas32_2e171m19/compiler.sh
+++ b/src/Specific/solinas32_2e171m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='19' "$@"
diff --git a/src/Specific/solinas32_2e171m19/compilerxx.sh b/src/Specific/solinas32_2e171m19/compilerxx.sh
new file mode 100755
index 000000000..c0610baf5
--- /dev/null
+++ b/src/Specific/solinas32_2e171m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='19' "$@"
diff --git a/src/Specific/solinas32_2e174m17/compiler.sh b/src/Specific/solinas32_2e174m17/compiler.sh
index 401968c8b..923642efb 100755
--- a/src/Specific/solinas32_2e174m17/compiler.sh
+++ b/src/Specific/solinas32_2e174m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='19 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e174m17/compilerxx.sh b/src/Specific/solinas32_2e174m17/compilerxx.sh
new file mode 100755
index 000000000..88a1e17e3
--- /dev/null
+++ b/src/Specific/solinas32_2e174m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='19 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e174m3/compiler.sh b/src/Specific/solinas32_2e174m3/compiler.sh
index 401968c8b..5fd015ef4 100755
--- a/src/Specific/solinas32_2e174m3/compiler.sh
+++ b/src/Specific/solinas32_2e174m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='29' "$@"
diff --git a/src/Specific/solinas32_2e174m3/compilerxx.sh b/src/Specific/solinas32_2e174m3/compilerxx.sh
new file mode 100755
index 000000000..dbceb2aee
--- /dev/null
+++ b/src/Specific/solinas32_2e174m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='29' "$@"
diff --git a/src/Specific/solinas32_2e189m25/compiler.sh b/src/Specific/solinas32_2e189m25/compiler.sh
index 401968c8b..003738067 100755
--- a/src/Specific/solinas32_2e189m25/compiler.sh
+++ b/src/Specific/solinas32_2e189m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='27' "$@"
diff --git a/src/Specific/solinas32_2e189m25/compilerxx.sh b/src/Specific/solinas32_2e189m25/compilerxx.sh
new file mode 100755
index 000000000..8b6192d88
--- /dev/null
+++ b/src/Specific/solinas32_2e189m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='27' "$@"
diff --git a/src/Specific/solinas32_2e190m11/compiler.sh b/src/Specific/solinas32_2e190m11/compiler.sh
index 401968c8b..3dc77782a 100755
--- a/src/Specific/solinas32_2e190m11/compiler.sh
+++ b/src/Specific/solinas32_2e190m11/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='27 + 1/7' "$@"
diff --git a/src/Specific/solinas32_2e190m11/compilerxx.sh b/src/Specific/solinas32_2e190m11/compilerxx.sh
new file mode 100755
index 000000000..2eeb491dc
--- /dev/null
+++ b/src/Specific/solinas32_2e190m11/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='27 + 1/7' "$@"
diff --git a/src/Specific/solinas32_2e191m19/compiler.sh b/src/Specific/solinas32_2e191m19/compiler.sh
index 401968c8b..2b5f96971 100755
--- a/src/Specific/solinas32_2e191m19/compiler.sh
+++ b/src/Specific/solinas32_2e191m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='19.1' "$@"
diff --git a/src/Specific/solinas32_2e191m19/compilerxx.sh b/src/Specific/solinas32_2e191m19/compilerxx.sh
new file mode 100755
index 000000000..8124bb5ac
--- /dev/null
+++ b/src/Specific/solinas32_2e191m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='19.1' "$@"
diff --git a/src/Specific/solinas32_2e192m2e64m1/compiler.sh b/src/Specific/solinas32_2e192m2e64m1/compiler.sh
index 401968c8b..1feb87119 100755
--- a/src/Specific/solinas32_2e192m2e64m1/compiler.sh
+++ b/src/Specific/solinas32_2e192m2e64m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e192m2e64m1/compilerxx.sh b/src/Specific/solinas32_2e192m2e64m1/compilerxx.sh
new file mode 100755
index 000000000..4f6996924
--- /dev/null
+++ b/src/Specific/solinas32_2e192m2e64m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e194m33/compiler.sh b/src/Specific/solinas32_2e194m33/compiler.sh
index 401968c8b..9e5431291 100755
--- a/src/Specific/solinas32_2e194m33/compiler.sh
+++ b/src/Specific/solinas32_2e194m33/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='24.25' "$@"
diff --git a/src/Specific/solinas32_2e194m33/compilerxx.sh b/src/Specific/solinas32_2e194m33/compilerxx.sh
new file mode 100755
index 000000000..4c248b57e
--- /dev/null
+++ b/src/Specific/solinas32_2e194m33/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='24.25' "$@"
diff --git a/src/Specific/solinas32_2e196m15/compiler.sh b/src/Specific/solinas32_2e196m15/compiler.sh
index 401968c8b..bc21fea48 100755
--- a/src/Specific/solinas32_2e196m15/compiler.sh
+++ b/src/Specific/solinas32_2e196m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e196m15/compilerxx.sh b/src/Specific/solinas32_2e196m15/compilerxx.sh
new file mode 100755
index 000000000..3bf82f479
--- /dev/null
+++ b/src/Specific/solinas32_2e196m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e198m17/compiler.sh b/src/Specific/solinas32_2e198m17/compiler.sh
index 401968c8b..7b98140de 100755
--- a/src/Specific/solinas32_2e198m17/compiler.sh
+++ b/src/Specific/solinas32_2e198m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='22' "$@"
diff --git a/src/Specific/solinas32_2e198m17/compilerxx.sh b/src/Specific/solinas32_2e198m17/compilerxx.sh
new file mode 100755
index 000000000..bd2290353
--- /dev/null
+++ b/src/Specific/solinas32_2e198m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='22' "$@"
diff --git a/src/Specific/solinas32_2e205m45x2e198m1/compiler.sh b/src/Specific/solinas32_2e205m45x2e198m1/compiler.sh
index 401968c8b..5b980f58d 100755
--- a/src/Specific/solinas32_2e205m45x2e198m1/compiler.sh
+++ b/src/Specific/solinas32_2e205m45x2e198m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='20.5' "$@"
diff --git a/src/Specific/solinas32_2e205m45x2e198m1/compilerxx.sh b/src/Specific/solinas32_2e205m45x2e198m1/compilerxx.sh
new file mode 100755
index 000000000..6bbda19f8
--- /dev/null
+++ b/src/Specific/solinas32_2e205m45x2e198m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='20.5' "$@"
diff --git a/src/Specific/solinas32_2e206m5/compiler.sh b/src/Specific/solinas32_2e206m5/compiler.sh
index 401968c8b..6d58d0475 100755
--- a/src/Specific/solinas32_2e206m5/compiler.sh
+++ b/src/Specific/solinas32_2e206m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='17 + 1/6' "$@"
diff --git a/src/Specific/solinas32_2e206m5/compilerxx.sh b/src/Specific/solinas32_2e206m5/compilerxx.sh
new file mode 100755
index 000000000..12e008406
--- /dev/null
+++ b/src/Specific/solinas32_2e206m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='17 + 1/6' "$@"
diff --git a/src/Specific/solinas32_2e212m29/compiler.sh b/src/Specific/solinas32_2e212m29/compiler.sh
index 401968c8b..ceabfb7c7 100755
--- a/src/Specific/solinas32_2e212m29/compiler.sh
+++ b/src/Specific/solinas32_2e212m29/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='26.5' "$@"
diff --git a/src/Specific/solinas32_2e212m29/compilerxx.sh b/src/Specific/solinas32_2e212m29/compilerxx.sh
new file mode 100755
index 000000000..06dc7948a
--- /dev/null
+++ b/src/Specific/solinas32_2e212m29/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='26.5' "$@"
diff --git a/src/Specific/solinas32_2e213m3/compiler.sh b/src/Specific/solinas32_2e213m3/compiler.sh
index 401968c8b..24b130272 100755
--- a/src/Specific/solinas32_2e213m3/compiler.sh
+++ b/src/Specific/solinas32_2e213m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='14.2' "$@"
diff --git a/src/Specific/solinas32_2e213m3/compilerxx.sh b/src/Specific/solinas32_2e213m3/compilerxx.sh
new file mode 100755
index 000000000..9dc8385b0
--- /dev/null
+++ b/src/Specific/solinas32_2e213m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='14.2' "$@"
diff --git a/src/Specific/solinas32_2e216m2e108m1/compiler.sh b/src/Specific/solinas32_2e216m2e108m1/compiler.sh
index 401968c8b..a8b0eb0d6 100755
--- a/src/Specific/solinas32_2e216m2e108m1/compiler.sh
+++ b/src/Specific/solinas32_2e216m2e108m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='27' "$@"
diff --git a/src/Specific/solinas32_2e216m2e108m1/compilerxx.sh b/src/Specific/solinas32_2e216m2e108m1/compilerxx.sh
new file mode 100755
index 000000000..1e00064b4
--- /dev/null
+++ b/src/Specific/solinas32_2e216m2e108m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='27' "$@"
diff --git a/src/Specific/solinas32_2e221m3/compiler.sh b/src/Specific/solinas32_2e221m3/compiler.sh
index 401968c8b..a6f76c63e 100755
--- a/src/Specific/solinas32_2e221m3/compiler.sh
+++ b/src/Specific/solinas32_2e221m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='22.1' "$@"
diff --git a/src/Specific/solinas32_2e221m3/compilerxx.sh b/src/Specific/solinas32_2e221m3/compilerxx.sh
new file mode 100755
index 000000000..36ff69a22
--- /dev/null
+++ b/src/Specific/solinas32_2e221m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='22.1' "$@"
diff --git a/src/Specific/solinas32_2e222m117/compiler.sh b/src/Specific/solinas32_2e222m117/compiler.sh
index 401968c8b..da58c070f 100755
--- a/src/Specific/solinas32_2e222m117/compiler.sh
+++ b/src/Specific/solinas32_2e222m117/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='22.2' "$@"
diff --git a/src/Specific/solinas32_2e222m117/compilerxx.sh b/src/Specific/solinas32_2e222m117/compilerxx.sh
new file mode 100755
index 000000000..ea06489c9
--- /dev/null
+++ b/src/Specific/solinas32_2e222m117/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='22.2' "$@"
diff --git a/src/Specific/solinas32_2e224m2e96p1/compiler.sh b/src/Specific/solinas32_2e224m2e96p1/compiler.sh
index 401968c8b..6230cbb63 100755
--- a/src/Specific/solinas32_2e224m2e96p1/compiler.sh
+++ b/src/Specific/solinas32_2e224m2e96p1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e224m2e96p1/compilerxx.sh b/src/Specific/solinas32_2e224m2e96p1/compilerxx.sh
new file mode 100755
index 000000000..d3ff690a8
--- /dev/null
+++ b/src/Specific/solinas32_2e224m2e96p1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e226m5/compiler.sh b/src/Specific/solinas32_2e226m5/compiler.sh
index 401968c8b..f5f17f90b 100755
--- a/src/Specific/solinas32_2e226m5/compiler.sh
+++ b/src/Specific/solinas32_2e226m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='28.25' "$@"
diff --git a/src/Specific/solinas32_2e226m5/compilerxx.sh b/src/Specific/solinas32_2e226m5/compilerxx.sh
new file mode 100755
index 000000000..23cfe0849
--- /dev/null
+++ b/src/Specific/solinas32_2e226m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='28.25' "$@"
diff --git a/src/Specific/solinas32_2e230m27/compiler.sh b/src/Specific/solinas32_2e230m27/compiler.sh
index 401968c8b..652789f45 100755
--- a/src/Specific/solinas32_2e230m27/compiler.sh
+++ b/src/Specific/solinas32_2e230m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='23' "$@"
diff --git a/src/Specific/solinas32_2e230m27/compilerxx.sh b/src/Specific/solinas32_2e230m27/compilerxx.sh
new file mode 100755
index 000000000..663957537
--- /dev/null
+++ b/src/Specific/solinas32_2e230m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='23' "$@"
diff --git a/src/Specific/solinas32_2e235m15/compiler.sh b/src/Specific/solinas32_2e235m15/compiler.sh
index 401968c8b..14aab0775 100755
--- a/src/Specific/solinas32_2e235m15/compiler.sh
+++ b/src/Specific/solinas32_2e235m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='26 + 1/9' "$@"
diff --git a/src/Specific/solinas32_2e235m15/compilerxx.sh b/src/Specific/solinas32_2e235m15/compilerxx.sh
new file mode 100755
index 000000000..01ba091a2
--- /dev/null
+++ b/src/Specific/solinas32_2e235m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='26 + 1/9' "$@"
diff --git a/src/Specific/solinas32_2e243m9/compiler.sh b/src/Specific/solinas32_2e243m9/compiler.sh
index 401968c8b..97000706c 100755
--- a/src/Specific/solinas32_2e243m9/compiler.sh
+++ b/src/Specific/solinas32_2e243m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='27' "$@"
diff --git a/src/Specific/solinas32_2e243m9/compilerxx.sh b/src/Specific/solinas32_2e243m9/compilerxx.sh
new file mode 100755
index 000000000..7350b6837
--- /dev/null
+++ b/src/Specific/solinas32_2e243m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='27' "$@"
diff --git a/src/Specific/solinas32_2e251m9/compiler.sh b/src/Specific/solinas32_2e251m9/compiler.sh
index 401968c8b..1cfcc78fb 100755
--- a/src/Specific/solinas32_2e251m9/compiler.sh
+++ b/src/Specific/solinas32_2e251m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='25.1' "$@"
diff --git a/src/Specific/solinas32_2e251m9/compilerxx.sh b/src/Specific/solinas32_2e251m9/compilerxx.sh
new file mode 100755
index 000000000..5d1b0b244
--- /dev/null
+++ b/src/Specific/solinas32_2e251m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='25.1' "$@"
diff --git a/src/Specific/solinas32_2e254m127x2e240m1/compiler.sh b/src/Specific/solinas32_2e254m127x2e240m1/compiler.sh
index 401968c8b..d63ebefac 100755
--- a/src/Specific/solinas32_2e254m127x2e240m1/compiler.sh
+++ b/src/Specific/solinas32_2e254m127x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='23 + 1/11' "$@"
diff --git a/src/Specific/solinas32_2e254m127x2e240m1/compilerxx.sh b/src/Specific/solinas32_2e254m127x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..1dd3886df
--- /dev/null
+++ b/src/Specific/solinas32_2e254m127x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='23 + 1/11' "$@"
diff --git a/src/Specific/solinas32_2e255m19/compiler.sh b/src/Specific/solinas32_2e255m19/compiler.sh
index 401968c8b..d6550f45c 100755
--- a/src/Specific/solinas32_2e255m19/compiler.sh
+++ b/src/Specific/solinas32_2e255m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='25.5' "$@"
diff --git a/src/Specific/solinas32_2e255m19/compilerxx.sh b/src/Specific/solinas32_2e255m19/compilerxx.sh
new file mode 100755
index 000000000..f434715f1
--- /dev/null
+++ b/src/Specific/solinas32_2e255m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='25.5' "$@"
diff --git a/src/Specific/solinas32_2e255m2e4m2e1m1/compiler.sh b/src/Specific/solinas32_2e255m2e4m2e1m1/compiler.sh
index 401968c8b..b5b93ada5 100755
--- a/src/Specific/solinas32_2e255m2e4m2e1m1/compiler.sh
+++ b/src/Specific/solinas32_2e255m2e4m2e1m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='28 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e255m2e4m2e1m1/compilerxx.sh b/src/Specific/solinas32_2e255m2e4m2e1m1/compilerxx.sh
new file mode 100755
index 000000000..a6924bfd3
--- /dev/null
+++ b/src/Specific/solinas32_2e255m2e4m2e1m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='28 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e255m765/compiler.sh b/src/Specific/solinas32_2e255m765/compiler.sh
index 401968c8b..fe36fedb4 100755
--- a/src/Specific/solinas32_2e255m765/compiler.sh
+++ b/src/Specific/solinas32_2e255m765/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='21.25' "$@"
diff --git a/src/Specific/solinas32_2e255m765/compilerxx.sh b/src/Specific/solinas32_2e255m765/compilerxx.sh
new file mode 100755
index 000000000..bba650eea
--- /dev/null
+++ b/src/Specific/solinas32_2e255m765/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='21.25' "$@"
diff --git a/src/Specific/solinas32_2e256m189/compiler.sh b/src/Specific/solinas32_2e256m189/compiler.sh
index 401968c8b..d188bbfea 100755
--- a/src/Specific/solinas32_2e256m189/compiler.sh
+++ b/src/Specific/solinas32_2e256m189/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e256m189/compilerxx.sh b/src/Specific/solinas32_2e256m189/compilerxx.sh
new file mode 100755
index 000000000..cc15ed6eb
--- /dev/null
+++ b/src/Specific/solinas32_2e256m189/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh
index 401968c8b..f8c35a422 100755
--- a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh
new file mode 100755
index 000000000..144709b93
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e256m2e32m977/compiler.sh b/src/Specific/solinas32_2e256m2e32m977/compiler.sh
index 401968c8b..ba249fbea 100755
--- a/src/Specific/solinas32_2e256m2e32m977/compiler.sh
+++ b/src/Specific/solinas32_2e256m2e32m977/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e256m2e32m977/compilerxx.sh b/src/Specific/solinas32_2e256m2e32m977/compilerxx.sh
new file mode 100755
index 000000000..2b0341ea7
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e32m977/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e256m88x2e240m1/compiler.sh b/src/Specific/solinas32_2e256m88x2e240m1/compiler.sh
index 401968c8b..a3456071e 100755
--- a/src/Specific/solinas32_2e256m88x2e240m1/compiler.sh
+++ b/src/Specific/solinas32_2e256m88x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e256m88x2e240m1/compilerxx.sh b/src/Specific/solinas32_2e256m88x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..057b42442
--- /dev/null
+++ b/src/Specific/solinas32_2e256m88x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e266m3/compiler.sh b/src/Specific/solinas32_2e266m3/compiler.sh
index 401968c8b..795bd6631 100755
--- a/src/Specific/solinas32_2e266m3/compiler.sh
+++ b/src/Specific/solinas32_2e266m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='22 + 1/6' "$@"
diff --git a/src/Specific/solinas32_2e266m3/compilerxx.sh b/src/Specific/solinas32_2e266m3/compilerxx.sh
new file mode 100755
index 000000000..bf04b06d6
--- /dev/null
+++ b/src/Specific/solinas32_2e266m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='22 + 1/6' "$@"
diff --git a/src/Specific/solinas32_2e285m9/compiler.sh b/src/Specific/solinas32_2e285m9/compiler.sh
index 401968c8b..4219a22bf 100755
--- a/src/Specific/solinas32_2e285m9/compiler.sh
+++ b/src/Specific/solinas32_2e285m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='19' "$@"
diff --git a/src/Specific/solinas32_2e285m9/compilerxx.sh b/src/Specific/solinas32_2e285m9/compilerxx.sh
new file mode 100755
index 000000000..ec995daab
--- /dev/null
+++ b/src/Specific/solinas32_2e285m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='19' "$@"
diff --git a/src/Specific/solinas32_2e291m19/compiler.sh b/src/Specific/solinas32_2e291m19/compiler.sh
index 401968c8b..2ac210d4c 100755
--- a/src/Specific/solinas32_2e291m19/compiler.sh
+++ b/src/Specific/solinas32_2e291m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='24.25' "$@"
diff --git a/src/Specific/solinas32_2e291m19/compilerxx.sh b/src/Specific/solinas32_2e291m19/compilerxx.sh
new file mode 100755
index 000000000..3e1432a3d
--- /dev/null
+++ b/src/Specific/solinas32_2e291m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='24.25' "$@"
diff --git a/src/Specific/solinas32_2e321m9/compiler.sh b/src/Specific/solinas32_2e321m9/compiler.sh
index 401968c8b..d8ded8c8d 100755
--- a/src/Specific/solinas32_2e321m9/compiler.sh
+++ b/src/Specific/solinas32_2e321m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='20 + 1/16' "$@"
diff --git a/src/Specific/solinas32_2e321m9/compilerxx.sh b/src/Specific/solinas32_2e321m9/compilerxx.sh
new file mode 100755
index 000000000..fb332e9d8
--- /dev/null
+++ b/src/Specific/solinas32_2e321m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='20 + 1/16' "$@"
diff --git a/src/Specific/solinas32_2e322m2e161m1/compiler.sh b/src/Specific/solinas32_2e322m2e161m1/compiler.sh
index 401968c8b..ad15fe20f 100755
--- a/src/Specific/solinas32_2e322m2e161m1/compiler.sh
+++ b/src/Specific/solinas32_2e322m2e161m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='23' "$@"
diff --git a/src/Specific/solinas32_2e322m2e161m1/compilerxx.sh b/src/Specific/solinas32_2e322m2e161m1/compilerxx.sh
new file mode 100755
index 000000000..064b0793a
--- /dev/null
+++ b/src/Specific/solinas32_2e322m2e161m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='23' "$@"
diff --git a/src/Specific/solinas32_2e336m17/compiler.sh b/src/Specific/solinas32_2e336m17/compiler.sh
index 401968c8b..97ec62d20 100755
--- a/src/Specific/solinas32_2e336m17/compiler.sh
+++ b/src/Specific/solinas32_2e336m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e336m17/compilerxx.sh b/src/Specific/solinas32_2e336m17/compilerxx.sh
new file mode 100755
index 000000000..522e43085
--- /dev/null
+++ b/src/Specific/solinas32_2e336m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e336m3/compiler.sh b/src/Specific/solinas32_2e336m3/compiler.sh
index 401968c8b..ea3fc9ca0 100755
--- a/src/Specific/solinas32_2e336m3/compiler.sh
+++ b/src/Specific/solinas32_2e336m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e336m3/compilerxx.sh b/src/Specific/solinas32_2e336m3/compilerxx.sh
new file mode 100755
index 000000000..0c2347814
--- /dev/null
+++ b/src/Specific/solinas32_2e336m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e338m15/compiler.sh b/src/Specific/solinas32_2e338m15/compiler.sh
index 401968c8b..7dc472587 100755
--- a/src/Specific/solinas32_2e338m15/compiler.sh
+++ b/src/Specific/solinas32_2e338m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e338m15/compilerxx.sh b/src/Specific/solinas32_2e338m15/compilerxx.sh
new file mode 100755
index 000000000..a752ea7fe
--- /dev/null
+++ b/src/Specific/solinas32_2e338m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e369m25/compiler.sh b/src/Specific/solinas32_2e369m25/compiler.sh
index 401968c8b..b23f82b53 100755
--- a/src/Specific/solinas32_2e369m25/compiler.sh
+++ b/src/Specific/solinas32_2e369m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='23 + 1/16' "$@"
diff --git a/src/Specific/solinas32_2e369m25/compilerxx.sh b/src/Specific/solinas32_2e369m25/compilerxx.sh
new file mode 100755
index 000000000..ad3630f66
--- /dev/null
+++ b/src/Specific/solinas32_2e369m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='23 + 1/16' "$@"
diff --git a/src/Specific/solinas32_2e379m19/compiler.sh b/src/Specific/solinas32_2e379m19/compiler.sh
index 401968c8b..8e15b802b 100755
--- a/src/Specific/solinas32_2e379m19/compiler.sh
+++ b/src/Specific/solinas32_2e379m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='21 + 1/18' "$@"
diff --git a/src/Specific/solinas32_2e379m19/compilerxx.sh b/src/Specific/solinas32_2e379m19/compilerxx.sh
new file mode 100755
index 000000000..b824d2f73
--- /dev/null
+++ b/src/Specific/solinas32_2e379m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='21 + 1/18' "$@"
diff --git a/src/Specific/solinas32_2e382m105/compiler.sh b/src/Specific/solinas32_2e382m105/compiler.sh
index 401968c8b..ebe86794c 100755
--- a/src/Specific/solinas32_2e382m105/compiler.sh
+++ b/src/Specific/solinas32_2e382m105/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='19.1' "$@"
diff --git a/src/Specific/solinas32_2e382m105/compilerxx.sh b/src/Specific/solinas32_2e382m105/compilerxx.sh
new file mode 100755
index 000000000..02287f1c6
--- /dev/null
+++ b/src/Specific/solinas32_2e382m105/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='19.1' "$@"
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/compiler.sh b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/compiler.sh
index 401968c8b..d5442dde7 100755
--- a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/compiler.sh
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/compilerxx.sh b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/compilerxx.sh
new file mode 100755
index 000000000..37a1dd917
--- /dev/null
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e384m317/compiler.sh b/src/Specific/solinas32_2e384m317/compiler.sh
index 401968c8b..11d608082 100755
--- a/src/Specific/solinas32_2e384m317/compiler.sh
+++ b/src/Specific/solinas32_2e384m317/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e384m317/compilerxx.sh b/src/Specific/solinas32_2e384m317/compilerxx.sh
new file mode 100755
index 000000000..dc47197cc
--- /dev/null
+++ b/src/Specific/solinas32_2e384m317/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e384m5x2e368m1/compiler.sh b/src/Specific/solinas32_2e384m5x2e368m1/compiler.sh
index 401968c8b..4133d9733 100755
--- a/src/Specific/solinas32_2e384m5x2e368m1/compiler.sh
+++ b/src/Specific/solinas32_2e384m5x2e368m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e384m5x2e368m1/compilerxx.sh b/src/Specific/solinas32_2e384m5x2e368m1/compilerxx.sh
new file mode 100755
index 000000000..6f1f6d5fa
--- /dev/null
+++ b/src/Specific/solinas32_2e384m5x2e368m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e384m79x2e376m1/compiler.sh b/src/Specific/solinas32_2e384m79x2e376m1/compiler.sh
index 401968c8b..a861e9762 100755
--- a/src/Specific/solinas32_2e384m79x2e376m1/compiler.sh
+++ b/src/Specific/solinas32_2e384m79x2e376m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e384m79x2e376m1/compilerxx.sh b/src/Specific/solinas32_2e384m79x2e376m1/compilerxx.sh
new file mode 100755
index 000000000..a103b67b3
--- /dev/null
+++ b/src/Specific/solinas32_2e384m79x2e376m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='24' "$@"
diff --git a/src/Specific/solinas32_2e401m31/compiler.sh b/src/Specific/solinas32_2e401m31/compiler.sh
index 401968c8b..34cc811aa 100755
--- a/src/Specific/solinas32_2e401m31/compiler.sh
+++ b/src/Specific/solinas32_2e401m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='25 + 1/16' "$@"
diff --git a/src/Specific/solinas32_2e401m31/compilerxx.sh b/src/Specific/solinas32_2e401m31/compilerxx.sh
new file mode 100755
index 000000000..a8e942d87
--- /dev/null
+++ b/src/Specific/solinas32_2e401m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='25 + 1/16' "$@"
diff --git a/src/Specific/solinas32_2e414m17/compiler.sh b/src/Specific/solinas32_2e414m17/compiler.sh
index 401968c8b..886477b73 100755
--- a/src/Specific/solinas32_2e414m17/compiler.sh
+++ b/src/Specific/solinas32_2e414m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='23' "$@"
diff --git a/src/Specific/solinas32_2e414m17/compilerxx.sh b/src/Specific/solinas32_2e414m17/compilerxx.sh
new file mode 100755
index 000000000..c3009d34a
--- /dev/null
+++ b/src/Specific/solinas32_2e414m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='23' "$@"
diff --git a/src/Specific/solinas32_2e416m2e208m1/compiler.sh b/src/Specific/solinas32_2e416m2e208m1/compiler.sh
index 401968c8b..cdc9fc68b 100755
--- a/src/Specific/solinas32_2e416m2e208m1/compiler.sh
+++ b/src/Specific/solinas32_2e416m2e208m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e416m2e208m1/compilerxx.sh b/src/Specific/solinas32_2e416m2e208m1/compilerxx.sh
new file mode 100755
index 000000000..afb766d43
--- /dev/null
+++ b/src/Specific/solinas32_2e416m2e208m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e444m17/compiler.sh b/src/Specific/solinas32_2e444m17/compiler.sh
index 401968c8b..1f81caf28 100755
--- a/src/Specific/solinas32_2e444m17/compiler.sh
+++ b/src/Specific/solinas32_2e444m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='22.2' "$@"
diff --git a/src/Specific/solinas32_2e444m17/compilerxx.sh b/src/Specific/solinas32_2e444m17/compilerxx.sh
new file mode 100755
index 000000000..edd01835b
--- /dev/null
+++ b/src/Specific/solinas32_2e444m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='22.2' "$@"
diff --git a/src/Specific/solinas32_2e448m2e224m1/compiler.sh b/src/Specific/solinas32_2e448m2e224m1/compiler.sh
index 401968c8b..e7ca71439 100755
--- a/src/Specific/solinas32_2e448m2e224m1/compiler.sh
+++ b/src/Specific/solinas32_2e448m2e224m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e448m2e224m1/compilerxx.sh b/src/Specific/solinas32_2e448m2e224m1/compilerxx.sh
new file mode 100755
index 000000000..902106cd9
--- /dev/null
+++ b/src/Specific/solinas32_2e448m2e224m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='28' "$@"
diff --git a/src/Specific/solinas32_2e450m2e225m1/compiler.sh b/src/Specific/solinas32_2e450m2e225m1/compiler.sh
index 401968c8b..e6834c139 100755
--- a/src/Specific/solinas32_2e450m2e225m1/compiler.sh
+++ b/src/Specific/solinas32_2e450m2e225m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='30' "$@"
diff --git a/src/Specific/solinas32_2e450m2e225m1/compilerxx.sh b/src/Specific/solinas32_2e450m2e225m1/compilerxx.sh
new file mode 100755
index 000000000..f2a82562f
--- /dev/null
+++ b/src/Specific/solinas32_2e450m2e225m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='30' "$@"
diff --git a/src/Specific/solinas32_2e452m3/compiler.sh b/src/Specific/solinas32_2e452m3/compiler.sh
index 401968c8b..b2227d179 100755
--- a/src/Specific/solinas32_2e452m3/compiler.sh
+++ b/src/Specific/solinas32_2e452m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='28.25' "$@"
diff --git a/src/Specific/solinas32_2e452m3/compilerxx.sh b/src/Specific/solinas32_2e452m3/compilerxx.sh
new file mode 100755
index 000000000..8d7e50900
--- /dev/null
+++ b/src/Specific/solinas32_2e452m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='28.25' "$@"
diff --git a/src/Specific/solinas32_2e468m17/compiler.sh b/src/Specific/solinas32_2e468m17/compiler.sh
index 401968c8b..0ab1fce82 100755
--- a/src/Specific/solinas32_2e468m17/compiler.sh
+++ b/src/Specific/solinas32_2e468m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e468m17/compilerxx.sh b/src/Specific/solinas32_2e468m17/compilerxx.sh
new file mode 100755
index 000000000..171f91f2a
--- /dev/null
+++ b/src/Specific/solinas32_2e468m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='26' "$@"
diff --git a/src/Specific/solinas32_2e480m2e240m1/compiler.sh b/src/Specific/solinas32_2e480m2e240m1/compiler.sh
index 401968c8b..2088efcce 100755
--- a/src/Specific/solinas32_2e480m2e240m1/compiler.sh
+++ b/src/Specific/solinas32_2e480m2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='30' "$@"
diff --git a/src/Specific/solinas32_2e480m2e240m1/compilerxx.sh b/src/Specific/solinas32_2e480m2e240m1/compilerxx.sh
new file mode 100755
index 000000000..d54f8054e
--- /dev/null
+++ b/src/Specific/solinas32_2e480m2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='30' "$@"
diff --git a/src/Specific/solinas32_2e488m17/compiler.sh b/src/Specific/solinas32_2e488m17/compiler.sh
index 401968c8b..1fcadd617 100755
--- a/src/Specific/solinas32_2e488m17/compiler.sh
+++ b/src/Specific/solinas32_2e488m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='20 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e488m17/compilerxx.sh b/src/Specific/solinas32_2e488m17/compilerxx.sh
new file mode 100755
index 000000000..8f97f3fd8
--- /dev/null
+++ b/src/Specific/solinas32_2e488m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='20 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e489m21/compiler.sh b/src/Specific/solinas32_2e489m21/compiler.sh
index 401968c8b..31d8c60c6 100755
--- a/src/Specific/solinas32_2e489m21/compiler.sh
+++ b/src/Specific/solinas32_2e489m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='18 + 1/9' "$@"
diff --git a/src/Specific/solinas32_2e489m21/compilerxx.sh b/src/Specific/solinas32_2e489m21/compilerxx.sh
new file mode 100755
index 000000000..29523ac73
--- /dev/null
+++ b/src/Specific/solinas32_2e489m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='18 + 1/9' "$@"
diff --git a/src/Specific/solinas32_2e495m31/compiler.sh b/src/Specific/solinas32_2e495m31/compiler.sh
index 401968c8b..a4777b92f 100755
--- a/src/Specific/solinas32_2e495m31/compiler.sh
+++ b/src/Specific/solinas32_2e495m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='26 + 1/19' "$@"
diff --git a/src/Specific/solinas32_2e495m31/compilerxx.sh b/src/Specific/solinas32_2e495m31/compilerxx.sh
new file mode 100755
index 000000000..17d293d1e
--- /dev/null
+++ b/src/Specific/solinas32_2e495m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='26 + 1/19' "$@"
diff --git a/src/Specific/solinas32_2e510m290x2e496m1/compiler.sh b/src/Specific/solinas32_2e510m290x2e496m1/compiler.sh
index 401968c8b..86a3b2314 100755
--- a/src/Specific/solinas32_2e510m290x2e496m1/compiler.sh
+++ b/src/Specific/solinas32_2e510m290x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21.25' "$@"
diff --git a/src/Specific/solinas32_2e510m290x2e496m1/compilerxx.sh b/src/Specific/solinas32_2e510m290x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..56baf81a4
--- /dev/null
+++ b/src/Specific/solinas32_2e510m290x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21.25' "$@"
diff --git a/src/Specific/solinas32_2e511m187/compiler.sh b/src/Specific/solinas32_2e511m187/compiler.sh
index 401968c8b..3f9c7458a 100755
--- a/src/Specific/solinas32_2e511m187/compiler.sh
+++ b/src/Specific/solinas32_2e511m187/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='18.25' "$@"
diff --git a/src/Specific/solinas32_2e511m187/compilerxx.sh b/src/Specific/solinas32_2e511m187/compilerxx.sh
new file mode 100755
index 000000000..570b0109b
--- /dev/null
+++ b/src/Specific/solinas32_2e511m187/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='18.25' "$@"
diff --git a/src/Specific/solinas32_2e511m481/compiler.sh b/src/Specific/solinas32_2e511m481/compiler.sh
index 401968c8b..288df18d2 100755
--- a/src/Specific/solinas32_2e511m481/compiler.sh
+++ b/src/Specific/solinas32_2e511m481/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='18.25' "$@"
diff --git a/src/Specific/solinas32_2e511m481/compilerxx.sh b/src/Specific/solinas32_2e511m481/compilerxx.sh
new file mode 100755
index 000000000..6f145ebc4
--- /dev/null
+++ b/src/Specific/solinas32_2e511m481/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='18.25' "$@"
diff --git a/src/Specific/solinas32_2e512m491x2e496m1/compiler.sh b/src/Specific/solinas32_2e512m491x2e496m1/compiler.sh
index 401968c8b..bcc5631a1 100755
--- a/src/Specific/solinas32_2e512m491x2e496m1/compiler.sh
+++ b/src/Specific/solinas32_2e512m491x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e512m491x2e496m1/compilerxx.sh b/src/Specific/solinas32_2e512m491x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..7670feeb3
--- /dev/null
+++ b/src/Specific/solinas32_2e512m491x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e512m569/compiler.sh b/src/Specific/solinas32_2e512m569/compiler.sh
index 401968c8b..f2dd42e32 100755
--- a/src/Specific/solinas32_2e512m569/compiler.sh
+++ b/src/Specific/solinas32_2e512m569/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e512m569/compilerxx.sh b/src/Specific/solinas32_2e512m569/compilerxx.sh
new file mode 100755
index 000000000..342bee153
--- /dev/null
+++ b/src/Specific/solinas32_2e512m569/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='21 + 1/3' "$@"
diff --git a/src/Specific/solinas32_2e521m1/compiler.sh b/src/Specific/solinas32_2e521m1/compiler.sh
index 401968c8b..7d865aef8 100755
--- a/src/Specific/solinas32_2e521m1/compiler.sh
+++ b/src/Specific/solinas32_2e521m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='26 + 1/20' "$@"
diff --git a/src/Specific/solinas32_2e521m1/compilerxx.sh b/src/Specific/solinas32_2e521m1/compilerxx.sh
new file mode 100755
index 000000000..5352a2a8d
--- /dev/null
+++ b/src/Specific/solinas32_2e521m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='26 + 1/20' "$@"
diff --git a/src/Specific/solinas64_2e127m1/compiler.sh b/src/Specific/solinas64_2e127m1/compiler.sh
index 401968c8b..bf19280b4 100755
--- a/src/Specific/solinas64_2e127m1/compiler.sh
+++ b/src/Specific/solinas64_2e127m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='42 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e127m1/compilerxx.sh b/src/Specific/solinas64_2e127m1/compilerxx.sh
new file mode 100755
index 000000000..eed212c49
--- /dev/null
+++ b/src/Specific/solinas64_2e127m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<127) - 1 ' -Dmodulus_bytes_val='42 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e129m25/compiler.sh b/src/Specific/solinas64_2e129m25/compiler.sh
index 401968c8b..d47afcf4a 100755
--- a/src/Specific/solinas64_2e129m25/compiler.sh
+++ b/src/Specific/solinas64_2e129m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='43' "$@"
diff --git a/src/Specific/solinas64_2e129m25/compilerxx.sh b/src/Specific/solinas64_2e129m25/compilerxx.sh
new file mode 100755
index 000000000..d453c23b9
--- /dev/null
+++ b/src/Specific/solinas64_2e129m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<129) - 25' -Dmodulus_bytes_val='43' "$@"
diff --git a/src/Specific/solinas64_2e130m5/compiler.sh b/src/Specific/solinas64_2e130m5/compiler.sh
index 401968c8b..d55af5758 100755
--- a/src/Specific/solinas64_2e130m5/compiler.sh
+++ b/src/Specific/solinas64_2e130m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='43 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e130m5/compilerxx.sh b/src/Specific/solinas64_2e130m5/compilerxx.sh
new file mode 100755
index 000000000..48aa40593
--- /dev/null
+++ b/src/Specific/solinas64_2e130m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<130) - 5 ' -Dmodulus_bytes_val='43 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e137m13/compiler.sh b/src/Specific/solinas64_2e137m13/compiler.sh
index 401968c8b..518570bfa 100755
--- a/src/Specific/solinas64_2e137m13/compiler.sh
+++ b/src/Specific/solinas64_2e137m13/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='34.25' "$@"
diff --git a/src/Specific/solinas64_2e137m13/compilerxx.sh b/src/Specific/solinas64_2e137m13/compilerxx.sh
new file mode 100755
index 000000000..81b74a856
--- /dev/null
+++ b/src/Specific/solinas64_2e137m13/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<137) - 13' -Dmodulus_bytes_val='34.25' "$@"
diff --git a/src/Specific/solinas64_2e140m27/compiler.sh b/src/Specific/solinas64_2e140m27/compiler.sh
index 401968c8b..b774c2b1f 100755
--- a/src/Specific/solinas64_2e140m27/compiler.sh
+++ b/src/Specific/solinas64_2e140m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='35' "$@"
diff --git a/src/Specific/solinas64_2e140m27/compilerxx.sh b/src/Specific/solinas64_2e140m27/compilerxx.sh
new file mode 100755
index 000000000..202804821
--- /dev/null
+++ b/src/Specific/solinas64_2e140m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<140) - 27' -Dmodulus_bytes_val='35' "$@"
diff --git a/src/Specific/solinas64_2e141m9/compiler.sh b/src/Specific/solinas64_2e141m9/compiler.sh
index 401968c8b..afb884260 100755
--- a/src/Specific/solinas64_2e141m9/compiler.sh
+++ b/src/Specific/solinas64_2e141m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='47' "$@"
diff --git a/src/Specific/solinas64_2e141m9/compilerxx.sh b/src/Specific/solinas64_2e141m9/compilerxx.sh
new file mode 100755
index 000000000..17aeac8e5
--- /dev/null
+++ b/src/Specific/solinas64_2e141m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<141) - 9' -Dmodulus_bytes_val='47' "$@"
diff --git a/src/Specific/solinas64_2e150m3/compiler.sh b/src/Specific/solinas64_2e150m3/compiler.sh
index 401968c8b..297699b46 100755
--- a/src/Specific/solinas64_2e150m3/compiler.sh
+++ b/src/Specific/solinas64_2e150m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='50' "$@"
diff --git a/src/Specific/solinas64_2e150m3/compilerxx.sh b/src/Specific/solinas64_2e150m3/compilerxx.sh
new file mode 100755
index 000000000..622130252
--- /dev/null
+++ b/src/Specific/solinas64_2e150m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 3' -Dmodulus_bytes_val='50' "$@"
diff --git a/src/Specific/solinas64_2e150m5/compiler.sh b/src/Specific/solinas64_2e150m5/compiler.sh
index 401968c8b..2aecac7d2 100755
--- a/src/Specific/solinas64_2e150m5/compiler.sh
+++ b/src/Specific/solinas64_2e150m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='50' "$@"
diff --git a/src/Specific/solinas64_2e150m5/compilerxx.sh b/src/Specific/solinas64_2e150m5/compilerxx.sh
new file mode 100755
index 000000000..16ef23f58
--- /dev/null
+++ b/src/Specific/solinas64_2e150m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<150) - 5' -Dmodulus_bytes_val='50' "$@"
diff --git a/src/Specific/solinas64_2e152m17/compiler.sh b/src/Specific/solinas64_2e152m17/compiler.sh
index 401968c8b..ac40764bf 100755
--- a/src/Specific/solinas64_2e152m17/compiler.sh
+++ b/src/Specific/solinas64_2e152m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='38' "$@"
diff --git a/src/Specific/solinas64_2e152m17/compilerxx.sh b/src/Specific/solinas64_2e152m17/compilerxx.sh
new file mode 100755
index 000000000..4d46a10cb
--- /dev/null
+++ b/src/Specific/solinas64_2e152m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<152) - 17' -Dmodulus_bytes_val='38' "$@"
diff --git a/src/Specific/solinas64_2e158m15/compiler.sh b/src/Specific/solinas64_2e158m15/compiler.sh
index 401968c8b..d565a01ea 100755
--- a/src/Specific/solinas64_2e158m15/compiler.sh
+++ b/src/Specific/solinas64_2e158m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='39.5' "$@"
diff --git a/src/Specific/solinas64_2e158m15/compilerxx.sh b/src/Specific/solinas64_2e158m15/compilerxx.sh
new file mode 100755
index 000000000..df7d96181
--- /dev/null
+++ b/src/Specific/solinas64_2e158m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<158) - 15' -Dmodulus_bytes_val='39.5' "$@"
diff --git a/src/Specific/solinas64_2e165m25/compiler.sh b/src/Specific/solinas64_2e165m25/compiler.sh
index 401968c8b..0a1378183 100755
--- a/src/Specific/solinas64_2e165m25/compiler.sh
+++ b/src/Specific/solinas64_2e165m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='55' "$@"
diff --git a/src/Specific/solinas64_2e165m25/compilerxx.sh b/src/Specific/solinas64_2e165m25/compilerxx.sh
new file mode 100755
index 000000000..3a52d27a5
--- /dev/null
+++ b/src/Specific/solinas64_2e165m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<165) - 25' -Dmodulus_bytes_val='55' "$@"
diff --git a/src/Specific/solinas64_2e166m5/compiler.sh b/src/Specific/solinas64_2e166m5/compiler.sh
index 401968c8b..4b77bb190 100755
--- a/src/Specific/solinas64_2e166m5/compiler.sh
+++ b/src/Specific/solinas64_2e166m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='55 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e166m5/compilerxx.sh b/src/Specific/solinas64_2e166m5/compilerxx.sh
new file mode 100755
index 000000000..126df02b7
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<166) - 5' -Dmodulus_bytes_val='55 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e171m19/compiler.sh b/src/Specific/solinas64_2e171m19/compiler.sh
index 401968c8b..ebca1760b 100755
--- a/src/Specific/solinas64_2e171m19/compiler.sh
+++ b/src/Specific/solinas64_2e171m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='57' "$@"
diff --git a/src/Specific/solinas64_2e171m19/compilerxx.sh b/src/Specific/solinas64_2e171m19/compilerxx.sh
new file mode 100755
index 000000000..f21006bb9
--- /dev/null
+++ b/src/Specific/solinas64_2e171m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<171) - 19' -Dmodulus_bytes_val='57' "$@"
diff --git a/src/Specific/solinas64_2e174m17/compiler.sh b/src/Specific/solinas64_2e174m17/compiler.sh
index 401968c8b..30d0ffa8f 100755
--- a/src/Specific/solinas64_2e174m17/compiler.sh
+++ b/src/Specific/solinas64_2e174m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='58' "$@"
diff --git a/src/Specific/solinas64_2e174m17/compilerxx.sh b/src/Specific/solinas64_2e174m17/compilerxx.sh
new file mode 100755
index 000000000..2b7e6a5e5
--- /dev/null
+++ b/src/Specific/solinas64_2e174m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 17' -Dmodulus_bytes_val='58' "$@"
diff --git a/src/Specific/solinas64_2e174m3/compiler.sh b/src/Specific/solinas64_2e174m3/compiler.sh
index 401968c8b..bc9a83219 100755
--- a/src/Specific/solinas64_2e174m3/compiler.sh
+++ b/src/Specific/solinas64_2e174m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='58' "$@"
diff --git a/src/Specific/solinas64_2e174m3/compilerxx.sh b/src/Specific/solinas64_2e174m3/compilerxx.sh
new file mode 100755
index 000000000..78815442b
--- /dev/null
+++ b/src/Specific/solinas64_2e174m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<174) - 3' -Dmodulus_bytes_val='58' "$@"
diff --git a/src/Specific/solinas64_2e189m25/compiler.sh b/src/Specific/solinas64_2e189m25/compiler.sh
index 401968c8b..49f8f58c2 100755
--- a/src/Specific/solinas64_2e189m25/compiler.sh
+++ b/src/Specific/solinas64_2e189m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='47.25' "$@"
diff --git a/src/Specific/solinas64_2e189m25/compilerxx.sh b/src/Specific/solinas64_2e189m25/compilerxx.sh
new file mode 100755
index 000000000..6cd30a467
--- /dev/null
+++ b/src/Specific/solinas64_2e189m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<189) - 25' -Dmodulus_bytes_val='47.25' "$@"
diff --git a/src/Specific/solinas64_2e190m11/compiler.sh b/src/Specific/solinas64_2e190m11/compiler.sh
index 401968c8b..378855981 100755
--- a/src/Specific/solinas64_2e190m11/compiler.sh
+++ b/src/Specific/solinas64_2e190m11/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='47.5' "$@"
diff --git a/src/Specific/solinas64_2e190m11/compilerxx.sh b/src/Specific/solinas64_2e190m11/compilerxx.sh
new file mode 100755
index 000000000..6f0d67f17
--- /dev/null
+++ b/src/Specific/solinas64_2e190m11/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<190) - 11' -Dmodulus_bytes_val='47.5' "$@"
diff --git a/src/Specific/solinas64_2e191m19/compiler.sh b/src/Specific/solinas64_2e191m19/compiler.sh
index 401968c8b..a00da2d3f 100755
--- a/src/Specific/solinas64_2e191m19/compiler.sh
+++ b/src/Specific/solinas64_2e191m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='38.2' "$@"
diff --git a/src/Specific/solinas64_2e191m19/compilerxx.sh b/src/Specific/solinas64_2e191m19/compilerxx.sh
new file mode 100755
index 000000000..6b0d24a44
--- /dev/null
+++ b/src/Specific/solinas64_2e191m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<191) - 19' -Dmodulus_bytes_val='38.2' "$@"
diff --git a/src/Specific/solinas64_2e192m2e64m1/compiler.sh b/src/Specific/solinas64_2e192m2e64m1/compiler.sh
index 401968c8b..bf1d7f5b0 100755
--- a/src/Specific/solinas64_2e192m2e64m1/compiler.sh
+++ b/src/Specific/solinas64_2e192m2e64m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e192m2e64m1/compilerxx.sh b/src/Specific/solinas64_2e192m2e64m1/compilerxx.sh
new file mode 100755
index 000000000..95834de78
--- /dev/null
+++ b/src/Specific/solinas64_2e192m2e64m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<192) - (1_mpz<<64) - 1' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e194m33/compiler.sh b/src/Specific/solinas64_2e194m33/compiler.sh
index 401968c8b..cf686bcd3 100755
--- a/src/Specific/solinas64_2e194m33/compiler.sh
+++ b/src/Specific/solinas64_2e194m33/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='48.5' "$@"
diff --git a/src/Specific/solinas64_2e194m33/compilerxx.sh b/src/Specific/solinas64_2e194m33/compilerxx.sh
new file mode 100755
index 000000000..34360f9b7
--- /dev/null
+++ b/src/Specific/solinas64_2e194m33/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<194) - 33' -Dmodulus_bytes_val='48.5' "$@"
diff --git a/src/Specific/solinas64_2e196m15/compiler.sh b/src/Specific/solinas64_2e196m15/compiler.sh
index 401968c8b..25a69a928 100755
--- a/src/Specific/solinas64_2e196m15/compiler.sh
+++ b/src/Specific/solinas64_2e196m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='49' "$@"
diff --git a/src/Specific/solinas64_2e196m15/compilerxx.sh b/src/Specific/solinas64_2e196m15/compilerxx.sh
new file mode 100755
index 000000000..8c4514f23
--- /dev/null
+++ b/src/Specific/solinas64_2e196m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<196) - 15' -Dmodulus_bytes_val='49' "$@"
diff --git a/src/Specific/solinas64_2e198m17/compiler.sh b/src/Specific/solinas64_2e198m17/compiler.sh
index 401968c8b..72488244c 100755
--- a/src/Specific/solinas64_2e198m17/compiler.sh
+++ b/src/Specific/solinas64_2e198m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='49.5' "$@"
diff --git a/src/Specific/solinas64_2e198m17/compilerxx.sh b/src/Specific/solinas64_2e198m17/compilerxx.sh
new file mode 100755
index 000000000..162fc9eb0
--- /dev/null
+++ b/src/Specific/solinas64_2e198m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<198) - 17' -Dmodulus_bytes_val='49.5' "$@"
diff --git a/src/Specific/solinas64_2e205m45x2e198m1/compiler.sh b/src/Specific/solinas64_2e205m45x2e198m1/compiler.sh
index 401968c8b..fb63d2281 100755
--- a/src/Specific/solinas64_2e205m45x2e198m1/compiler.sh
+++ b/src/Specific/solinas64_2e205m45x2e198m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='51.25' "$@"
diff --git a/src/Specific/solinas64_2e205m45x2e198m1/compilerxx.sh b/src/Specific/solinas64_2e205m45x2e198m1/compilerxx.sh
new file mode 100755
index 000000000..a066f14a4
--- /dev/null
+++ b/src/Specific/solinas64_2e205m45x2e198m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<205) - 45*(1_mpz<<198) - 1' -Dmodulus_bytes_val='51.25' "$@"
diff --git a/src/Specific/solinas64_2e206m5/compiler.sh b/src/Specific/solinas64_2e206m5/compiler.sh
index 401968c8b..b560dfbbf 100755
--- a/src/Specific/solinas64_2e206m5/compiler.sh
+++ b/src/Specific/solinas64_2e206m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='51.5' "$@"
diff --git a/src/Specific/solinas64_2e206m5/compilerxx.sh b/src/Specific/solinas64_2e206m5/compilerxx.sh
new file mode 100755
index 000000000..b7dfa1c83
--- /dev/null
+++ b/src/Specific/solinas64_2e206m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<206) - 5' -Dmodulus_bytes_val='51.5' "$@"
diff --git a/src/Specific/solinas64_2e212m29/compiler.sh b/src/Specific/solinas64_2e212m29/compiler.sh
index 401968c8b..f534474bf 100755
--- a/src/Specific/solinas64_2e212m29/compiler.sh
+++ b/src/Specific/solinas64_2e212m29/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='53' "$@"
diff --git a/src/Specific/solinas64_2e212m29/compilerxx.sh b/src/Specific/solinas64_2e212m29/compilerxx.sh
new file mode 100755
index 000000000..1ccb9ced9
--- /dev/null
+++ b/src/Specific/solinas64_2e212m29/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<212) - 29' -Dmodulus_bytes_val='53' "$@"
diff --git a/src/Specific/solinas64_2e213m3/compiler.sh b/src/Specific/solinas64_2e213m3/compiler.sh
index 401968c8b..7e679a08b 100755
--- a/src/Specific/solinas64_2e213m3/compiler.sh
+++ b/src/Specific/solinas64_2e213m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='53.25' "$@"
diff --git a/src/Specific/solinas64_2e213m3/compilerxx.sh b/src/Specific/solinas64_2e213m3/compilerxx.sh
new file mode 100755
index 000000000..2c2ec09bc
--- /dev/null
+++ b/src/Specific/solinas64_2e213m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<213) - 3' -Dmodulus_bytes_val='53.25' "$@"
diff --git a/src/Specific/solinas64_2e216m2e108m1/compiler.sh b/src/Specific/solinas64_2e216m2e108m1/compiler.sh
index 401968c8b..8caf27494 100755
--- a/src/Specific/solinas64_2e216m2e108m1/compiler.sh
+++ b/src/Specific/solinas64_2e216m2e108m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='54' "$@"
diff --git a/src/Specific/solinas64_2e216m2e108m1/compilerxx.sh b/src/Specific/solinas64_2e216m2e108m1/compilerxx.sh
new file mode 100755
index 000000000..7271acbd4
--- /dev/null
+++ b/src/Specific/solinas64_2e216m2e108m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<216) - (1_mpz<<108) - 1' -Dmodulus_bytes_val='54' "$@"
diff --git a/src/Specific/solinas64_2e221m3/compiler.sh b/src/Specific/solinas64_2e221m3/compiler.sh
index 401968c8b..0c3ec9f22 100755
--- a/src/Specific/solinas64_2e221m3/compiler.sh
+++ b/src/Specific/solinas64_2e221m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='55.25' "$@"
diff --git a/src/Specific/solinas64_2e221m3/compilerxx.sh b/src/Specific/solinas64_2e221m3/compilerxx.sh
new file mode 100755
index 000000000..0c01b3b77
--- /dev/null
+++ b/src/Specific/solinas64_2e221m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<221) - 3' -Dmodulus_bytes_val='55.25' "$@"
diff --git a/src/Specific/solinas64_2e222m117/compiler.sh b/src/Specific/solinas64_2e222m117/compiler.sh
index 401968c8b..2b27de847 100755
--- a/src/Specific/solinas64_2e222m117/compiler.sh
+++ b/src/Specific/solinas64_2e222m117/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='55.5' "$@"
diff --git a/src/Specific/solinas64_2e222m117/compilerxx.sh b/src/Specific/solinas64_2e222m117/compilerxx.sh
new file mode 100755
index 000000000..843053f22
--- /dev/null
+++ b/src/Specific/solinas64_2e222m117/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<222) - 117' -Dmodulus_bytes_val='55.5' "$@"
diff --git a/src/Specific/solinas64_2e224m2e96p1/compiler.sh b/src/Specific/solinas64_2e224m2e96p1/compiler.sh
index 401968c8b..57ed22c82 100755
--- a/src/Specific/solinas64_2e224m2e96p1/compiler.sh
+++ b/src/Specific/solinas64_2e224m2e96p1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e224m2e96p1/compilerxx.sh b/src/Specific/solinas64_2e224m2e96p1/compilerxx.sh
new file mode 100755
index 000000000..d25416497
--- /dev/null
+++ b/src/Specific/solinas64_2e224m2e96p1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<224) - (1_mpz<<96) + 1 ' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e226m5/compiler.sh b/src/Specific/solinas64_2e226m5/compiler.sh
index 401968c8b..0d658280e 100755
--- a/src/Specific/solinas64_2e226m5/compiler.sh
+++ b/src/Specific/solinas64_2e226m5/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='56.5' "$@"
diff --git a/src/Specific/solinas64_2e226m5/compilerxx.sh b/src/Specific/solinas64_2e226m5/compilerxx.sh
new file mode 100755
index 000000000..bb3bf653f
--- /dev/null
+++ b/src/Specific/solinas64_2e226m5/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<226) - 5' -Dmodulus_bytes_val='56.5' "$@"
diff --git a/src/Specific/solinas64_2e230m27/compiler.sh b/src/Specific/solinas64_2e230m27/compiler.sh
index 401968c8b..748ed6f58 100755
--- a/src/Specific/solinas64_2e230m27/compiler.sh
+++ b/src/Specific/solinas64_2e230m27/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='57.5' "$@"
diff --git a/src/Specific/solinas64_2e230m27/compilerxx.sh b/src/Specific/solinas64_2e230m27/compilerxx.sh
new file mode 100755
index 000000000..bcb5e73c0
--- /dev/null
+++ b/src/Specific/solinas64_2e230m27/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<230) - 27' -Dmodulus_bytes_val='57.5' "$@"
diff --git a/src/Specific/solinas64_2e235m15/compiler.sh b/src/Specific/solinas64_2e235m15/compiler.sh
index 401968c8b..b226326bb 100755
--- a/src/Specific/solinas64_2e235m15/compiler.sh
+++ b/src/Specific/solinas64_2e235m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='47' "$@"
diff --git a/src/Specific/solinas64_2e235m15/compilerxx.sh b/src/Specific/solinas64_2e235m15/compilerxx.sh
new file mode 100755
index 000000000..95e789d85
--- /dev/null
+++ b/src/Specific/solinas64_2e235m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<235) - 15' -Dmodulus_bytes_val='47' "$@"
diff --git a/src/Specific/solinas64_2e243m9/compiler.sh b/src/Specific/solinas64_2e243m9/compiler.sh
index 401968c8b..eb96e9252 100755
--- a/src/Specific/solinas64_2e243m9/compiler.sh
+++ b/src/Specific/solinas64_2e243m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='40.5' "$@"
diff --git a/src/Specific/solinas64_2e243m9/compilerxx.sh b/src/Specific/solinas64_2e243m9/compilerxx.sh
new file mode 100755
index 000000000..f57c60838
--- /dev/null
+++ b/src/Specific/solinas64_2e243m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<243) - 9' -Dmodulus_bytes_val='40.5' "$@"
diff --git a/src/Specific/solinas64_2e251m9/compiler.sh b/src/Specific/solinas64_2e251m9/compiler.sh
index 401968c8b..5fc446107 100755
--- a/src/Specific/solinas64_2e251m9/compiler.sh
+++ b/src/Specific/solinas64_2e251m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='50.2' "$@"
diff --git a/src/Specific/solinas64_2e251m9/compilerxx.sh b/src/Specific/solinas64_2e251m9/compilerxx.sh
new file mode 100755
index 000000000..d17aaf808
--- /dev/null
+++ b/src/Specific/solinas64_2e251m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<251) - 9' -Dmodulus_bytes_val='50.2' "$@"
diff --git a/src/Specific/solinas64_2e254m127x2e240m1/compiler.sh b/src/Specific/solinas64_2e254m127x2e240m1/compiler.sh
index 401968c8b..3e3f1afba 100755
--- a/src/Specific/solinas64_2e254m127x2e240m1/compiler.sh
+++ b/src/Specific/solinas64_2e254m127x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='42 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e254m127x2e240m1/compilerxx.sh b/src/Specific/solinas64_2e254m127x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..959242cd3
--- /dev/null
+++ b/src/Specific/solinas64_2e254m127x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<254) - 127*(1_mpz<<240) - 1' -Dmodulus_bytes_val='42 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e255m19/compiler.sh b/src/Specific/solinas64_2e255m19/compiler.sh
index 401968c8b..4042d266a 100755
--- a/src/Specific/solinas64_2e255m19/compiler.sh
+++ b/src/Specific/solinas64_2e255m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e255m19/compilerxx.sh b/src/Specific/solinas64_2e255m19/compilerxx.sh
new file mode 100755
index 000000000..c59dbd072
--- /dev/null
+++ b/src/Specific/solinas64_2e255m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 19 ' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e255m2e4m2e1m1/compiler.sh b/src/Specific/solinas64_2e255m2e4m2e1m1/compiler.sh
index 401968c8b..fa529332c 100755
--- a/src/Specific/solinas64_2e255m2e4m2e1m1/compiler.sh
+++ b/src/Specific/solinas64_2e255m2e4m2e1m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e255m2e4m2e1m1/compilerxx.sh b/src/Specific/solinas64_2e255m2e4m2e1m1/compilerxx.sh
new file mode 100755
index 000000000..174e12448
--- /dev/null
+++ b/src/Specific/solinas64_2e255m2e4m2e1m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - (1_mpz<<4) - (1_mpz<<1) - 1' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e255m765/compiler.sh b/src/Specific/solinas64_2e255m765/compiler.sh
index 401968c8b..9c158ce2f 100755
--- a/src/Specific/solinas64_2e255m765/compiler.sh
+++ b/src/Specific/solinas64_2e255m765/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e255m765/compilerxx.sh b/src/Specific/solinas64_2e255m765/compilerxx.sh
new file mode 100755
index 000000000..9cd0317cf
--- /dev/null
+++ b/src/Specific/solinas64_2e255m765/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<255) - 765' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e256m189/compiler.sh b/src/Specific/solinas64_2e256m189/compiler.sh
index 401968c8b..924b62555 100755
--- a/src/Specific/solinas64_2e256m189/compiler.sh
+++ b/src/Specific/solinas64_2e256m189/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e256m189/compilerxx.sh b/src/Specific/solinas64_2e256m189/compilerxx.sh
new file mode 100755
index 000000000..7120fe9e7
--- /dev/null
+++ b/src/Specific/solinas64_2e256m189/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 189' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e256m2e224p2e192p2e96m1/compiler.sh b/src/Specific/solinas64_2e256m2e224p2e192p2e96m1/compiler.sh
index 401968c8b..a6678dbce 100755
--- a/src/Specific/solinas64_2e256m2e224p2e192p2e96m1/compiler.sh
+++ b/src/Specific/solinas64_2e256m2e224p2e192p2e96m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e256m2e224p2e192p2e96m1/compilerxx.sh b/src/Specific/solinas64_2e256m2e224p2e192p2e96m1/compilerxx.sh
new file mode 100755
index 000000000..7a069db2b
--- /dev/null
+++ b/src/Specific/solinas64_2e256m2e224p2e192p2e96m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e256m2e32m977/compiler.sh b/src/Specific/solinas64_2e256m2e32m977/compiler.sh
index 401968c8b..7c22a2e79 100755
--- a/src/Specific/solinas64_2e256m2e32m977/compiler.sh
+++ b/src/Specific/solinas64_2e256m2e32m977/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e256m2e32m977/compilerxx.sh b/src/Specific/solinas64_2e256m2e32m977/compilerxx.sh
new file mode 100755
index 000000000..e5e275bf6
--- /dev/null
+++ b/src/Specific/solinas64_2e256m2e32m977/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - (1_mpz<<32) - 977 ' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e256m88x2e240m1/compiler.sh b/src/Specific/solinas64_2e256m88x2e240m1/compiler.sh
index 401968c8b..c3a286d4b 100755
--- a/src/Specific/solinas64_2e256m88x2e240m1/compiler.sh
+++ b/src/Specific/solinas64_2e256m88x2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e256m88x2e240m1/compilerxx.sh b/src/Specific/solinas64_2e256m88x2e240m1/compilerxx.sh
new file mode 100755
index 000000000..8e6c73bf2
--- /dev/null
+++ b/src/Specific/solinas64_2e256m88x2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<256) - 88*(1_mpz<<240) - 1' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e266m3/compiler.sh b/src/Specific/solinas64_2e266m3/compiler.sh
index 401968c8b..fb323efbe 100755
--- a/src/Specific/solinas64_2e266m3/compiler.sh
+++ b/src/Specific/solinas64_2e266m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='53.2' "$@"
diff --git a/src/Specific/solinas64_2e266m3/compilerxx.sh b/src/Specific/solinas64_2e266m3/compilerxx.sh
new file mode 100755
index 000000000..6b3348867
--- /dev/null
+++ b/src/Specific/solinas64_2e266m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<266) - 3' -Dmodulus_bytes_val='53.2' "$@"
diff --git a/src/Specific/solinas64_2e285m9/compiler.sh b/src/Specific/solinas64_2e285m9/compiler.sh
index 401968c8b..509ac5c6e 100755
--- a/src/Specific/solinas64_2e285m9/compiler.sh
+++ b/src/Specific/solinas64_2e285m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='57' "$@"
diff --git a/src/Specific/solinas64_2e285m9/compilerxx.sh b/src/Specific/solinas64_2e285m9/compilerxx.sh
new file mode 100755
index 000000000..e7a19e226
--- /dev/null
+++ b/src/Specific/solinas64_2e285m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<285) - 9' -Dmodulus_bytes_val='57' "$@"
diff --git a/src/Specific/solinas64_2e291m19/compiler.sh b/src/Specific/solinas64_2e291m19/compiler.sh
index 401968c8b..62d0807d3 100755
--- a/src/Specific/solinas64_2e291m19/compiler.sh
+++ b/src/Specific/solinas64_2e291m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='58.2' "$@"
diff --git a/src/Specific/solinas64_2e291m19/compilerxx.sh b/src/Specific/solinas64_2e291m19/compilerxx.sh
new file mode 100755
index 000000000..2c4f9a89b
--- /dev/null
+++ b/src/Specific/solinas64_2e291m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<291) - 19' -Dmodulus_bytes_val='58.2' "$@"
diff --git a/src/Specific/solinas64_2e321m9/compiler.sh b/src/Specific/solinas64_2e321m9/compiler.sh
index 401968c8b..a4e02d67c 100755
--- a/src/Specific/solinas64_2e321m9/compiler.sh
+++ b/src/Specific/solinas64_2e321m9/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='53.5' "$@"
diff --git a/src/Specific/solinas64_2e321m9/compilerxx.sh b/src/Specific/solinas64_2e321m9/compilerxx.sh
new file mode 100755
index 000000000..1ae7a8b2f
--- /dev/null
+++ b/src/Specific/solinas64_2e321m9/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<321) - 9' -Dmodulus_bytes_val='53.5' "$@"
diff --git a/src/Specific/solinas64_2e322m2e161m1/compiler.sh b/src/Specific/solinas64_2e322m2e161m1/compiler.sh
index 401968c8b..ea5cc0ab5 100755
--- a/src/Specific/solinas64_2e322m2e161m1/compiler.sh
+++ b/src/Specific/solinas64_2e322m2e161m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='46' "$@"
diff --git a/src/Specific/solinas64_2e322m2e161m1/compilerxx.sh b/src/Specific/solinas64_2e322m2e161m1/compilerxx.sh
new file mode 100755
index 000000000..c41b66837
--- /dev/null
+++ b/src/Specific/solinas64_2e322m2e161m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<322) - (1_mpz<<161) - 1' -Dmodulus_bytes_val='46' "$@"
diff --git a/src/Specific/solinas64_2e336m17/compiler.sh b/src/Specific/solinas64_2e336m17/compiler.sh
index 401968c8b..7f549b1fe 100755
--- a/src/Specific/solinas64_2e336m17/compiler.sh
+++ b/src/Specific/solinas64_2e336m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e336m17/compilerxx.sh b/src/Specific/solinas64_2e336m17/compilerxx.sh
new file mode 100755
index 000000000..0dc9568f0
--- /dev/null
+++ b/src/Specific/solinas64_2e336m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 17' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e336m3/compiler.sh b/src/Specific/solinas64_2e336m3/compiler.sh
index 401968c8b..0bfed87b1 100755
--- a/src/Specific/solinas64_2e336m3/compiler.sh
+++ b/src/Specific/solinas64_2e336m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e336m3/compilerxx.sh b/src/Specific/solinas64_2e336m3/compilerxx.sh
new file mode 100755
index 000000000..dbff58c58
--- /dev/null
+++ b/src/Specific/solinas64_2e336m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<336) - 3' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e338m15/compiler.sh b/src/Specific/solinas64_2e338m15/compiler.sh
index 401968c8b..83563e8b4 100755
--- a/src/Specific/solinas64_2e338m15/compiler.sh
+++ b/src/Specific/solinas64_2e338m15/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='56 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e338m15/compilerxx.sh b/src/Specific/solinas64_2e338m15/compilerxx.sh
new file mode 100755
index 000000000..2ab709d66
--- /dev/null
+++ b/src/Specific/solinas64_2e338m15/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<338) - 15' -Dmodulus_bytes_val='56 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e369m25/compiler.sh b/src/Specific/solinas64_2e369m25/compiler.sh
index 401968c8b..d53e3bb4f 100755
--- a/src/Specific/solinas64_2e369m25/compiler.sh
+++ b/src/Specific/solinas64_2e369m25/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='46.125' "$@"
diff --git a/src/Specific/solinas64_2e369m25/compilerxx.sh b/src/Specific/solinas64_2e369m25/compilerxx.sh
new file mode 100755
index 000000000..7192cab2f
--- /dev/null
+++ b/src/Specific/solinas64_2e369m25/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<369) - 25' -Dmodulus_bytes_val='46.125' "$@"
diff --git a/src/Specific/solinas64_2e379m19/compiler.sh b/src/Specific/solinas64_2e379m19/compiler.sh
index 401968c8b..41652c882 100755
--- a/src/Specific/solinas64_2e379m19/compiler.sh
+++ b/src/Specific/solinas64_2e379m19/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='54 + 1/7' "$@"
diff --git a/src/Specific/solinas64_2e379m19/compilerxx.sh b/src/Specific/solinas64_2e379m19/compilerxx.sh
new file mode 100755
index 000000000..432e0a276
--- /dev/null
+++ b/src/Specific/solinas64_2e379m19/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<379) - 19' -Dmodulus_bytes_val='54 + 1/7' "$@"
diff --git a/src/Specific/solinas64_2e382m105/compiler.sh b/src/Specific/solinas64_2e382m105/compiler.sh
index 401968c8b..1c07697bb 100755
--- a/src/Specific/solinas64_2e382m105/compiler.sh
+++ b/src/Specific/solinas64_2e382m105/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='38.2' "$@"
diff --git a/src/Specific/solinas64_2e382m105/compilerxx.sh b/src/Specific/solinas64_2e382m105/compilerxx.sh
new file mode 100755
index 000000000..ce0d32524
--- /dev/null
+++ b/src/Specific/solinas64_2e382m105/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<382) - 105' -Dmodulus_bytes_val='38.2' "$@"
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/compiler.sh b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/compiler.sh
index 401968c8b..5a341626a 100755
--- a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/compiler.sh
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/compilerxx.sh b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/compilerxx.sh
new file mode 100755
index 000000000..2a1f52afd
--- /dev/null
+++ b/src/Specific/solinas64_2e384m2e128m2e96p2e32m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - (1_mpz<<128) - (1_mpz<<96) + (1_mpz<<32) - 1 ' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e384m317/compiler.sh b/src/Specific/solinas64_2e384m317/compiler.sh
index 401968c8b..a4dc9df80 100755
--- a/src/Specific/solinas64_2e384m317/compiler.sh
+++ b/src/Specific/solinas64_2e384m317/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e384m317/compilerxx.sh b/src/Specific/solinas64_2e384m317/compilerxx.sh
new file mode 100755
index 000000000..66d2afef1
--- /dev/null
+++ b/src/Specific/solinas64_2e384m317/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 317' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e384m5x2e368m1/compiler.sh b/src/Specific/solinas64_2e384m5x2e368m1/compiler.sh
index 401968c8b..cac45afdb 100755
--- a/src/Specific/solinas64_2e384m5x2e368m1/compiler.sh
+++ b/src/Specific/solinas64_2e384m5x2e368m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e384m5x2e368m1/compilerxx.sh b/src/Specific/solinas64_2e384m5x2e368m1/compilerxx.sh
new file mode 100755
index 000000000..f6b4e5452
--- /dev/null
+++ b/src/Specific/solinas64_2e384m5x2e368m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 5*(1_mpz<<368) - 1' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e384m79x2e376m1/compiler.sh b/src/Specific/solinas64_2e384m79x2e376m1/compiler.sh
index 401968c8b..bf6280817 100755
--- a/src/Specific/solinas64_2e384m79x2e376m1/compiler.sh
+++ b/src/Specific/solinas64_2e384m79x2e376m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e384m79x2e376m1/compilerxx.sh b/src/Specific/solinas64_2e384m79x2e376m1/compilerxx.sh
new file mode 100755
index 000000000..2cfc98b91
--- /dev/null
+++ b/src/Specific/solinas64_2e384m79x2e376m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<384) - 79*(1_mpz<<376) - 1' -Dmodulus_bytes_val='48' "$@"
diff --git a/src/Specific/solinas64_2e401m31/compiler.sh b/src/Specific/solinas64_2e401m31/compiler.sh
index 401968c8b..eb52acdfe 100755
--- a/src/Specific/solinas64_2e401m31/compiler.sh
+++ b/src/Specific/solinas64_2e401m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='50.125' "$@"
diff --git a/src/Specific/solinas64_2e401m31/compilerxx.sh b/src/Specific/solinas64_2e401m31/compilerxx.sh
new file mode 100755
index 000000000..c57e6196e
--- /dev/null
+++ b/src/Specific/solinas64_2e401m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<401) - 31' -Dmodulus_bytes_val='50.125' "$@"
diff --git a/src/Specific/solinas64_2e413m21/compiler.sh b/src/Specific/solinas64_2e413m21/compiler.sh
index 401968c8b..f9d0eddfc 100755
--- a/src/Specific/solinas64_2e413m21/compiler.sh
+++ b/src/Specific/solinas64_2e413m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='59' "$@"
diff --git a/src/Specific/solinas64_2e413m21/compilerxx.sh b/src/Specific/solinas64_2e413m21/compilerxx.sh
new file mode 100755
index 000000000..c5262dcee
--- /dev/null
+++ b/src/Specific/solinas64_2e413m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<413) - 21' -Dmodulus_bytes_val='59' "$@"
diff --git a/src/Specific/solinas64_2e414m17/compiler.sh b/src/Specific/solinas64_2e414m17/compiler.sh
index 401968c8b..a1cb04bad 100755
--- a/src/Specific/solinas64_2e414m17/compiler.sh
+++ b/src/Specific/solinas64_2e414m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='46' "$@"
diff --git a/src/Specific/solinas64_2e414m17/compilerxx.sh b/src/Specific/solinas64_2e414m17/compilerxx.sh
new file mode 100755
index 000000000..738e435fa
--- /dev/null
+++ b/src/Specific/solinas64_2e414m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<414) - 17' -Dmodulus_bytes_val='46' "$@"
diff --git a/src/Specific/solinas64_2e416m2e208m1/compiler.sh b/src/Specific/solinas64_2e416m2e208m1/compiler.sh
index 401968c8b..ca171fbc5 100755
--- a/src/Specific/solinas64_2e416m2e208m1/compiler.sh
+++ b/src/Specific/solinas64_2e416m2e208m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='52' "$@"
diff --git a/src/Specific/solinas64_2e416m2e208m1/compilerxx.sh b/src/Specific/solinas64_2e416m2e208m1/compilerxx.sh
new file mode 100755
index 000000000..b26cb0968
--- /dev/null
+++ b/src/Specific/solinas64_2e416m2e208m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<416) - (1_mpz<<208) - 1' -Dmodulus_bytes_val='52' "$@"
diff --git a/src/Specific/solinas64_2e444m17/compiler.sh b/src/Specific/solinas64_2e444m17/compiler.sh
index 401968c8b..e33e2c3a2 100755
--- a/src/Specific/solinas64_2e444m17/compiler.sh
+++ b/src/Specific/solinas64_2e444m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='55.5' "$@"
diff --git a/src/Specific/solinas64_2e444m17/compilerxx.sh b/src/Specific/solinas64_2e444m17/compilerxx.sh
new file mode 100755
index 000000000..9c1b0920d
--- /dev/null
+++ b/src/Specific/solinas64_2e444m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<444) - 17' -Dmodulus_bytes_val='55.5' "$@"
diff --git a/src/Specific/solinas64_2e448m2e224m1/compiler.sh b/src/Specific/solinas64_2e448m2e224m1/compiler.sh
index 401968c8b..cba77b6ca 100755
--- a/src/Specific/solinas64_2e448m2e224m1/compiler.sh
+++ b/src/Specific/solinas64_2e448m2e224m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e448m2e224m1/compilerxx.sh b/src/Specific/solinas64_2e448m2e224m1/compilerxx.sh
new file mode 100755
index 000000000..08ec14df4
--- /dev/null
+++ b/src/Specific/solinas64_2e448m2e224m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<448) - (1_mpz<<224) - 1 ' -Dmodulus_bytes_val='56' "$@"
diff --git a/src/Specific/solinas64_2e450m2e225m1/compiler.sh b/src/Specific/solinas64_2e450m2e225m1/compiler.sh
index 401968c8b..1c8e8fb23 100755
--- a/src/Specific/solinas64_2e450m2e225m1/compiler.sh
+++ b/src/Specific/solinas64_2e450m2e225m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='56.25' "$@"
diff --git a/src/Specific/solinas64_2e450m2e225m1/compilerxx.sh b/src/Specific/solinas64_2e450m2e225m1/compilerxx.sh
new file mode 100755
index 000000000..debe8fa4a
--- /dev/null
+++ b/src/Specific/solinas64_2e450m2e225m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<450) - (1_mpz<<225) - 1' -Dmodulus_bytes_val='56.25' "$@"
diff --git a/src/Specific/solinas64_2e452m3/compiler.sh b/src/Specific/solinas64_2e452m3/compiler.sh
index 401968c8b..657c1adeb 100755
--- a/src/Specific/solinas64_2e452m3/compiler.sh
+++ b/src/Specific/solinas64_2e452m3/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='56.5' "$@"
diff --git a/src/Specific/solinas64_2e452m3/compilerxx.sh b/src/Specific/solinas64_2e452m3/compilerxx.sh
new file mode 100755
index 000000000..d0c11e2f0
--- /dev/null
+++ b/src/Specific/solinas64_2e452m3/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<452) - 3' -Dmodulus_bytes_val='56.5' "$@"
diff --git a/src/Specific/solinas64_2e468m17/compiler.sh b/src/Specific/solinas64_2e468m17/compiler.sh
index 401968c8b..a0d17607c 100755
--- a/src/Specific/solinas64_2e468m17/compiler.sh
+++ b/src/Specific/solinas64_2e468m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='58.5' "$@"
diff --git a/src/Specific/solinas64_2e468m17/compilerxx.sh b/src/Specific/solinas64_2e468m17/compilerxx.sh
new file mode 100755
index 000000000..852ff8277
--- /dev/null
+++ b/src/Specific/solinas64_2e468m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<468) - 17' -Dmodulus_bytes_val='58.5' "$@"
diff --git a/src/Specific/solinas64_2e480m2e240m1/compiler.sh b/src/Specific/solinas64_2e480m2e240m1/compiler.sh
index 401968c8b..b7e29ea8a 100755
--- a/src/Specific/solinas64_2e480m2e240m1/compiler.sh
+++ b/src/Specific/solinas64_2e480m2e240m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='60' "$@"
diff --git a/src/Specific/solinas64_2e480m2e240m1/compilerxx.sh b/src/Specific/solinas64_2e480m2e240m1/compilerxx.sh
new file mode 100755
index 000000000..e5f7d8786
--- /dev/null
+++ b/src/Specific/solinas64_2e480m2e240m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<480) - (1_mpz<<240) - 1 ' -Dmodulus_bytes_val='60' "$@"
diff --git a/src/Specific/solinas64_2e488m17/compiler.sh b/src/Specific/solinas64_2e488m17/compiler.sh
index 401968c8b..fc07b4bbb 100755
--- a/src/Specific/solinas64_2e488m17/compiler.sh
+++ b/src/Specific/solinas64_2e488m17/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='30.5' "$@"
diff --git a/src/Specific/solinas64_2e488m17/compilerxx.sh b/src/Specific/solinas64_2e488m17/compilerxx.sh
new file mode 100755
index 000000000..a9c4ab6cd
--- /dev/null
+++ b/src/Specific/solinas64_2e488m17/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<488) - 17' -Dmodulus_bytes_val='30.5' "$@"
diff --git a/src/Specific/solinas64_2e489m21/compiler.sh b/src/Specific/solinas64_2e489m21/compiler.sh
index 401968c8b..c363eba2a 100755
--- a/src/Specific/solinas64_2e489m21/compiler.sh
+++ b/src/Specific/solinas64_2e489m21/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='54 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e489m21/compilerxx.sh b/src/Specific/solinas64_2e489m21/compilerxx.sh
new file mode 100755
index 000000000..e0a2babbd
--- /dev/null
+++ b/src/Specific/solinas64_2e489m21/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<489) - 21' -Dmodulus_bytes_val='54 + 1/3' "$@"
diff --git a/src/Specific/solinas64_2e495m31/compiler.sh b/src/Specific/solinas64_2e495m31/compiler.sh
index 401968c8b..3c1e08650 100755
--- a/src/Specific/solinas64_2e495m31/compiler.sh
+++ b/src/Specific/solinas64_2e495m31/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='55' "$@"
diff --git a/src/Specific/solinas64_2e495m31/compilerxx.sh b/src/Specific/solinas64_2e495m31/compilerxx.sh
new file mode 100755
index 000000000..8f5538f82
--- /dev/null
+++ b/src/Specific/solinas64_2e495m31/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<495) - 31' -Dmodulus_bytes_val='55' "$@"
diff --git a/src/Specific/solinas64_2e510m290x2e496m1/compiler.sh b/src/Specific/solinas64_2e510m290x2e496m1/compiler.sh
index 401968c8b..c603f7811 100755
--- a/src/Specific/solinas64_2e510m290x2e496m1/compiler.sh
+++ b/src/Specific/solinas64_2e510m290x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e510m290x2e496m1/compilerxx.sh b/src/Specific/solinas64_2e510m290x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..927a346df
--- /dev/null
+++ b/src/Specific/solinas64_2e510m290x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<510) - 290*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51' "$@"
diff --git a/src/Specific/solinas64_2e511m187/compiler.sh b/src/Specific/solinas64_2e511m187/compiler.sh
index 401968c8b..b5ca42ce6 100755
--- a/src/Specific/solinas64_2e511m187/compiler.sh
+++ b/src/Specific/solinas64_2e511m187/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='51.1' "$@"
diff --git a/src/Specific/solinas64_2e511m187/compilerxx.sh b/src/Specific/solinas64_2e511m187/compilerxx.sh
new file mode 100755
index 000000000..e7ea128c9
--- /dev/null
+++ b/src/Specific/solinas64_2e511m187/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 187' -Dmodulus_bytes_val='51.1' "$@"
diff --git a/src/Specific/solinas64_2e511m481/compiler.sh b/src/Specific/solinas64_2e511m481/compiler.sh
index 401968c8b..dba61c9db 100755
--- a/src/Specific/solinas64_2e511m481/compiler.sh
+++ b/src/Specific/solinas64_2e511m481/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='51.1' "$@"
diff --git a/src/Specific/solinas64_2e511m481/compilerxx.sh b/src/Specific/solinas64_2e511m481/compilerxx.sh
new file mode 100755
index 000000000..7ea977514
--- /dev/null
+++ b/src/Specific/solinas64_2e511m481/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<511) - 481' -Dmodulus_bytes_val='51.1' "$@"
diff --git a/src/Specific/solinas64_2e512m491x2e496m1/compiler.sh b/src/Specific/solinas64_2e512m491x2e496m1/compiler.sh
index 401968c8b..6a76af1da 100755
--- a/src/Specific/solinas64_2e512m491x2e496m1/compiler.sh
+++ b/src/Specific/solinas64_2e512m491x2e496m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e512m491x2e496m1/compilerxx.sh b/src/Specific/solinas64_2e512m491x2e496m1/compilerxx.sh
new file mode 100755
index 000000000..bf860e95f
--- /dev/null
+++ b/src/Specific/solinas64_2e512m491x2e496m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 491*(1_mpz<<496) - 1' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e512m569/compiler.sh b/src/Specific/solinas64_2e512m569/compiler.sh
index 401968c8b..da6f7c132 100755
--- a/src/Specific/solinas64_2e512m569/compiler.sh
+++ b/src/Specific/solinas64_2e512m569/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e512m569/compilerxx.sh b/src/Specific/solinas64_2e512m569/compilerxx.sh
new file mode 100755
index 000000000..29658dd6e
--- /dev/null
+++ b/src/Specific/solinas64_2e512m569/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<512) - 569' -Dmodulus_bytes_val='51.2' "$@"
diff --git a/src/Specific/solinas64_2e521m1/compiler.sh b/src/Specific/solinas64_2e521m1/compiler.sh
index 401968c8b..0f92d6aaa 100755
--- a/src/Specific/solinas64_2e521m1/compiler.sh
+++ b/src/Specific/solinas64_2e521m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='52.1' "$@"
diff --git a/src/Specific/solinas64_2e521m1/compilerxx.sh b/src/Specific/solinas64_2e521m1/compilerxx.sh
new file mode 100755
index 000000000..80061c73c
--- /dev/null
+++ b/src/Specific/solinas64_2e521m1/compilerxx.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -eu
+
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dq_mpz='(1_mpz<<521) - 1 ' -Dmodulus_bytes_val='52.1' "$@"