Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
mnt6_pp.hpp
Go to the documentation of this file.
1
12#ifndef MNT6_PP_HPP_
13#define MNT6_PP_HPP_
14
20
21namespace libff {
22
23class mnt6_pp {
24public:
36
37 static const bool has_affine_pairing = true;
38
39 static void init_public_params();
40 static mnt6_GT final_exponentiation(const mnt6_Fq6 &elt);
42 static mnt6_G2_precomp precompute_G2(const mnt6_G2 &Q);
43 static mnt6_Fq6 miller_loop(const mnt6_G1_precomp &prec_P,
44 const mnt6_G2_precomp &prec_Q);
59 static mnt6_Fq6 double_miller_loop(const mnt6_G1_precomp &prec_P1,
60 const mnt6_G2_precomp &prec_Q1,
61 const mnt6_G1_precomp &prec_P2,
62 const mnt6_G2_precomp &prec_Q2);
63
64 /* the following are used in test files */
65 static mnt6_Fq6 pairing(const mnt6_G1 &P,
66 const mnt6_G2 &Q);
67 static mnt6_Fq6 reduced_pairing(const mnt6_G1 &P,
68 const mnt6_G2 &Q);
70 const mnt6_G2 &Q);
71};
72
73} // libff
74
75#endif // MNT6_PP_HPP_
static mnt6_Fq6 reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
Definition mnt6_pp.cpp:94
static mnt6_affine_ate_G2_precomputation affine_ate_precompute_G2(const mnt6_G2 &Q)
Definition mnt6_pp.cpp:50
static const bool has_affine_pairing
Definition mnt6_pp.hpp:37
mnt6_G2 G2_type
Definition mnt6_pp.hpp:27
static mnt6_affine_ate_G1_precomputation affine_ate_precompute_G1(const mnt6_G1 &P)
Definition mnt6_pp.cpp:45
mnt6_affine_ate_G2_precomputation affine_ate_G2_precomp_type
Definition mnt6_pp.hpp:29
static mnt6_Fq6 affine_ate_e_times_e_over_e_miller_loop(const mnt6_affine_ate_G1_precomputation &prec_P1, const mnt6_affine_ate_G2_precomputation &prec_Q1, const mnt6_affine_ate_G1_precomputation &prec_P2, const mnt6_affine_ate_G2_precomputation &prec_Q2, const mnt6_affine_ate_G1_precomputation &prec_P3, const mnt6_affine_ate_G2_precomputation &prec_Q3)
Definition mnt6_pp.cpp:77
static mnt6_G1_precomp precompute_G1(const mnt6_G1 &P)
Definition mnt6_pp.cpp:28
static mnt6_Fq6 affine_ate_e_over_e_miller_loop(const mnt6_affine_ate_G1_precomputation &prec_P1, const mnt6_affine_ate_G2_precomputation &prec_Q1, const mnt6_affine_ate_G1_precomputation &prec_P2, const mnt6_affine_ate_G2_precomputation &prec_Q2)
Definition mnt6_pp.cpp:69
static mnt6_Fq6 pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
Definition mnt6_pp.cpp:88
mnt6_GT GT_type
Definition mnt6_pp.hpp:35
mnt6_G1 G1_type
Definition mnt6_pp.hpp:26
mnt6_affine_ate_G1_precomputation affine_ate_G1_precomp_type
Definition mnt6_pp.hpp:28
mnt6_Fq3 Fqe_type
Definition mnt6_pp.hpp:33
mnt6_Fr Fp_type
Definition mnt6_pp.hpp:25
mnt6_Fq Fq_type
Definition mnt6_pp.hpp:32
static mnt6_Fq6 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)
Definition mnt6_pp.cpp:61
static mnt6_Fq6 miller_loop(const mnt6_G1_precomp &prec_P, const mnt6_G2_precomp &prec_Q)
Definition mnt6_pp.cpp:39
static mnt6_G2_precomp precompute_G2(const mnt6_G2 &Q)
Definition mnt6_pp.cpp:33
mnt6_G2_precomp G2_precomp_type
Definition mnt6_pp.hpp:31
mnt6_G1_precomp G1_precomp_type
Definition mnt6_pp.hpp:30
static mnt6_Fq6 affine_reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
Definition mnt6_pp.cpp:100
static mnt6_Fq6 affine_ate_miller_loop(const mnt6_affine_ate_G1_precomputation &prec_P, const mnt6_affine_ate_G2_precomputation &prec_Q)
Definition mnt6_pp.cpp:55
static void init_public_params()
Definition mnt6_pp.cpp:18
static mnt6_GT final_exponentiation(const mnt6_Fq6 &elt)
Definition mnt6_pp.cpp:23
mnt6_Fq6 Fqk_type
Definition mnt6_pp.hpp:34
#define P
Definition dtoa.c:437