Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
mnt6_pairing.hpp
Go to the documentation of this file.
1
12#ifndef MNT6_PAIRING_HPP_
13#define MNT6_PAIRING_HPP_
14
15#include <vector>
16
18
19namespace libff {
20
21/* final exponentiation */
22
24 const mnt6_Fq6 &elt_inv);
26 const mnt6_Fq6 &elt_inv);
28
29/* affine ate miller loop */
30
36
45
49 std::vector<mnt6_affine_ate_coeffs> coeffs;
50};
51
54
57
58/* ate pairing */
59
65
66 bool operator==(const mnt6_ate_G1_precomp &other) const;
67 friend std::ostream& operator<<(std::ostream &out, const mnt6_ate_G1_precomp &prec_P);
68 friend std::istream& operator>>(std::istream &in, mnt6_ate_G1_precomp &prec_P);
69};
70
76
77 bool operator==(const mnt6_ate_dbl_coeffs &other) const;
78 friend std::ostream& operator<<(std::ostream &out, const mnt6_ate_dbl_coeffs &dc);
79 friend std::istream& operator>>(std::istream &in, mnt6_ate_dbl_coeffs &dc);
80};
81
85
86 bool operator==(const mnt6_ate_add_coeffs &other) const;
87 friend std::ostream& operator<<(std::ostream &out, const mnt6_ate_add_coeffs &dc);
88 friend std::istream& operator>>(std::istream &in, mnt6_ate_add_coeffs &dc);
89};
90
97 std::vector<mnt6_ate_dbl_coeffs> dbl_coeffs;
98 std::vector<mnt6_ate_add_coeffs> add_coeffs;
99
100 bool operator==(const mnt6_ate_G2_precomp &other) const;
101 friend std::ostream& operator<<(std::ostream &out, const mnt6_ate_G2_precomp &prec_Q);
102 friend std::istream& operator>>(std::istream &in, mnt6_ate_G2_precomp &prec_Q);
103};
104
107
109 const mnt6_ate_G2_precomp &prec_Q);
111 const mnt6_ate_G2_precomp &prec_Q1,
112 const mnt6_ate_G1_precomp &prec_P2,
113 const mnt6_ate_G2_precomp &prec_Q2);
114
116 const mnt6_G2 &Q);
118 const mnt6_G2 &Q);
119
120/* choice of pairing */
121
124
126
128
130 const mnt6_G2_precomp &prec_Q);
131
133 const mnt6_G2_precomp &prec_Q1,
134 const mnt6_G1_precomp &prec_P2,
135 const mnt6_G2_precomp &prec_Q2);
136
138 const mnt6_G2 &Q);
139
141 const mnt6_G2 &Q);
142
144 const mnt6_G2 &Q);
145
146} // libff
147
148#endif // MNT6_PAIRING_HPP_
#define P
Definition dtoa.c:437
Fp6_2over3_model< mnt6_q_limbs, mnt6_modulus_q > mnt6_Fq6
Definition mnt6_init.hpp:38
mnt6_GT mnt6_final_exponentiation(const mnt6_Fq6 &elt)
mnt6_Fq6 mnt6_ate_miller_loop(const mnt6_ate_G1_precomp &prec_P, const mnt6_ate_G2_precomp &prec_Q)
mnt6_Fq6 mnt6_final_exponentiation_last_chunk(const mnt6_Fq6 &elt, const mnt6_Fq6 &elt_inv)
mnt6_ate_G1_precomp mnt6_ate_precompute_G1(const mnt6_G1 &P)
mnt6_GT mnt6_ate_reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
mnt6_ate_G2_precomp mnt6_ate_precompute_G2(const mnt6_G2 &Q)
mnt6_GT mnt6_reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
mnt6_Fq6 mnt6_miller_loop(const mnt6_G1_precomp &prec_P, const mnt6_G2_precomp &prec_Q)
mnt6_ate_G1_precomp mnt6_G1_precomp
mnt6_Fq6 mnt6_double_miller_loop(const mnt6_G1_precomp &prec_P1, const mnt6_G2_precomp &prec_Q1, const mnt6_G1_precomp &prec_P2, const mnt6_G2_precomp &prec_Q2)
mnt6_Fq6 mnt6_ate_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
mnt6_Fq6 mnt6_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
mnt6_ate_G2_precomp mnt6_G2_precomp
mnt6_Fq6 mnt6_GT
Definition mnt6_init.hpp:39
mnt6_Fq6 mnt6_final_exponentiation_first_chunk(const mnt6_Fq6 &elt, const mnt6_Fq6 &elt_inv)
mnt6_Fq6 mnt6_ate_double_miller_loop(const mnt6_ate_G1_precomp &prec_P1, const mnt6_ate_G2_precomp &prec_Q1, const mnt6_ate_G1_precomp &prec_P2, const mnt6_ate_G2_precomp &prec_Q2)
mnt6_affine_ate_G1_precomputation mnt6_affine_ate_precompute_G1(const mnt6_G1 &P)
mnt6_GT mnt6_affine_reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
mnt6_G1_precomp mnt6_precompute_G1(const mnt6_G1 &P)
mnt6_Fq6 mnt6_affine_ate_miller_loop(const mnt6_affine_ate_G1_precomputation &prec_P, const mnt6_affine_ate_G2_precomputation &prec_Q)
mnt6_affine_ate_G2_precomputation mnt6_affine_ate_precompute_G2(const mnt6_G2 &Q)
mnt6_G2_precomp mnt6_precompute_G2(const mnt6_G2 &Q)
std::vector< mnt6_affine_ate_coeffs > coeffs
friend std::ostream & operator<<(std::ostream &out, const mnt6_ate_G1_precomp &prec_P)
friend std::istream & operator>>(std::istream &in, mnt6_ate_G1_precomp &prec_P)
bool operator==(const mnt6_ate_G1_precomp &other) const
std::vector< mnt6_ate_add_coeffs > add_coeffs
friend std::istream & operator>>(std::istream &in, mnt6_ate_G2_precomp &prec_Q)
bool operator==(const mnt6_ate_G2_precomp &other) const
friend std::ostream & operator<<(std::ostream &out, const mnt6_ate_G2_precomp &prec_Q)
std::vector< mnt6_ate_dbl_coeffs > dbl_coeffs
friend std::istream & operator>>(std::istream &in, mnt6_ate_add_coeffs &dc)
friend std::ostream & operator<<(std::ostream &out, const mnt6_ate_add_coeffs &dc)
bool operator==(const mnt6_ate_add_coeffs &other) const
friend std::ostream & operator<<(std::ostream &out, const mnt6_ate_dbl_coeffs &dc)
bool operator==(const mnt6_ate_dbl_coeffs &other) const
friend std::istream & operator>>(std::istream &in, mnt6_ate_dbl_coeffs &dc)