Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
mnt4_pp.hpp
Go to the documentation of this file.
1
12#ifndef MNT4_PP_HPP_
13#define MNT4_PP_HPP_
14
20
21namespace libff {
22
23class mnt4_pp {
24public:
36
37 static const bool has_affine_pairing = true;
38
39 static void init_public_params();
40 static mnt4_GT final_exponentiation(const mnt4_Fq4 &elt);
41
43 static mnt4_G2_precomp precompute_G2(const mnt4_G2 &Q);
44
45 static mnt4_Fq4 miller_loop(const mnt4_G1_precomp &prec_P,
46 const mnt4_G2_precomp &prec_Q);
47
52
63
64 static mnt4_Fq4 double_miller_loop(const mnt4_G1_precomp &prec_P1,
65 const mnt4_G2_precomp &prec_Q1,
66 const mnt4_G1_precomp &prec_P2,
67 const mnt4_G2_precomp &prec_Q2);
68
69 /* the following are used in test files */
70 static mnt4_Fq4 pairing(const mnt4_G1 &P,
71 const mnt4_G2 &Q);
72 static mnt4_Fq4 reduced_pairing(const mnt4_G1 &P,
73 const mnt4_G2 &Q);
75 const mnt4_G2 &Q);
76};
77
78} // libff
79
80#endif // MNT4_PP_HPP_
mnt4_GT GT_type
Definition mnt4_pp.hpp:35
mnt4_G1 G1_type
Definition mnt4_pp.hpp:26
mnt4_G1_precomp G1_precomp_type
Definition mnt4_pp.hpp:28
mnt4_G2_precomp G2_precomp_type
Definition mnt4_pp.hpp:29
static mnt4_Fq4 affine_ate_e_over_e_miller_loop(const mnt4_affine_ate_G1_precomputation &prec_P1, const mnt4_affine_ate_G2_precomputation &prec_Q1, const mnt4_affine_ate_G1_precomputation &prec_P2, const mnt4_affine_ate_G2_precomputation &prec_Q2)
Definition mnt4_pp.cpp:60
static mnt4_GT final_exponentiation(const mnt4_Fq4 &elt)
Definition mnt4_pp.cpp:23
static mnt4_Fq4 affine_ate_miller_loop(const mnt4_affine_ate_G1_precomputation &prec_P, const mnt4_affine_ate_G2_precomputation &prec_Q)
Definition mnt4_pp.cpp:54
static mnt4_Fq4 affine_reduced_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
Definition mnt4_pp.cpp:99
static mnt4_affine_ate_G1_precomputation affine_ate_precompute_G1(const mnt4_G1 &P)
Definition mnt4_pp.cpp:44
mnt4_Fr Fp_type
Definition mnt4_pp.hpp:25
mnt4_G2 G2_type
Definition mnt4_pp.hpp:27
mnt4_Fq2 Fqe_type
Definition mnt4_pp.hpp:33
static mnt4_Fq4 affine_ate_e_times_e_over_e_miller_loop(const mnt4_affine_ate_G1_precomputation &prec_P1, const mnt4_affine_ate_G2_precomputation &prec_Q1, const mnt4_affine_ate_G1_precomputation &prec_P2, const mnt4_affine_ate_G2_precomputation &prec_Q2, const mnt4_affine_ate_G1_precomputation &prec_P3, const mnt4_affine_ate_G2_precomputation &prec_Q3)
Definition mnt4_pp.cpp:68
static mnt4_Fq4 miller_loop(const mnt4_G1_precomp &prec_P, const mnt4_G2_precomp &prec_Q)
Definition mnt4_pp.cpp:38
static const bool has_affine_pairing
Definition mnt4_pp.hpp:37
static mnt4_affine_ate_G2_precomputation affine_ate_precompute_G2(const mnt4_G2 &Q)
Definition mnt4_pp.cpp:49
static void init_public_params()
Definition mnt4_pp.cpp:18
static mnt4_Fq4 reduced_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
Definition mnt4_pp.cpp:93
static mnt4_Fq4 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)
Definition mnt4_pp.cpp:79
static mnt4_Fq4 pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
Definition mnt4_pp.cpp:87
mnt4_affine_ate_G1_precomputation affine_ate_G1_precomp_type
Definition mnt4_pp.hpp:30
mnt4_affine_ate_G2_precomputation affine_ate_G2_precomp_type
Definition mnt4_pp.hpp:31
static mnt4_G1_precomp precompute_G1(const mnt4_G1 &P)
Definition mnt4_pp.cpp:28
mnt4_Fq4 Fqk_type
Definition mnt4_pp.hpp:34
mnt4_Fq Fq_type
Definition mnt4_pp.hpp:32
static mnt4_G2_precomp precompute_G2(const mnt4_G2 &Q)
Definition mnt4_pp.cpp:33
#define P
Definition dtoa.c:437