Clearmatics Libff
0.1
C++ library for Finite Fields and Elliptic Curves
|
Go to the documentation of this file.
44 sizeof(mp_limb_t) == 8 ||
45 sizeof(mp_limb_t) == 4);
50 bigint_r(
"1552511030102430251236801561344621993261920897571225601");
52 if (
sizeof(mp_limb_t) == 8) {
54 bigint_r(
"621738487827897760168419760282818735947979812540885779");
56 bigint_r(
"899968968216802386013510389846941393831065658679774050");
59 if (
sizeof(mp_limb_t) == 4) {
61 bigint_r(
"621738487827897760168419760282818735947979812540885779");
63 bigint_r(
"899968968216802386013510389846941393831065658679774050");
68 bigint_r(
"776255515051215125618400780672310996630960448785612800");
70 edwards_Fr::t = bigint_r(
"722944284836962004768104088187507350585386575");
72 bigint_r(
"361472142418481002384052044093753675292693287");
75 edwards_Fr(
"695314865466598274460565335217615316274564719601897184");
78 edwards_Fr(
"1326707053668679463752768729767248251415639579872144553");
84 bigint_q(
"6210044120409721004947206240885978274523751269793792001");
86 if (
sizeof(mp_limb_t) == 8) {
88 bigint_q(
"5943559676554581037560514598978484097352477055348195432");
90 bigint_q(
"1081560488703514202058739223469726982199727506489234349");
93 if (
sizeof(mp_limb_t) == 4) {
95 bigint_q(
"5943559676554581037560514598978484097352477055348195432");
97 bigint_q(
"1081560488703514202058739223469726982199727506489234349");
102 bigint_q(
"3105022060204860502473603120442989137261875634896896000");
104 edwards_Fq::t = bigint_q(
"2891777139347848019072416350658041552884388375");
106 bigint_q(
"1445888569673924009536208175329020776442194187");
109 edwards_Fq(
"4692813029219384139894873043933463717810008194158530536");
112 edwards_Fq(
"2626736066325740702418554487368721595489070118548299138");
118 "1197440827139715029629926131910678366982050433739789489038399345641529"
119 "9485805128465854550297120332503183164742441311116131831414476564652505"
120 "7914792711854057586688000");
123 "1115203674081447561858153093523046343570622088145268605126439915636116"
124 "5908915110366283497118503164968623933142462103735778323760700006645643"
127 "5576018370407237809290765467615231717853110440726343025632199578180582"
128 "9544575551831417485592515824843119665712310518678891618803500033228219"
134 edwards_Fq(
"104810943629412208121981114244673004633270996333237516"),
139 edwards_Fq(
"1073752683758513276629212192812154536507607213288832061");
141 edwards_Fq(
"5136291436651207728317994048073823738016144056504959939");
144 edwards_Fq(
"5136291436651207728317994048073823738016144056504959939");
146 edwards_Fq(
"1073752683758513276629212192812154536507607213288832061");
153 edwards_Fq(
"1073752683758513276629212192812154536507607213288832062");
155 edwards_Fq(
"1073752683758513276629212192812154536507607213288832061");
157 edwards_Fq(
"6210044120409721004947206240885978274523751269793792000");
159 edwards_Fq(
"5136291436651207728317994048073823738016144056504959939");
161 edwards_Fq(
"5136291436651207728317994048073823738016144056504959940");
168 edwards_Fq(
"600581931845324488256649384912508268813600056237543024");
180 edwards_Fq(
"1073752683758513276629212192812154536507607213288832062");
182 edwards_Fq(
"1073752683758513276629212192812154536507607213288832062");
188 edwards_Fq(
"3713709671941291996998665608188072510389821008693530490"),
189 edwards_Fq(
"4869953702976555123067178261685365085639705297852816679"));
249 "4531683359223370252210990718516622098304721701253228128"),
251 "5339624155305731263217400504407647531329993548123477368"),
253 "3964037981777308726208525982198654699800283729988686552")),
256 "364634864866983740775341816274081071386963546650700569"),
258 "3264380230116139014996291397901297105159834497864380415"),
260 "3504781284999684163274269077749440837914479176282903747")));
318 "3694310717796169464961879734644687013874865157861174841512820742949159"
319 "3976636391130175425245705674550269561361208979548749447898941828686017"
320 "7657304194168755396159416512697939289624688998560831692274575039424707"
321 "21108165443528513330156264699608120624990672333642644221591552000");
323 bigint_q(
"17970038794095729281964441603");
static Fp3_model< n, modulus > nqr_to_t
nqr^t
edwards_Fq edwards_twist_mul_by_d_c0
static my_Fp Frobenius_coeffs_c1[3]
non_residue^((modulus^i-1)/3) for i=0,1,2
bigint< edwards_q_limbs > edwards_final_exponent_last_chunk_w1
static bigint< 3 *n > euler
(modulus^3-1)/2
static std::vector< size_t > wnaf_window_table
static size_t s
modulus^3 = 2^s * t + 1
edwards_Fq3 edwards_twist_coeff_d
static Fp3_model< n, modulus > one()
static edwards_G2 G2_zero
edwards_Fq3 edwards_twist
static Fp_model< n, modulus > nqr
a quadratic nonresidue
static const Fp_model< n, modulus > & zero()
edwards_Fq3 edwards_twist_coeff_a
static bigint< 3 *n > t_minus_1_over_2
(t-1)/2
static bigint< n > t
with t odd
static size_t s
modulus = 2^s * t + 1
edwards_Fq edwards_twist_mul_by_q_Z
static edwards_G1 G1_zero
bool edwards_final_exponent_last_chunk_is_w0_neg
Fp_model< edwards_r_limbs, edwards_modulus_r > edwards_Fr
bigint< edwards_q_limbs > edwards_final_exponent_last_chunk_abs_of_w0
static bigint< n > euler
(modulus-1)/2
static bool modulus_is_valid()
bigint< edwards_q_limbs > edwards_ate_loop_count
edwards_Fq edwards_twist_mul_by_a_c1
bigint< 6 *edwards_q_limbs > edwards_final_exponent
static const Fp_model< n, modulus > & one()
static std::vector< size_t > wnaf_window_table
static my_Fp Frobenius_coeffs_c2[3]
non_residue^((2*modulus^i-2)/3) for i=0,1,2
bigint< edwards_r_limbs > edwards_modulus_r
static bigint< n > t_minus_1_over_2
(t-1)/2
static std::vector< size_t > fixed_base_exp_window_table
edwards_Fq edwards_coeff_d
static Fp3_model< n, modulus > nqr
a quadratic nonresidue in Fp3
static void static_init()
static Fp_model< n, modulus > root_of_unity
generator^((modulus-1)/2^s)
edwards_Fq edwards_twist_mul_by_a_c0
edwards_Fq edwards_coeff_a
static my_Fp Frobenius_coeffs_c1[6]
non_residue^((modulus^i-1)/6) for i=0,1,2,3,4,5
Fp3_model< edwards_q_limbs, edwards_modulus_q > edwards_Fq3
edwards_Fq edwards_twist_mul_by_q_Y
Fp_model< edwards_q_limbs, edwards_modulus_q > edwards_Fq
edwards_Fq edwards_twist_mul_by_d_c1
static Fp_model< n, modulus > nqr_to_t
nqr^t
static Fp_model< n, modulus > multiplicative_generator
generator of Fp^*
static mp_limb_t inv
-modulus^(-1) mod W, where W = 2^(word size)
edwards_Fq edwards_twist_mul_by_d_c2
bigint< edwards_q_limbs > edwards_modulus_q
static bigint< n > Rsquared
R^2, where R = W^k, where k = ??
void init_edwards_params()
static std::vector< size_t > fixed_base_exp_window_table
edwards_Fq edwards_twist_mul_by_a_c2
static bigint< n > Rcubed
R^3.
static Fp3_model< n, modulus > zero()
static bigint< 3 *n > t
with t odd