Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
libff::mnt6_pp Class Reference

#include <mnt6_pp.hpp>

Public Types

typedef mnt6_Fr Fp_type
 
typedef mnt6_G1 G1_type
 
typedef mnt6_G2 G2_type
 
typedef mnt6_affine_ate_G1_precomputation affine_ate_G1_precomp_type
 
typedef mnt6_affine_ate_G2_precomputation affine_ate_G2_precomp_type
 
typedef mnt6_G1_precomp G1_precomp_type
 
typedef mnt6_G2_precomp G2_precomp_type
 
typedef mnt6_Fq Fq_type
 
typedef mnt6_Fq3 Fqe_type
 
typedef mnt6_Fq6 Fqk_type
 
typedef mnt6_GT GT_type
 

Static Public Member Functions

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

Static Public Attributes

static const bool has_affine_pairing = true
 

Detailed Description

Definition at line 23 of file mnt6_pp.hpp.

Member Typedef Documentation

◆ affine_ate_G1_precomp_type

◆ affine_ate_G2_precomp_type

◆ Fp_type

Definition at line 25 of file mnt6_pp.hpp.

◆ Fq_type

Definition at line 32 of file mnt6_pp.hpp.

◆ Fqe_type

Definition at line 33 of file mnt6_pp.hpp.

◆ Fqk_type

Definition at line 34 of file mnt6_pp.hpp.

◆ G1_precomp_type

◆ G1_type

Definition at line 26 of file mnt6_pp.hpp.

◆ G2_precomp_type

◆ G2_type

Definition at line 27 of file mnt6_pp.hpp.

◆ GT_type

Definition at line 35 of file mnt6_pp.hpp.

Member Function Documentation

◆ affine_ate_e_over_e_miller_loop()

mnt6_Fq6 libff::mnt6_pp::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

Definition at line 69 of file mnt6_pp.cpp.

73{
74 return mnt6_affine_ate_miller_loop(prec_P1, prec_Q1) * mnt6_affine_ate_miller_loop(prec_P2, prec_Q2).unitary_inverse();
75}
Fp6_2over3_model unitary_inverse() const
mnt6_Fq6 mnt6_affine_ate_miller_loop(const mnt6_affine_ate_G1_precomputation &prec_P, const mnt6_affine_ate_G2_precomputation &prec_Q)
Here is the call graph for this function:

◆ affine_ate_e_times_e_over_e_miller_loop()

mnt6_Fq6 libff::mnt6_pp::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

Definition at line 77 of file mnt6_pp.cpp.

83{
84 return ((mnt6_affine_ate_miller_loop(prec_P1, prec_Q1) * mnt6_affine_ate_miller_loop(prec_P2, prec_Q2)) *
85 mnt6_affine_ate_miller_loop(prec_P3, prec_Q3).unitary_inverse());
86}
Here is the call graph for this function:

◆ affine_ate_miller_loop()

mnt6_Fq6 libff::mnt6_pp::affine_ate_miller_loop ( const mnt6_affine_ate_G1_precomputation & prec_P,
const mnt6_affine_ate_G2_precomputation & prec_Q )
static

Definition at line 55 of file mnt6_pp.cpp.

57{
58 return mnt6_affine_ate_miller_loop(prec_P, prec_Q);
59}
Here is the call graph for this function:

◆ affine_ate_precompute_G1()

mnt6_affine_ate_G1_precomputation libff::mnt6_pp::affine_ate_precompute_G1 ( const mnt6_G1 & P)
static

Definition at line 45 of file mnt6_pp.cpp.

46{
48}
#define P
Definition dtoa.c:437
mnt6_affine_ate_G1_precomputation mnt6_affine_ate_precompute_G1(const mnt6_G1 &P)
Here is the call graph for this function:

◆ affine_ate_precompute_G2()

mnt6_affine_ate_G2_precomputation libff::mnt6_pp::affine_ate_precompute_G2 ( const mnt6_G2 & Q)
static

