aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/CurveParameters
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-02 03:11:38 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-11-02 03:11:38 -0400
commitc17d449d001239930418c04160ddb168239295ea (patch)
tree83ed43994584c4c3ab856d902ad19167bcef6a44 /src/Specific/CurveParameters
parent498a7dab48c80497a9173d7c94e9e4dde75b73d8 (diff)
Add -D compiler arguments for gmpxx.cpp
Diffstat (limited to 'src/Specific/CurveParameters')
-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
315 files changed, 630 insertions, 315 deletions
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",