aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/solinas32_2e256m2e224p2e192p2e96m1
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-02 04:37:37 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-11-02 04:37:37 -0400
commit631e3c7dca28f754f997f9d079d6900d76b8430e (patch)
treea587aae695cb8e27cbe63f10928c12ccf9c56799 /src/Specific/solinas32_2e256m2e224p2e192p2e96m1
parentc1a11d3b06cd984099e00a298b087f3a67855474 (diff)
python3 generate_parameters.py primes.txt; (cd src/Specific/CurveParameters/; ./remake_curves.sh -f)
Diffstat (limited to 'src/Specific/solinas32_2e256m2e224p2e192p2e96m1')
-rwxr-xr-xsrc/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh2
-rwxr-xr-xsrc/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh2
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.v14
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.v4
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesub.v14
-rw-r--r--src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesubDisplay.v4
6 files changed, 38 insertions, 2 deletions
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh
index a560f4082..32c25425d 100755
--- a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dmodulus_limbs='12' -Dmodulus_bytes_val='21 + 1/3' -Dlimb_t=uint32_t -Dlimb_weight_gaps_array='{22,21,21,22,21,21,22,21,21,22,21,21}' -Dmodulus_array='{0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}' -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' "$@"
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dmodulus_bytes_val='21 + 1/3' -Dlimb_t=uint32_t -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_limbs='12' -Dlimb_weight_gaps_array='{22,21,21,22,21,21,22,21,21,22,21,21}' -Dmodulus_array='{0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}' "$@"
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh
index 35973c72f..583d3e5b9 100755
--- a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dmodulus_limbs='12' -Dmodulus_bytes_val='21 + 1/3' -Dlimb_t=uint32_t -Dlimb_weight_gaps_array='{22,21,21,22,21,21,22,21,21,22,21,21}' -Dmodulus_array='{0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}' -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' "$@"
+g++ -march=native -mtune=native -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Dmodulus_bytes_val='21 + 1/3' -Dlimb_t=uint32_t -Dq_mpz='(1_mpz<<256) - (1_mpz<<224) + (1_mpz<<192) + (1_mpz<<96) - 1 ' -Dmodulus_limbs='12' -Dlimb_weight_gaps_array='{22,21,21,22,21,21,22,21,21,22,21,21}' -Dmodulus_array='{0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}' "$@"
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.v b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.v
new file mode 100644
index 000000000..faccfd6cb
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.v
@@ -0,0 +1,14 @@
+Require Import Crypto.Arithmetic.PrimeFieldTheorems.
+Require Import Crypto.Specific.solinas32_2e256m2e224p2e192p2e96m1.Synthesis.
+
+(* TODO : change this to field once field isomorphism happens *)
+Definition add :
+ { add : feBW_tight -> feBW_tight -> feBW_loose
+ | forall a b, phiBW_loose (add a b) = F.add (phiBW_tight a) (phiBW_tight b) }.
+Proof.
+ Set Ltac Profiling.
+ Time synthesize_add ().
+ Show Ltac Profile.
+Time Defined.
+
+Print Assumptions add.
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.v b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.v
new file mode 100644
index 000000000..e97ac1868
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.v
@@ -0,0 +1,4 @@
+Require Import Crypto.Specific.solinas32_2e256m2e224p2e192p2e96m1.feadd.
+Require Import Crypto.Specific.Framework.IntegrationTestDisplayCommon.
+
+Check display add.
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesub.v b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesub.v
new file mode 100644
index 000000000..295f15e8d
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesub.v
@@ -0,0 +1,14 @@
+Require Import Crypto.Arithmetic.PrimeFieldTheorems.
+Require Import Crypto.Specific.solinas32_2e256m2e224p2e192p2e96m1.Synthesis.
+
+(* TODO : change this to field once field isomorphism happens *)
+Definition sub :
+ { sub : feBW_tight -> feBW_tight -> feBW_loose
+ | forall a b, phiBW_loose (sub a b) = F.sub (phiBW_tight a) (phiBW_tight b) }.
+Proof.
+ Set Ltac Profiling.
+ Time synthesize_sub ().
+ Show Ltac Profile.
+Time Defined.
+
+Print Assumptions sub.
diff --git a/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesubDisplay.v b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesubDisplay.v
new file mode 100644
index 000000000..c15b3af82
--- /dev/null
+++ b/src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesubDisplay.v
@@ -0,0 +1,4 @@
+Require Import Crypto.Specific.solinas32_2e256m2e224p2e192p2e96m1.fesub.
+Require Import Crypto.Specific.Framework.IntegrationTestDisplayCommon.
+
+Check display sub.