static mnt6_Fq6 reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
static mnt6_affine_ate_G2_precomputation affine_ate_precompute_G2(const mnt6_G2 &Q)
static const bool has_affine_pairing
static mnt6_affine_ate_G1_precomputation affine_ate_precompute_G1(const mnt6_G1 &P)
mnt6_affine_ate_G2_precomputation affine_ate_G2_precomp_type
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)
static mnt6_G1_precomp precompute_G1(const mnt6_G1 &P)
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)
static mnt6_Fq6 pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
mnt6_affine_ate_G1_precomputation affine_ate_G1_precomp_type
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)
static mnt6_Fq6 miller_loop(const mnt6_G1_precomp &prec_P, const mnt6_G2_precomp &prec_Q)
static mnt6_G2_precomp precompute_G2(const mnt6_G2 &Q)
mnt6_G2_precomp G2_precomp_type
mnt6_G1_precomp G1_precomp_type
static mnt6_Fq6 affine_reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
static mnt6_Fq6 affine_ate_miller_loop(const mnt6_affine_ate_G1_precomputation &prec_P, const mnt6_affine_ate_G2_precomputation &prec_Q)
static void init_public_params()
static mnt6_GT final_exponentiation(const mnt6_Fq6 &elt)