Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
mnt4_pairing.hpp
Go to the documentation of this file.
1
12#ifndef MNT4_PAIRING_HPP_
13#define MNT4_PAIRING_HPP_
14
15#include <vector>
16
18
19namespace libff {
20
21/* final exponentiation */
22
24 const mnt4_Fq4 &elt_inv);
26 const mnt4_Fq4 &elt_inv);
28
29/* affine ate miller loop */
30
36
45
49 std::vector<mnt4_affine_ate_coeffs> coeffs;
50};
51
54
57
58/* ate pairing */
59
65
66 bool operator==(const mnt4_ate_G1_precomp &other) const;
67 friend std::ostream& operator<<(std::ostream &out, const mnt4_ate_G1_precomp &prec_P);
68 friend std::istream& operator>>(std::istream &in, mnt4_ate_G1_precomp &prec_P);
69};
70
76
77 bool operator==(const mnt4_ate_dbl_coeffs &other) const;
78 friend std::ostream& operator<<(std::ostream &out, const mnt4_ate_dbl_coeffs &dc);
79 friend std::istream& operator>>(std::istream &in, mnt4_ate_dbl_coeffs &dc);
80};
81
85
86 bool operator==(const mnt4_ate_add_coeffs &other) const;
87 friend std::ostream& operator<<(std::ostream &out, const mnt4_ate_add_coeffs &dc);
88 friend std::istream& operator>>(std::istream &in, mnt4_ate_add_coeffs &dc);
89};
90
97 std::vector<mnt4_ate_dbl_coeffs> dbl_coeffs;
98 std::vector<mnt4_ate_add_coeffs> add_coeffs;
99
100 bool operator==(const mnt4_ate_G2_precomp &other) const;
101 friend std::ostream& operator<<(std::ostream &out, const mnt4_ate_G2_precomp &prec_Q);
102 friend std::istream& operator>>(std::istream &in, mnt4_ate_G2_precomp &prec_Q);
103};
104
107
109 const mnt4_ate_G2_precomp &prec_Q);
111 const mnt4_ate_G2_precomp &prec_Q1,
112 const mnt4_ate_G1_precomp &prec_P2,
113 const mnt4_ate_G2_precomp &prec_Q2);
114
116 const mnt4_G2 &Q);
118 const mnt4_G2 &Q);
119
120/* choice of pairing */
121
124
126
128
130 const mnt4_G2_precomp &prec_Q);
131
133 const mnt4_G2_precomp &prec_Q1,
134 const mnt4_G1_precomp &prec_P2,
135 const mnt4_G2_precomp &prec_Q2);
136
138 const mnt4_G2 &Q);
139
141 const mnt4_G2 &Q);
142
144 const mnt4_G2 &Q);
145
146} // libff
147
148#endif // MNT4_PAIRING_HPP_
#define P
Definition dtoa.c:437
mnt4_Fq4 mnt4_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
mnt4_GT mnt4_reduced_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
mnt4_G1_precomp mnt4_precompute_G1(const mnt4_G1 &P)
mnt4_Fq4 mnt4_GT
Definition mnt4_init.hpp:39
mnt4_Fq4 mnt4_double_miller_loop(const mnt4_G1_precomp &prec_P1, const mnt4_G2_precomp &prec_Q1, const mnt4_G1_precomp &prec_P2, const mnt4_G2_precomp &prec_Q2)
mnt4_affine_ate_G1_precomputation mnt4_affine_ate_precompute_G1(const mnt4_G1 &P)
mnt4_Fq4 mnt4_ate_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
Fp4_model< mnt4_q_limbs, mnt4_modulus_q > mnt4_Fq4
Definition mnt4_init.hpp:38
mnt4_Fq4 mnt4_final_exponentiation_last_chunk(const mnt4_Fq4 &elt, const mnt4_Fq4 &elt_inv)
mnt4_G2_precomp mnt4_precompute_G2(const mnt4_G2 &Q)
mnt4_Fq4 mnt4_ate_miller_loop(const mnt4_ate_G1_precomp &prec_P, const mnt4_ate_G2_precomp &prec_Q)
mnt4_ate_G1_precomp mnt4_G1_precomp
mnt4_Fq4 mnt4_miller_loop(const mnt4_G1_precomp &prec_P, const mnt4_G2_precomp &prec_Q)
mnt4_Fq4 mnt4_ate_double_miller_loop(const mnt4_ate_G1_precomp &prec_P1, const mnt4_ate_G2_precomp &prec_Q1, const mnt4_ate_G1_precomp &prec_P2, const mnt4_ate_G2_precomp &prec_Q2)
mnt4_ate_G2_precomp mnt4_ate_precompute_G2(const mnt4_G2 &Q)
mnt4_Fq4 mnt4_affine_ate_miller_loop(const mnt4_affine_ate_G1_precomputation &prec_P, const mnt4_affine_ate_G2_precomputation &prec_Q)
mnt4_GT mnt4_affine_reduced_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
mnt4_GT mnt4_final_exponentiation(const mnt4_Fq4 &elt)
mnt4_ate_G2_precomp mnt4_G2_precomp
mnt4_Fq4 mnt4_final_exponentiation_first_chunk(const mnt4_Fq4 &elt, const mnt4_Fq4 &elt_inv)
mnt4_affine_ate_G2_precomputation mnt4_affine_ate_precompute_G2(const mnt4_G2 &Q)
mnt4_ate_G1_precomp mnt4_ate_precompute_G1(const mnt4_G1 &P)
mnt4_GT mnt4_ate_reduced_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
std::vector< mnt4_affine_ate_coeffs > coeffs
friend std::ostream & operator<<(std::ostream &out, const mnt4_ate_G1_precomp &prec_P)
friend std::istream & operator>>(std::istream &in, mnt4_ate_G1_precomp &prec_P)
bool operator==(const mnt4_ate_G1_precomp &other) const
friend std::ostream & operator<<(std::ostream &out, const mnt4_ate_G2_precomp &prec_Q)
friend std::istream & operator>>(std::istream &in, mnt4_ate_G2_precomp &prec_Q)
std::vector< mnt4_ate_add_coeffs > add_coeffs
std::vector< mnt4_ate_dbl_coeffs > dbl_coeffs
bool operator==(const mnt4_ate_G2_precomp &other) const
friend std::istream & operator>>(std::istream &in, mnt4_ate_add_coeffs &dc)
bool operator==(const mnt4_ate_add_coeffs &other) const
friend std::ostream & operator<<(std::ostream &out, const mnt4_ate_add_coeffs &dc)
friend std::ostream & operator<<(std::ostream &out, const mnt4_ate_dbl_coeffs &dc)
bool operator==(const mnt4_ate_dbl_coeffs &other) const
friend std::istream & operator>>(std::istream &in, mnt4_ate_dbl_coeffs &dc)