42 assert(
sizeof(mp_limb_t) == 8 ||
sizeof(mp_limb_t) == 4);
46 edwards_modulus_r = bigint_r(
"1552511030102430251236801561344621993261920897571225601");
48 if (
sizeof(mp_limb_t) == 8)
51 edwards_Fr::Rcubed = bigint_r(
"899968968216802386013510389846941393831065658679774050");
54 if (
sizeof(mp_limb_t) == 4)
57 edwards_Fr::Rcubed = bigint_r(
"899968968216802386013510389846941393831065658679774050");
61 edwards_Fr::euler = bigint_r(
"776255515051215125618400780672310996630960448785612800");
63 edwards_Fr::t = bigint_r(
"722944284836962004768104088187507350585386575");
72 edwards_modulus_q = bigint_q(
"6210044120409721004947206240885978274523751269793792001");
74 if (
sizeof(mp_limb_t) == 8)
77 edwards_Fq::Rcubed = bigint_q(
"1081560488703514202058739223469726982199727506489234349");
80 if (
sizeof(mp_limb_t) == 4)
83 edwards_Fq::Rcubed = bigint_q(
"1081560488703514202058739223469726982199727506489234349");
87 edwards_Fq::euler = bigint_q(
"3105022060204860502473603120442989137261875634896896000");
89 edwards_Fq::t = bigint_q(
"2891777139347848019072416350658041552884388375");
98 edwards_Fq3::euler =
bigint<3*edwards_q_limbs>(
"119744082713971502962992613191067836698205043373978948903839934564152994858051284658545502971203325031831647424413111161318314144765646525057914792711854057586688000");
100 edwards_Fq3::t =
bigint<3*edwards_q_limbs>(
"111520367408144756185815309352304634357062208814526860512643991563611659089151103662834971185031649686239331424621037357783237607000066456438894190557165125");
143 edwards_Fq(
"4869953702976555123067178261685365085639705297852816679"));
203 edwards_Fq(
"5339624155305731263217400504407647531329993548123477368"),
204 edwards_Fq(
"3964037981777308726208525982198654699800283729988686552")),
206 edwards_Fq(
"3264380230116139014996291397901297105159834497864380415"),
207 edwards_Fq(
"3504781284999684163274269077749440837914479176282903747")));
265 edwards_final_exponent =
bigint<6*edwards_q_limbs>(
"36943107177961694649618797346446870138748651578611748415128207429491593976636391130175425245705674550269561361208979548749447898941828686017765730419416875539615941651269793928962468899856083169227457503942470721108165443528513330156264699608120624990672333642644221591552000");
static Fp3_model< n, modulus > nqr_to_t
static my_Fp Frobenius_coeffs_c1[3]
static Fp3_model< n, modulus > one()
static bigint< 3 *n > t_minus_1_over_2
static my_Fp Frobenius_coeffs_c2[3]
static Fp3_model< n, modulus > zero()
static bigint< 3 *n > euler
static Fp3_model< n, modulus > nqr
static my_Fp Frobenius_coeffs_c1[6]
static Fp_model< n, modulus > multiplicative_generator
static Fp_model< n, modulus > zero()
static Fp_model< n, modulus > one()
static bigint< n > t_minus_1_over_2
static Fp_model< n, modulus > root_of_unity
static bigint< n > Rcubed
static bool modulus_is_valid()
static Fp_model< n, modulus > nqr_to_t
static Fp_model< n, modulus > nqr
static bigint< n > Rsquared
static std::vector< size_t > fixed_base_exp_window_table
static edwards_G1 G1_zero
static std::vector< size_t > wnaf_window_table
static std::vector< size_t > fixed_base_exp_window_table
static std::vector< size_t > wnaf_window_table
static edwards_G2 G2_zero
edwards_Fq3 edwards_twist
edwards_Fq edwards_coeff_a
void init_edwards_params()
Fp3_model< edwards_q_limbs, edwards_modulus_q > edwards_Fq3
bigint< edwards_r_limbs > edwards_modulus_r
bigint< 6 *edwards_q_limbs > edwards_final_exponent
Fp_model< edwards_q_limbs, edwards_modulus_q > edwards_Fq
edwards_Fq edwards_twist_mul_by_q_Y
edwards_Fq edwards_twist_mul_by_d_c1
edwards_Fq edwards_twist_mul_by_q_Z
bigint< edwards_q_limbs > edwards_final_exponent_last_chunk_abs_of_w0
bigint< edwards_q_limbs > edwards_modulus_q
edwards_Fq edwards_twist_mul_by_a_c0
edwards_Fq edwards_twist_mul_by_a_c1
edwards_Fq edwards_coeff_d
edwards_Fq3 edwards_twist_coeff_a
bigint< edwards_q_limbs > edwards_final_exponent_last_chunk_w1
bool edwards_final_exponent_last_chunk_is_w0_neg
edwards_Fq edwards_twist_mul_by_d_c2
Fp_model< edwards_r_limbs, edwards_modulus_r > edwards_Fr
edwards_Fq edwards_twist_mul_by_a_c2
edwards_Fq3 edwards_twist_coeff_d
edwards_Fq edwards_twist_mul_by_d_c0
bigint< edwards_q_limbs > edwards_ate_loop_count