Clearmatics Libff  0.1
C++ library for Finite Fields and Elliptic Curves
alt_bn128_init.cpp
Go to the documentation of this file.
1 
11 
12 namespace libff
13 {
14 
17 
25 
31 
33 {
34  typedef bigint<alt_bn128_r_limbs> bigint_r;
35  typedef bigint<alt_bn128_q_limbs> bigint_q;
36 
37  assert(
38  sizeof(mp_limb_t) == 8 ||
39  sizeof(mp_limb_t) == 4); // Montgomery assumes this
40 
41  /* parameters for scalar field Fr */
42 
43  alt_bn128_modulus_r = bigint_r("2188824287183927522224640574525727508854836"
44  "4400416034343698204186575808495617");
46  if (sizeof(mp_limb_t) == 8) {
48  bigint_r("944936681149208446651664254269745548490766851729442924617"
49  "792859073125903783");
51  bigint_r("586654854594384522748989487204024472040386810557878410528"
52  "1690076696998248512");
53  alt_bn128_Fr::inv = 0xc2e1f593efffffff;
54  }
55  if (sizeof(mp_limb_t) == 4) {
57  bigint_r("944936681149208446651664254269745548490766851729442924617"
58  "792859073125903783");
60  bigint_r("586654854594384522748989487204024472040386810557878410528"
61  "1690076696998248512");
62  alt_bn128_Fr::inv = 0xefffffff;
63  }
65  alt_bn128_Fr::euler = bigint_r("1094412143591963761112320287262863754427418"
66  "2200208017171849102093287904247808");
67  alt_bn128_Fr::s = 28;
68  alt_bn128_Fr::t = bigint_r(
69  "81540058820840996586704275553141814055101440848469862132140264610111");
71  "40770029410420498293352137776570907027550720424234931066070132305055");
74  alt_bn128_Fr("191032190679217139442913928276920700361456519573292863153"
75  "05642004821462161904");
78  alt_bn128_Fr("191032190679217139442913928276920700361456519573292863153"
79  "05642004821462161904");
81 
82  /* parameters for base field Fq */
83 
84  alt_bn128_modulus_q = bigint_q("2188824287183927522224640574525727508869631"
85  "1157297823662689037894645226208583");
87  if (sizeof(mp_limb_t) == 8) {
89  bigint_q("309661650298370392384356793683737445173554096841907652877"
90  "1170197431451843209");
92  bigint_q("149217865411596481859481527385630809590936198385102451777"
93  "10943249661917737183");
94  alt_bn128_Fq::inv = 0x87d20782e4866389;
95  }
96  if (sizeof(mp_limb_t) == 4) {
98  bigint_q("309661650298370392384356793683737445173554096841907652877"
99  "1170197431451843209");
101  bigint_q("149217865411596481859481527385630809590936198385102451777"
102  "10943249661917737183");
103  alt_bn128_Fq::inv = 0xe4866389;
104  }
106  alt_bn128_Fq::euler = bigint_q("1094412143591963761112320287262863754434815"
107  "5578648911831344518947322613104291");
108  alt_bn128_Fq::s = 1;
109  alt_bn128_Fq::t = bigint_q("10944121435919637611123202872628637544348155578"
110  "648911831344518947322613104291");
112  bigint_q("5472060717959818805561601436314318772174077789324455915672259"
113  "473661306552145");
116  alt_bn128_Fq("218882428718392752222464057452572750886963111572978236626"
117  "89037894645226208582");
120  alt_bn128_Fq("218882428718392752222464057452572750886963111572978236626"
121  "89037894645226208582");
123 
124  /* parameters for twist field Fq2 */
126  "2395475880083114212209940226083393703996261582655504112182239011270350"
127  "4684318911872392052590971893598559411615740655013091812781706979347432"
128  "3196511433944");
129  alt_bn128_Fq2::s = 4;
131  "2994344850103892765262425282604242129995326978319380140227798764087938"
132  "0855398639840490065738714866998199264519675818766364765977133724184290"
133  "399563929243");
135  "1497172425051946382631212641302121064997663489159690070113899382043969"
136  "0427699319920245032869357433499099632259837909383182382988566862092145"
137  "199781964621");
139  alt_bn128_Fq("218882428718392752222464057452572750886963111572978236626"
140  "89037894645226208582");
143  alt_bn128_Fq("503350371626262426731249255837998268717520073493487759859"
144  "9011485707452665730"),
145  alt_bn128_Fq("314498342015008975724433667930697407966947188435857772134"
146  "235984660852259084"));
149  alt_bn128_Fq("218882428718392752222464057452572750886963111572978236626"
150  "89037894645226208582");
152 
153  /* parameters for Fq6 */
159  alt_bn128_Fq("215754636382808430103983242694308260992690442743472168272"
160  "12613867836435027261"),
161  alt_bn128_Fq("103076015958737097001522842738161122640692301306164367556"
162  "25194854815875713954"));
164  alt_bn128_Fq("218882428718392752200424452601091531672777074144720616417"
165  "14758635765020556616"),
166  alt_bn128_Fq("0"));
168  alt_bn128_Fq("377200088191985377643369518671385823900907359381719577177"
169  "3381919316419345261"),
170  alt_bn128_Fq("223659549596724518828170124820318179512106890260586122785"
171  "5261137820944008926"));
173  alt_bn128_Fq(
174  "2203960485148121921418603742825762020974279258880205651966"),
175  alt_bn128_Fq("0"));
177  alt_bn128_Fq("184290212234778536576607920343698658391145044464312347263"
178  "92080002137598044644"),
179  alt_bn128_Fq("934404577999832033381242022323798102950601212407552567920"
180  "8581902008406485703"));
184  alt_bn128_Fq("258191134446700933526731111546880309955166560507619674086"
185  "7805258568234346338"),
186  alt_bn128_Fq("199377569717756479879959321699293419943146406529649494483"
187  "13374472400716661030"));
189  alt_bn128_Fq(
190  "2203960485148121921418603742825762020974279258880205651966"),
191  alt_bn128_Fq("0"));
193  alt_bn128_Fq("532447920244990354272678339550621448192825776240064327978"
194  "0343368557297135718"),
195  alt_bn128_Fq("162089003807376930849194951273343879813937264198568887999"
196  "17914180988844123039"));
198  alt_bn128_Fq("218882428718392752200424452601091531672777074144720616417"
199  "14758635765020556616"),
200  alt_bn128_Fq("0"));
202  alt_bn128_Fq("139818523249223623442523112342822575072163877898209836420"
203  "40889267519694726527"),
204  alt_bn128_Fq("762982839116520937157738419325082020168425524177380907714"
205  "6787135900891633097"));
206 
207  /* parameters for Fq12 */
208 
214  alt_bn128_Fq("837611886576382149658397386762636409258990606586829877690"
215  "9617916018768340080"),
216  alt_bn128_Fq("164698233230778082238891372411765367990092866461081699356"
217  "59301613961712198316"));
219  alt_bn128_Fq("218882428718392752200424452601091531672777074144720616417"
220  "14758635765020556617"),
221  alt_bn128_Fq("0"));
223  alt_bn128_Fq("116974234963581543048257829225847253129123834411595050387"
224  "94027105778954184319"),
225  alt_bn128_Fq("303847389135065887422783454877609941456349188919719272345"
226  "083954437860409601"));
228  alt_bn128_Fq("218882428718392752200424452601091531672777074144720616417"
229  "14758635765020556616"),
230  alt_bn128_Fq("0"));
232  alt_bn128_Fq("332130463059433280824180905495836122032247737529120626188"
233  "4409189760185844239"),
234  alt_bn128_Fq("572226693789653288578005195895834823114337370010937299937"
235  "4820235121374419868"));
237  alt_bn128_Fq("218882428718392752222464057452572750886963111572978236626"
238  "89037894645226208582"),
239  alt_bn128_Fq("0"));
241  alt_bn128_Fq("135121240060754537256624318776309109961064050914295248857"
242  "79419978626457868503"),
243  alt_bn128_Fq("541841954876146699835726850408073828968702451118965372702"
244  "9736280683514010267"));
246  alt_bn128_Fq(
247  "2203960485148121921418603742825762020974279258880205651966"),
248  alt_bn128_Fq("0"));
250  alt_bn128_Fq("101908193754811209174206228226725497757839277161383186238"
251  "95010788866272024264"),
252  alt_bn128_Fq("215843954827042093348236222903796651472399619683781043903"
253  "43953940207365798982"));
255  alt_bn128_Fq(
256  "2203960485148121921418603742825762020974279258880205651967"),
257  alt_bn128_Fq("0"));
259  alt_bn128_Fq("185669382412449424140045966902989138683738337820066174008"
260  "04628704885040364344"),
261  alt_bn128_Fq("161659759339427423364663537862989268575529374571884506633"
262  "14217659523851788715"));
263 
264  /* choice of short Weierstrass curve and its twist */
265 
274  alt_bn128_Fq("215754636382808430103983242694308260992690442743472168272"
275  "12613867836435027261"),
276  alt_bn128_Fq("103076015958737097001522842738161122640692301306164367556"
277  "25194854815875713954"));
279  alt_bn128_Fq("282156518219453684454815956169350265935961718524412036707"
280  "8079554186484126554"),
281  alt_bn128_Fq("350584376791155637868703030998424884554024350989925964101"
282  "3678093033130930403"));
283 
284  /* choice of group G1 */
285 
286  // Identities
291 
292  // Curve coeffs
295 
296  // Cofactor
298 
299  // WNAF
301  alt_bn128_G1::wnaf_window_table.push_back(11);
302  alt_bn128_G1::wnaf_window_table.push_back(24);
303  alt_bn128_G1::wnaf_window_table.push_back(60);
304  alt_bn128_G1::wnaf_window_table.push_back(127);
305 
307  // window 1 is unbeaten in [-inf, 4.99]
309  // window 2 is unbeaten in [4.99, 10.99]
311  // window 3 is unbeaten in [10.99, 32.29]
313  // window 4 is unbeaten in [32.29, 55.23]
315  // window 5 is unbeaten in [55.23, 162.03]
317  // window 6 is unbeaten in [162.03, 360.15]
319  // window 7 is unbeaten in [360.15, 815.44]
321  // window 8 is unbeaten in [815.44, 2373.07]
323  // window 9 is unbeaten in [2373.07, 6977.75]
325  // window 10 is unbeaten in [6977.75, 7122.23]
327  // window 11 is unbeaten in [7122.23, 57818.46]
329  // window 12 is never the best
331  // window 13 is unbeaten in [57818.46, 169679.14]
333  // window 14 is never the best
335  // window 15 is unbeaten in [169679.14, 439758.91]
337  // window 16 is unbeaten in [439758.91, 936073.41]
339  // window 17 is unbeaten in [936073.41, 4666554.74]
341  // window 18 is never the best
343  // window 19 is unbeaten in [4666554.74, 7580404.42]
345  // window 20 is unbeaten in [7580404.42, 34552892.20]
347  // window 21 is never the best
349  // window 22 is unbeaten in [34552892.20, inf]
350  alt_bn128_G1::fixed_base_exp_window_table.push_back(34552892);
351 
352  /* choice of group G2 */
353 
354  // Identities
357 
360  alt_bn128_Fq("10857046999023057135944570762232829481370756359578518"
361  "086990519993285655852781"),
362  alt_bn128_Fq("11559732032986387107991004021392285783925812861821192"
363  "530917403151452391805634")),
365  alt_bn128_Fq("84956539231234314176049732474892724384181905872636001"
366  "48770280649306958101930"),
367  alt_bn128_Fq("40823678758634336813322034031454355683168513275934012"
368  "08105741076214120093531")),
370 
371  // Curve coeffs
374 
375  // Cofactor
376  // [Sage excerpt]
377  // u = 4965661367192848881
378  // h2 = (36 * u^4) + (36 * u^3) + (30 * u^2) + 6*u + 1; h2
379  // #
380  // 21888242871839275222246405745257275088844257914179612981679871602714643921549
382  bigint<alt_bn128_G2::h_limbs>("2188824287183927522224640574525727508884"
383  "4257914179612981679871602714643921549");
384 
385  // WNAF
387  alt_bn128_G2::wnaf_window_table.push_back(5);
388  alt_bn128_G2::wnaf_window_table.push_back(15);
389  alt_bn128_G2::wnaf_window_table.push_back(39);
390  alt_bn128_G2::wnaf_window_table.push_back(109);
391 
393  // window 1 is unbeaten in [-inf, 5.10]
395  // window 2 is unbeaten in [5.10, 10.43]
397  // window 3 is unbeaten in [10.43, 25.28]
399  // window 4 is unbeaten in [25.28, 59.00]
401  // window 5 is unbeaten in [59.00, 154.03]
403  // window 6 is unbeaten in [154.03, 334.25]
405  // window 7 is unbeaten in [334.25, 742.58]
407  // window 8 is unbeaten in [742.58, 2034.40]
409  // window 9 is unbeaten in [2034.40, 4987.56]
411  // window 10 is unbeaten in [4987.56, 8888.27]
413  // window 11 is unbeaten in [8888.27, 26271.13]
415  // window 12 is unbeaten in [26271.13, 39768.20]
417  // window 13 is unbeaten in [39768.20, 106275.75]
419  // window 14 is unbeaten in [106275.75, 141703.40]
421  // window 15 is unbeaten in [141703.40, 462422.97]
423  // window 16 is unbeaten in [462422.97, 926871.84]
425  // window 17 is unbeaten in [926871.84, 4873049.17]
427  // window 18 is never the best
429  // window 19 is unbeaten in [4873049.17, 5706707.88]
431  // window 20 is unbeaten in [5706707.88, 31673814.95]
433  // window 21 is never the best
435  // window 22 is unbeaten in [31673814.95, inf]
436  alt_bn128_G2::fixed_base_exp_window_table.push_back(31673815);
437 
438  /* pairing parameters */
439 
440  alt_bn128_ate_loop_count = bigint_q("29793968203157093288");
443  "5524842336132240963126171267831731470973821037629576541888827343141969"
444  "1083990754121397450276154062981700960854865468034362770115382944674781"
445  "0907373256841551006201639677726139946029199968412598804882391702273019"
446  "0836532720475663165843655597764930274954582383739028759376599435048732"
447  "2055416155052592630230333174746351564471187665317712957830319109590090"
448  "9191624817826566688241804408081892785725967931714097716709526092261278"
449  "0719525601711114440720492291235650574837501614600243533462841672824527"
450  "5621766233552881351913980829117053907212538123081572907154486160275093"
451  "6964829313608137325426383735122175229541155376346436093930287402089517"
452  "4269731789175697133847480818272554725769374714961957527271882614356332"
453  "7123871013173609629979816885292554054934233077527987700678435480142224"
454  "972257378356168517961881648003769500551542616236243107224563832474448"
455  "0");
456  alt_bn128_final_exponent_z = bigint_q("4965661367192848881");
458 }
459 } // namespace libff
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::euler
static bigint< 2 *n > euler
(modulus^2-1)/2
Definition: fp2.hpp:46
libff::alt_bn128_twist_mul_by_q_Y
alt_bn128_Fq2 alt_bn128_twist_mul_by_q_Y
Definition: alt_bn128_init.cpp:24
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::nqr_to_t
static Fp2_model< n, modulus > nqr_to_t
nqr^t
Definition: fp2.hpp:59
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::t_minus_1_over_2
static bigint< 2 *n > t_minus_1_over_2
(t-1)/2
Definition: fp2.hpp:52
libff
Definition: ffi.cpp:8
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::one
static const Fp2_model< n, modulus > & one()
libff::Fp_model::nqr
static Fp_model< n, modulus > nqr
a quadratic nonresidue
Definition: fp.hpp:70
libff::Fp_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::zero
static const Fp_model< n, modulus > & zero()
libff::Fp12_2over3over2_model::non_residue
static Fp2_model< n, modulus > non_residue
Definition: fp12_2over3over2.hpp:56
libff::Fp12_2over3over2_model::Frobenius_coeffs_c1
static Fp2_model< n, modulus > Frobenius_coeffs_c1[12]
non_residue^((modulus^i-1)/6) for i=0,...,11
Definition: fp12_2over3over2.hpp:58
libff::Fp_model::t
static bigint< n > t
with t odd
Definition: fp.hpp:66
libff::Fp_model::s
static size_t s
modulus = 2^s * t + 1
Definition: fp.hpp:64
libff::alt_bn128_G2::h
static bigint< h_limbs > h
Definition: alt_bn128_g2.hpp:43
libff::alt_bn128_G1::coeff_b
static alt_bn128_Fq coeff_b
Definition: alt_bn128_g1.hpp:33
libff::Fp_model::euler
static bigint< n > euler
(modulus-1)/2
Definition: fp.hpp:62
libff::alt_bn128_G1::G1_zero
static alt_bn128_G1 G1_zero
Definition: alt_bn128_g1.hpp:30
libff::alt_bn128_twist_coeff_b
alt_bn128_Fq2 alt_bn128_twist_coeff_b
Definition: alt_bn128_init.cpp:20
libff::alt_bn128_modulus_r
bigint< alt_bn128_r_limbs > alt_bn128_modulus_r
Definition: alt_bn128_init.cpp:15
libff::Fp6_3over2_model::Frobenius_coeffs_c1
static my_Fp2 Frobenius_coeffs_c1[6]
non_residue^((modulus^i-1)/3) for i=0,1,2,3,4,5
Definition: fp6_3over2.hpp:54
libff::Fp_model::modulus_is_valid
static bool modulus_is_valid()
Definition: fp.hpp:84
libff::alt_bn128_twist_mul_by_q_X
alt_bn128_Fq2 alt_bn128_twist_mul_by_q_X
Definition: alt_bn128_init.cpp:23
libff::Fp2_model::inverse
Fp2_model inverse() const
libff::Fp_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::one
static const Fp_model< n, modulus > & one()
libff::Fp6_3over2_model::Frobenius_coeffs_c2
static my_Fp2 Frobenius_coeffs_c2[6]
non_residue^((2*modulus^i-2)/3) for i=0,1,2,3,4,5
Definition: fp6_3over2.hpp:56
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::Frobenius_coeffs_c1
static my_Fp Frobenius_coeffs_c1[2]
non_residue^((modulus^i-1)/2) for i=0,1
Definition: fp2.hpp:61
libff::alt_bn128_G2::fixed_base_exp_window_table
static std::vector< size_t > fixed_base_exp_window_table
Definition: alt_bn128_g2.hpp:29
libff::alt_bn128_G2::G2_zero
static alt_bn128_G2 G2_zero
Definition: alt_bn128_g2.hpp:30
libff::alt_bn128_final_exponent_z
bigint< alt_bn128_q_limbs > alt_bn128_final_exponent_z
Definition: alt_bn128_init.cpp:29
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::nqr
static Fp2_model< n, modulus > nqr
a quadratic nonresidue in Fp2
Definition: fp2.hpp:57
libff::alt_bn128_twist_mul_by_b_c1
alt_bn128_Fq alt_bn128_twist_mul_by_b_c1
Definition: alt_bn128_init.cpp:22
alt_bn128_init.hpp
libff::alt_bn128_Fq2
Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q > alt_bn128_Fq2
Definition: alt_bn128_init.hpp:32
libff::alt_bn128_final_exponent
bigint< 12 *alt_bn128_q_limbs > alt_bn128_final_exponent
Definition: alt_bn128_init.cpp:28
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::static_init
static void static_init()
libff::alt_bn128_final_exponent_is_z_neg
bool alt_bn128_final_exponent_is_z_neg
Definition: alt_bn128_init.cpp:30
libff::alt_bn128_ate_is_loop_count_neg
bool alt_bn128_ate_is_loop_count_neg
Definition: alt_bn128_init.cpp:27
libff::alt_bn128_G1::G1_one
static alt_bn128_G1 G1_one
Definition: alt_bn128_g1.hpp:31
libff::Fp_model::t_minus_1_over_2
static bigint< n > t_minus_1_over_2
(t-1)/2
Definition: fp.hpp:68
libff::alt_bn128_G1::h
static bigint< h_limbs > h
Definition: alt_bn128_g1.hpp:42
libff::alt_bn128_G2::coeff_a
static alt_bn128_Fq2 coeff_a
Definition: alt_bn128_g2.hpp:32
libff::bigint
Definition: bigint.hpp:20
libff::alt_bn128_G2
Definition: alt_bn128_g2.hpp:21
libff::alt_bn128_modulus_q
bigint< alt_bn128_q_limbs > alt_bn128_modulus_q
Definition: alt_bn128_init.cpp:16
libff::alt_bn128_Fr
Fp_model< alt_bn128_r_limbs, alt_bn128_modulus_r > alt_bn128_Fr
Definition: alt_bn128_init.hpp:30
libff::Fp_model::static_init
static void static_init()
libff::alt_bn128_G1::fixed_base_exp_window_table
static std::vector< size_t > fixed_base_exp_window_table
Definition: alt_bn128_g1.hpp:29
libff::Fp_model::root_of_unity
static Fp_model< n, modulus > root_of_unity
generator^((modulus-1)/2^s)
Definition: fp.hpp:76
libff::alt_bn128_Fq
Fp_model< alt_bn128_q_limbs, alt_bn128_modulus_q > alt_bn128_Fq
Definition: alt_bn128_init.hpp:31
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::non_residue
static my_Fp non_residue
Definition: fp2.hpp:55
alt_bn128_g1.hpp
libff::alt_bn128_G1::coeff_a
static alt_bn128_Fq coeff_a
Definition: alt_bn128_g1.hpp:32
libff::Fp_model< alt_bn128_q_limbs, alt_bn128_modulus_q >
libff::Fp_model::nqr_to_t
static Fp_model< n, modulus > nqr_to_t
nqr^t
Definition: fp.hpp:72
libff::Fp_model::multiplicative_generator
static Fp_model< n, modulus > multiplicative_generator
generator of Fp^*
Definition: fp.hpp:74
libff::Fp_model::num_bits
static size_t num_bits
Definition: fp.hpp:60
libff::alt_bn128_G1::wnaf_window_table
static std::vector< size_t > wnaf_window_table
Definition: alt_bn128_g1.hpp:28
libff::Fp2_model
Definition: fp2.hpp:18
libff::alt_bn128_G2::wnaf_window_table
static std::vector< size_t > wnaf_window_table
Definition: alt_bn128_g2.hpp:28
libff::alt_bn128_G1
Definition: alt_bn128_g1.hpp:21
libff::Fp_model::inv
static mp_limb_t inv
-modulus^(-1) mod W, where W = 2^(word size)
Definition: fp.hpp:78
libff::alt_bn128_twist_mul_by_b_c0
alt_bn128_Fq alt_bn128_twist_mul_by_b_c0
Definition: alt_bn128_init.cpp:21
libff::Fp6_3over2_model::non_residue
static my_Fp2 non_residue
Definition: fp6_3over2.hpp:52
libff::alt_bn128_G2::G2_one
static alt_bn128_G2 G2_one
Definition: alt_bn128_g2.hpp:31
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::zero
static const Fp2_model< n, modulus > & zero()
libff::init_alt_bn128_params
void init_alt_bn128_params()
Definition: alt_bn128_init.cpp:32
libff::alt_bn128_G2::coeff_b
static alt_bn128_Fq2 coeff_b
Definition: alt_bn128_g2.hpp:33
libff::Fp_model::Rsquared
static bigint< n > Rsquared
R^2, where R = W^k, where k = ??
Definition: fp.hpp:80
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::t
static bigint< 2 *n > t
with t odd
Definition: fp2.hpp:50
libff::alt_bn128_ate_loop_count
bigint< alt_bn128_q_limbs > alt_bn128_ate_loop_count
Definition: alt_bn128_init.cpp:26
libff::Fp2_model< alt_bn128_q_limbs, alt_bn128_modulus_q >::s
static size_t s
modulus^2 = 2^s * t + 1
Definition: fp2.hpp:48
libff::alt_bn128_coeff_b
alt_bn128_Fq alt_bn128_coeff_b
Definition: alt_bn128_init.cpp:18
libff::Fp_model::Rcubed
static bigint< n > Rcubed
R^3.
Definition: fp.hpp:82
alt_bn128_g2.hpp
libff::alt_bn128_twist
alt_bn128_Fq2 alt_bn128_twist
Definition: alt_bn128_init.cpp:19