Definition at line 50 of file mnt6_pp.cpp.

51{
53}
mnt6_affine_ate_G2_precomputation mnt6_affine_ate_precompute_G2(const mnt6_G2 &Q)
Here is the call graph for this function:

◆ affine_reduced_pairing()

mnt6_Fq6 libff::mnt6_pp::affine_reduced_pairing ( const mnt6_G1 & P,
const mnt6_G2 & Q )
static

Definition at line 100 of file mnt6_pp.cpp.

102{
104}
mnt6_GT mnt6_affine_reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
Here is the call graph for this function:

◆ double_miller_loop()

mnt6_Fq6 libff::mnt6_pp::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

Definition at line 61 of file mnt6_pp.cpp.

65{
66 return mnt6_double_miller_loop(prec_P1, prec_Q1, prec_P2, prec_Q2);
67}
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)
Here is the call graph for this function:

◆ final_exponentiation()

mnt6_GT libff::mnt6_pp::final_exponentiation ( const mnt6_Fq6 & elt)
static

Definition at line 23 of file mnt6_pp.cpp.

24{
25 return mnt6_final_exponentiation(elt);
26}
mnt6_GT mnt6_final_exponentiation(const mnt6_Fq6 &elt)
Here is the call graph for this function:

◆ init_public_params()

void libff::mnt6_pp::init_public_params ( )
static

Definition at line 18 of file mnt6_pp.cpp.

19{
21}
void init_mnt6_params()
Definition mnt6_init.cpp:42
Here is the call graph for this function:
Here is the caller graph for this function:

◆ miller_loop()

mnt6_Fq6 libff::mnt6_pp::miller_loop ( const mnt6_G1_precomp & prec_P,
const mnt6_G2_precomp & prec_Q )
static

Definition at line 39 of file mnt6_pp.cpp.

41{
42 return mnt6_miller_loop(prec_P, prec_Q);
43}
mnt6_Fq6 mnt6_miller_loop(const mnt6_G1_precomp &prec_P, const mnt6_G2_precomp &prec_Q)
Here is the call graph for this function:

◆ pairing()

mnt6_Fq6 libff::mnt6_pp::pairing ( const mnt6_G1 & P,
const mnt6_G2 & Q )
static

Definition at line 88 of file mnt6_pp.cpp.

90{
91 return mnt6_pairing(P, Q);
92}
mnt6_Fq6 mnt6_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
Here is the call graph for this function:

◆ precompute_G1()

mnt6_G1_precomp libff::mnt6_pp::precompute_G1 ( const mnt6_G1 & P)
static

Definition at line 28 of file mnt6_pp.cpp.

29{
30 return mnt6_precompute_G1(P);
31}
mnt6_G1_precomp mnt6_precompute_G1(const mnt6_G1 &P)
Here is the call graph for this function:

◆ precompute_G2()

mnt6_G2_precomp libff::mnt6_pp::precompute_G2 ( const mnt6_G2 & Q)
static

Definition at line 33 of file mnt6_pp.cpp.

34{
35 return mnt6_precompute_G2(Q);
36}
mnt6_G2_precomp mnt6_precompute_G2(const mnt6_G2 &Q)
Here is the call graph for this function:

◆ reduced_pairing()

mnt6_Fq6 libff::mnt6_pp::reduced_pairing ( const mnt6_G1 & P,
const mnt6_G2 & Q )
static

Definition at line 94 of file mnt6_pp.cpp.

96{
97 return mnt6_reduced_pairing(P, Q);
98}
mnt6_GT mnt6_reduced_pairing(const mnt6_G1 &P, const mnt6_G2 &Q)
Here is the call graph for this function:

Member Data Documentation

◆ has_affine_pairing

const bool libff::mnt6_pp::has_affine_pairing = true
static

Definition at line 37 of file mnt6_pp.hpp.


The documentation for this class was generated from the following files: