Clearmatics Libff  0.1
C++ library for Finite Fields and Elliptic Curves
bls12_377_pairing.hpp
Go to the documentation of this file.
1 
8 #ifndef BLS12_377_PAIRING_HPP_
9 #define BLS12_377_PAIRING_HPP_
11 #include <vector>
12 
13 namespace libff
14 {
15 
16 /* final exponentiation */
17 
19 
20 /* ate pairing */
21 
25 
26  bool operator==(const bls12_377_ate_G1_precomp &other) const;
27  friend std::ostream &operator<<(
28  std::ostream &out, const bls12_377_ate_G1_precomp &prec_P);
29  friend std::istream &operator>>(
30  std::istream &in, bls12_377_ate_G1_precomp &prec_P);
31 };
32 
37 
38  bool operator==(const bls12_377_ate_ell_coeffs &other) const;
39  friend std::ostream &operator<<(
40  std::ostream &out, const bls12_377_ate_ell_coeffs &dc);
41  friend std::istream &operator>>(
42  std::istream &in, bls12_377_ate_ell_coeffs &dc);
43 };
44 
48  std::vector<bls12_377_ate_ell_coeffs> coeffs;
49 
50  bool operator==(const bls12_377_ate_G2_precomp &other) const;
51  friend std::ostream &operator<<(
52  std::ostream &out, const bls12_377_ate_G2_precomp &prec_Q);
53  friend std::istream &operator>>(
54  std::istream &in, bls12_377_ate_G2_precomp &prec_Q);
55 };
56 
58  const bls12_377_Fq two_inv,
59  bls12_377_G2 &current,
62  const bls12_377_G2 &base,
63  bls12_377_G2 &current,
65 
68 
70  const bls12_377_ate_G1_precomp &prec_P,
71  const bls12_377_ate_G2_precomp &prec_Q);
73  const bls12_377_ate_G1_precomp &prec_P1,
74  const bls12_377_ate_G2_precomp &prec_Q1,
75  const bls12_377_ate_G1_precomp &prec_P2,
76  const bls12_377_ate_G2_precomp &prec_Q2);
77 
79  const bls12_377_Fq12 &elt);
82  const bls12_377_Fq12 &elt);
83 
85  const bls12_377_G1 &P, const bls12_377_G2 &Q);
87  const bls12_377_G1 &P, const bls12_377_G2 &Q);
88 
89 /* choice of pairing */
90 
93 
95 
97 
99  const bls12_377_G1_precomp &prec_P, const bls12_377_G2_precomp &prec_Q);
100 
102  const bls12_377_G1_precomp &prec_P1,
103  const bls12_377_G2_precomp &prec_Q1,
104  const bls12_377_G1_precomp &prec_P2,
105  const bls12_377_G2_precomp &prec_Q2);
106 
108 
110  const bls12_377_G1 &P, const bls12_377_G2 &Q);
111 
113  const bls12_377_G1 &P, const bls12_377_G2 &Q);
114 
115 } // namespace libff
116 #endif // BLS12_377_PAIRING_HPP_
libff::bls12_377_miller_loop
bls12_377_Fq12 bls12_377_miller_loop(const bls12_377_G1_precomp &prec_P, const bls12_377_G2_precomp &prec_Q)
Definition: bls12_377_pairing.cpp:552
libff::bls12_377_ate_G2_precomp::QY
bls12_377_Fq2 QY
Definition: bls12_377_pairing.hpp:47
libff::bls12_377_ate_G1_precomp::PY
bls12_377_Fq PY
Definition: bls12_377_pairing.hpp:24
bls12_377_init.hpp
libff::bls12_377_doubling_step_for_miller_loop
void bls12_377_doubling_step_for_miller_loop(const bls12_377_Fq two_inv, bls12_377_G2 &current, bls12_377_ate_ell_coeffs &c)
Definition: bls12_377_pairing.cpp:239
libff::bls12_377_ate_miller_loop
bls12_377_Fq12 bls12_377_ate_miller_loop(const bls12_377_ate_G1_precomp &prec_P, const bls12_377_ate_G2_precomp &prec_Q)
Definition: bls12_377_pairing.cpp:408
libff::bls12_377_final_exponentiation_last_chunk
bls12_377_Fq12 bls12_377_final_exponentiation_last_chunk(const bls12_377_Fq12 &elt)
Definition: bls12_377_pairing.cpp:151
libff::bls12_377_pairing
bls12_377_Fq12 bls12_377_pairing(const bls12_377_G1 &P, const bls12_377_G2 &Q)
Definition: bls12_377_pairing.cpp:567
libff::bls12_377_ate_G2_precomp::operator==
bool operator==(const bls12_377_ate_G2_precomp &other) const
Definition: bls12_377_pairing.cpp:60
libff::bls12_377_G2
Definition: bls12_377_g2.hpp:21
libff::bls12_377_precompute_G2
bls12_377_G2_precomp bls12_377_precompute_G2(const bls12_377_G2 &Q)
Definition: bls12_377_pairing.cpp:547
libff::bls12_377_reduced_pairing
bls12_377_GT bls12_377_reduced_pairing(const bls12_377_G1 &P, const bls12_377_G2 &Q)
Definition: bls12_377_pairing.cpp:572
libff
Definition: ffi.cpp:8
libff::bls12_377_ate_ell_coeffs::ell_0
bls12_377_Fq2 ell_0
Definition: bls12_377_pairing.hpp:34
libff::bls12_377_ate_ell_coeffs::operator<<
friend std::ostream & operator<<(std::ostream &out, const bls12_377_ate_ell_coeffs &dc)
Definition: bls12_377_pairing.cpp:42
libff::bls12_377_G1_precomp
bls12_377_ate_G1_precomp bls12_377_G1_precomp
Definition: bls12_377_pairing.hpp:91
libff::bls12_377_ate_G1_precomp::operator<<
friend std::ostream & operator<<(std::ostream &out, const bls12_377_ate_G1_precomp &prec_P)
Definition: bls12_377_pairing.cpp:17
libff::bls12_377_ate_G1_precomp::operator>>
friend std::istream & operator>>(std::istream &in, bls12_377_ate_G1_precomp &prec_P)
Definition: bls12_377_pairing.cpp:25
libff::bls12_377_ate_G2_precomp::operator<<
friend std::ostream & operator<<(std::ostream &out, const bls12_377_ate_G2_precomp &prec_Q)
Definition: bls12_377_pairing.cpp:68
libff::bls12_377_ate_G2_precomp
Definition: bls12_377_pairing.hpp:45
libff::bls12_377_Fq12
Fp12_2over3over2_model< bls12_377_q_limbs, bls12_377_modulus_q > bls12_377_Fq12
Definition: bls12_377_init.hpp:52
libff::bls12_377_ate_pairing
bls12_377_Fq12 bls12_377_ate_pairing(const bls12_377_G1 &P, const bls12_377_G2 &Q)
Definition: bls12_377_pairing.cpp:519
libff::bls12_377_G1
Definition: bls12_377_g1.hpp:21
libff::bls12_377_ate_G1_precomp::operator==
bool operator==(const bls12_377_ate_G1_precomp &other) const
Definition: bls12_377_pairing.cpp:11
libff::bls12_377_ate_ell_coeffs::ell_VW
bls12_377_Fq2 ell_VW
Definition: bls12_377_pairing.hpp:35
libff::bls12_377_precompute_G1
bls12_377_G1_precomp bls12_377_precompute_G1(const bls12_377_G1 &P)
Definition: bls12_377_pairing.cpp:542
libff::bls12_377_ate_ell_coeffs
Definition: bls12_377_pairing.hpp:33
libff::bls12_377_ate_G2_precomp::operator>>
friend std::istream & operator>>(std::istream &in, bls12_377_ate_G2_precomp &prec_Q)
Definition: bls12_377_pairing.cpp:79
libff::bls12_377_GT
bls12_377_Fq12 bls12_377_GT
Definition: bls12_377_init.hpp:53
libff::bls12_377_ate_G1_precomp::PX
bls12_377_Fq PX
Definition: bls12_377_pairing.hpp:23
libff::bls12_377_ate_G1_precomp
Definition: bls12_377_pairing.hpp:22
libff::bls12_377_ate_reduced_pairing
bls12_377_GT bls12_377_ate_reduced_pairing(const bls12_377_G1 &P, const bls12_377_G2 &Q)
Definition: bls12_377_pairing.cpp:530
libff::Fp12_2over3over2_model
Definition: fp12_2over3over2.hpp:20
libff::bls12_377_mixed_addition_step_for_miller_loop
void bls12_377_mixed_addition_step_for_miller_loop(const bls12_377_G2 &base, bls12_377_G2 &current, bls12_377_ate_ell_coeffs &c)
Definition: bls12_377_pairing.cpp:301
libff::bls12_377_affine_reduced_pairing
bls12_377_GT bls12_377_affine_reduced_pairing(const bls12_377_G1 &P, const bls12_377_G2 &Q)
libff::bls12_377_ate_ell_coeffs::ell_VV
bls12_377_Fq2 ell_VV
Definition: bls12_377_pairing.hpp:36
libff::bls12_377_final_exponentiation_first_chunk
bls12_377_Fq12 bls12_377_final_exponentiation_first_chunk(const bls12_377_Fq12 &elt)
Definition: bls12_377_pairing.cpp:109
libff::bls12_377_ate_ell_coeffs::operator>>
friend std::istream & operator>>(std::istream &in, bls12_377_ate_ell_coeffs &dc)
Definition: bls12_377_pairing.cpp:49
libff::Fp_model< bls12_377_q_limbs, bls12_377_modulus_q >
libff::bls12_377_ate_ell_coeffs::operator==
bool operator==(const bls12_377_ate_ell_coeffs &other) const
Definition: bls12_377_pairing.cpp:34
libff::bls12_377_final_exponentiation
bls12_377_GT bls12_377_final_exponentiation(const bls12_377_Fq12 &elt)
Definition: bls12_377_pairing.cpp:217
libff::bls12_377_ate_G2_precomp::QX
bls12_377_Fq2 QX
Definition: bls12_377_pairing.hpp:46
libff::Fp2_model< bls12_377_q_limbs, bls12_377_modulus_q >
libff::bls12_377_G2_precomp
bls12_377_ate_G2_precomp bls12_377_G2_precomp
Definition: bls12_377_pairing.hpp:92
libff::bls12_377_ate_precompute_G2
bls12_377_ate_G2_precomp bls12_377_ate_precompute_G2(const bls12_377_G2 &Q)
Definition: bls12_377_pairing.cpp:363
libff::bls12_377_ate_G2_precomp::coeffs
std::vector< bls12_377_ate_ell_coeffs > coeffs
Definition: bls12_377_pairing.hpp:48
libff::bls12_377_ate_precompute_G1
bls12_377_ate_G1_precomp bls12_377_ate_precompute_G1(const bls12_377_G1 &P)
Definition: bls12_377_pairing.cpp:333
libff::bls12_377_ate_double_miller_loop
bls12_377_Fq12 bls12_377_ate_double_miller_loop(const bls12_377_ate_G1_precomp &prec_P1, const bls12_377_ate_G2_precomp &prec_Q1, const bls12_377_ate_G1_precomp &prec_P2, const bls12_377_ate_G2_precomp &prec_Q2)
Definition: bls12_377_pairing.cpp:465
libff::bls12_377_double_miller_loop
bls12_377_Fq12 bls12_377_double_miller_loop(const bls12_377_G1_precomp &prec_P1, const bls12_377_G2_precomp &prec_Q1, const bls12_377_G1_precomp &prec_P2, const bls12_377_G2_precomp &prec_Q2)
Definition: bls12_377_pairing.cpp:558
libff::bls12_377_exp_by_z
bls12_377_Fq12 bls12_377_exp_by_z(const bls12_377_Fq12 &elt)
Definition: bls12_377_pairing.cpp:137