From 631e3c7dca28f754f997f9d079d6900d76b8430e Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Thu, 2 Nov 2017 04:37:37 -0400 Subject: python3 generate_parameters.py primes.txt; (cd src/Specific/CurveParameters/; ./remake_curves.sh -f) --- .../solinas32_2e256m2e224p2e192p2e96m1/compiler.sh | 2 +- .../solinas32_2e256m2e224p2e192p2e96m1/compilerxx.sh | 2 +- src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.v | 14 ++++++++++++++ .../solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.v | 4 ++++ src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesub.v | 14 ++++++++++++++ .../solinas32_2e256m2e224p2e192p2e96m1/fesubDisplay.v | 4 ++++ 6 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feadd.v create mode 100644 src/Specific/solinas32_2e256m2e224p2e192p2e96m1/feaddDisplay.v create mode 100644 src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesub.v create mode 100644 src/Specific/solinas32_2e256m2e224p2e192p2e96m1/fesubDisplay.v (limited to 'src/Specific/solinas32_2e256m2e224p2e192p2e96m1') 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. -- cgit v1.2.3