aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/Framework/CurveParameters.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/Specific/Framework/CurveParameters.v')
-rw-r--r--src/Specific/Framework/CurveParameters.v25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/Specific/Framework/CurveParameters.v b/src/Specific/Framework/CurveParameters.v
index aa679a4d3..2d0bf5152 100644
--- a/src/Specific/Framework/CurveParameters.v
+++ b/src/Specific/Framework/CurveParameters.v
@@ -20,13 +20,13 @@ Module Type CurveParameters.
Parameter bitwidth : Z.
Parameter s : Z.
Parameter c : list limb.
- Parameter carry_chain1
- : option (list nat). (* defaults to [seq 0 (pred sz)] *)
- Parameter carry_chain2
- : option (list nat). (* defaults to [0 :: 1 :: nil] *)
- Parameter a24 : Z.
+ Parameter carry_chains
+ : option (list (list nat)). (* defaults to [seq 0 (pred sz) :: (0 :: 1 :: nil) :: nil] *)
+ Parameter a24 : option Z.
Parameter coef_div_modulus : nat.
+ Parameter goldilocks : bool.
+
Parameter mul_code : option (Z^sz -> Z^sz -> Z^sz).
Parameter square_code : option (Z^sz -> Z^sz).
Parameter upper_bound_of_exponent
@@ -54,11 +54,12 @@ Module FillCurveParameters (P : CurveParameters).
Definition bitwidth := P.bitwidth.
Definition s := P.s.
Definition c := P.c.
- Definition carry_chain1 := defaulted P.carry_chain1 (seq 0 (pred sz)).
- Definition carry_chain2 := defaulted P.carry_chain2 (0 :: 1 :: nil)%nat.
- Definition a24 := P.a24.
+ Definition carry_chains := defaulted P.carry_chains [seq 0 (pred sz); [0; 1]]%nat.
+ Definition a24 := defaulted P.a24 0.
Definition coef_div_modulus := P.coef_div_modulus.
+ Definition goldilocks := P.goldilocks.
+
Ltac default_mul :=
lazymatch (eval hnf in P.mul_code) with
| None => reflexivity
@@ -85,10 +86,10 @@ Module FillCurveParameters (P : CurveParameters).
let P_bitwidth := P.bitwidth in
let P_s := P.s in
let P_c := P.c in
- let P_carry_chain1 := P.carry_chain1 in
- let P_carry_chain2 := P.carry_chain2 in
+ let P_carry_chains := P.carry_chains in
let P_a24 := P.a24 in
let P_coef_div_modulus := P.coef_div_modulus in
+ let P_goldilocks := P.goldilocks in
let P_mul_code := P.mul_code in
let P_square_code := P.square_code in
let P_upper_bound_of_exponent := P.upper_bound_of_exponent in
@@ -96,8 +97,8 @@ Module FillCurveParameters (P : CurveParameters).
let P_freeze_extra_allowable_bit_widths := P.freeze_extra_allowable_bit_widths in
let v' := (eval cbv [id
List.app
- sz bitwidth s c carry_chain1 carry_chain2 a24 coef_div_modulus
- P_sz P_bitwidth P_s P_c P_carry_chain1 P_carry_chain2 P_a24 P_coef_div_modulus
+ sz bitwidth s c carry_chains a24 coef_div_modulus goldilocks
+ P_sz P_bitwidth P_s P_c P_carry_chains P_a24 P_coef_div_modulus P_goldilocks
P_mul_code P_square_code
upper_bound_of_exponent allowable_bit_widths freeze_allowable_bit_widths
P_upper_bound_of_exponent P_allowable_bit_widths P_freeze_extra_allowable_bit_widths