Clearmatics Libff  0.1
C++ library for Finite Fields and Elliptic Curves
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
libff::mnt4_pp Class Reference

#include <mnt4_pp.hpp>

Public Types

typedef mnt4_Fr Fp_type
 
typedef mnt4_G1 G1_type
 
typedef mnt4_G2 G2_type
 
typedef mnt4_G1_precomp G1_precomp_type
 
typedef mnt4_G2_precomp G2_precomp_type
 
typedef mnt4_affine_ate_G1_precomputation affine_ate_G1_precomp_type
 
typedef mnt4_affine_ate_G2_precomputation affine_ate_G2_precomp_type
 
typedef mnt4_Fq Fq_type
 
typedef mnt4_Fq2 Fqe_type
 
typedef mnt4_Fq4 Fqk_type
 
typedef mnt4_GT GT_type
 

Static Public Member Functions

static void init_public_params ()
 
static mnt4_GT final_exponentiation (const mnt4_Fq4 &elt)
 
static mnt4_G1_precomp precompute_G1 (const mnt4_G1 &P)
 
static mnt4_G2_precomp precompute_G2 (const mnt4_G2 &Q)
 
static mnt4_Fq4 miller_loop (const mnt4_G1_precomp &prec_P, const mnt4_G2_precomp &prec_Q)
 
static mnt4_affine_ate_G1_precomputation affine_ate_precompute_G1 (const mnt4_G1 &P)
 
static mnt4_affine_ate_G2_precomputation affine_ate_precompute_G2 (const mnt4_G2 &Q)
 
static mnt4_Fq4 affine_ate_miller_loop (const mnt4_affine_ate_G1_precomputation &prec_P, const mnt4_affine_ate_G2_precomputation &prec_Q)
 
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)
 
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)
 
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)
 
static mnt4_Fq4 pairing (const mnt4_G1 &P, const mnt4_G2 &Q)
 
static mnt4_Fq4 reduced_pairing (const mnt4_G1 &P, const mnt4_G2 &Q)
 
static mnt4_Fq4 affine_reduced_pairing (const mnt4_G1 &P, const mnt4_G2 &Q)
 

Static Public Attributes

static const std::string name
 
static const bool has_affine_pairing = true
 

Detailed Description

Definition at line 24 of file mnt4_pp.hpp.

Member Typedef Documentation

◆ affine_ate_G1_precomp_type

Definition at line 34 of file mnt4_pp.hpp.

◆ affine_ate_G2_precomp_type

Definition at line 35 of file mnt4_pp.hpp.

◆ Fp_type

Definition at line 29 of file mnt4_pp.hpp.

◆ Fq_type

Definition at line 36 of file mnt4_pp.hpp.

◆ Fqe_type

Definition at line 37 of file mnt4_pp.hpp.

◆ Fqk_type

Definition at line 38 of file mnt4_pp.hpp.

◆ G1_precomp_type

Definition at line 32 of file mnt4_pp.hpp.

◆ G1_type

Definition at line 30 of file mnt4_pp.hpp.

◆ G2_precomp_type

Definition at line 33 of file mnt4_pp.hpp.

◆ G2_type

Definition at line 31 of file mnt4_pp.hpp.

◆ GT_type

Definition at line 39 of file mnt4_pp.hpp.

Member Function Documentation

◆ affine_ate_e_over_e_miller_loop()

mnt4_Fq4 libff::mnt4_pp::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 
)
static

Definition at line 63 of file mnt4_pp.cpp.

68 {
69  return mnt4_affine_ate_miller_loop(prec_P1, prec_Q1) *
70  mnt4_affine_ate_miller_loop(prec_P2, prec_Q2).unitary_inverse();
71 }
Here is the call graph for this function:

◆ affine_ate_e_times_e_over_e_miller_loop()

mnt4_Fq4 libff::mnt4_pp::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 
)
static

Definition at line 73 of file mnt4_pp.cpp.

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

◆ affine_ate_miller_loop()

mnt4_Fq4 libff::mnt4_pp::affine_ate_miller_loop ( const mnt4_affine_ate_G1_precomputation prec_P,
const mnt4_affine_ate_G2_precomputation prec_Q 
)
static

Definition at line 56 of file mnt4_pp.cpp.

59 {
60  return mnt4_affine_ate_miller_loop(prec_P, prec_Q);
61 }
Here is the call graph for this function:

◆ affine_ate_precompute_G1()

mnt4_affine_ate_G1_precomputation libff::mnt4_pp::affine_ate_precompute_G1 ( const mnt4_G1 P)
static

Definition at line 44 of file mnt4_pp.cpp.

46 {
48 }
Here is the call graph for this function:

◆ affine_ate_precompute_G2()

mnt4_affine_ate_G2_precomputation libff::mnt4_pp::affine_ate_precompute_G2 ( const mnt4_G2 Q)
static

Definition at line 50 of file mnt4_pp.cpp.

52 {
54 }
Here is the call graph for this function:

◆ affine_reduced_pairing()

mnt4_Fq4 libff::mnt4_pp::affine_reduced_pairing ( const mnt4_G1 P,
const mnt4_G2 Q 
)
static

Definition at line 106 of file mnt4_pp.cpp.

107 {
108  return mnt4_affine_reduced_pairing(P, Q);
109 }
Here is the call graph for this function:

◆ double_miller_loop()

mnt4_Fq4 libff::mnt4_pp::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 
)
static

Definition at line 87 of file mnt4_pp.cpp.

92 {
93  return mnt4_double_miller_loop(prec_P1, prec_Q1, prec_P2, prec_Q2);
94 }
Here is the call graph for this function:

◆ final_exponentiation()

mnt4_GT libff::mnt4_pp::final_exponentiation ( const mnt4_Fq4 elt)
static

Definition at line 23 of file mnt4_pp.cpp.

24 {
25  return mnt4_final_exponentiation(elt);
26 }
Here is the call graph for this function:

◆ init_public_params()

void libff::mnt4_pp::init_public_params ( )
static

Definition at line 21 of file mnt4_pp.cpp.

21 { init_mnt4_params(); }
Here is the call graph for this function:

◆ miller_loop()

mnt4_Fq4 libff::mnt4_pp::miller_loop ( const mnt4_G1_precomp prec_P,
const mnt4_G2_precomp prec_Q 
)
static

Definition at line 38 of file mnt4_pp.cpp.

40 {
41  return mnt4_miller_loop(prec_P, prec_Q);
42 }
Here is the call graph for this function:

◆ pairing()

mnt4_Fq4 libff::mnt4_pp::pairing ( const mnt4_G1 P,
const mnt4_G2 Q 
)
static

Definition at line 96 of file mnt4_pp.cpp.

97 {
98  return mnt4_pairing(P, Q);
99 }
Here is the call graph for this function:

◆ precompute_G1()

mnt4_G1_precomp libff::mnt4_pp::precompute_G1 ( const mnt4_G1 P)
static

Definition at line 28 of file mnt4_pp.cpp.

29 {
30  return mnt4_precompute_G1(P);
31 }
Here is the call graph for this function:

◆ precompute_G2()

mnt4_G2_precomp libff::mnt4_pp::precompute_G2 ( const mnt4_G2 Q)
static

Definition at line 33 of file mnt4_pp.cpp.

34 {
35  return mnt4_precompute_G2(Q);
36 }
Here is the call graph for this function:

◆ reduced_pairing()

mnt4_Fq4 libff::mnt4_pp::reduced_pairing ( const mnt4_G1 P,
const mnt4_G2 Q 
)
static

Definition at line 101 of file mnt4_pp.cpp.

102 {
103  return mnt4_reduced_pairing(P, Q);
104 }
Here is the call graph for this function:

Member Data Documentation

◆ has_affine_pairing

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

Definition at line 41 of file mnt4_pp.hpp.

◆ name

const std::string libff::mnt4_pp::name
static

Definition at line 27 of file mnt4_pp.hpp.


The documentation for this class was generated from the following files:
libff::mnt4_double_miller_loop
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)
Definition: mnt4_pairing.cpp:711
libff::mnt4_miller_loop
mnt4_Fq4 mnt4_miller_loop(const mnt4_G1_precomp &prec_P, const mnt4_G2_precomp &prec_Q)
Definition: mnt4_pairing.cpp:705
libff::Fp4_model::unitary_inverse
Fp4_model unitary_inverse() const
libff::mnt4_affine_ate_precompute_G1
mnt4_affine_ate_G1_precomputation mnt4_affine_ate_precompute_G1(const mnt4_G1 &P)
Definition: mnt4_pairing.cpp:224
libff::init_mnt4_params
void init_mnt4_params()
Definition: mnt4_init.cpp:41
libff::mnt4_reduced_pairing
mnt4_GT mnt4_reduced_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
Definition: mnt4_pairing.cpp:725
libff::mnt4_precompute_G1
mnt4_G1_precomp mnt4_precompute_G1(const mnt4_G1 &P)
Definition: mnt4_pairing.cpp:695
libff::mnt4_pairing
mnt4_Fq4 mnt4_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
Definition: mnt4_pairing.cpp:720
libff::mnt4_affine_ate_precompute_G2
mnt4_affine_ate_G2_precomputation mnt4_affine_ate_precompute_G2(const mnt4_G2 &Q)
Definition: mnt4_pairing.cpp:241
libff::mnt4_precompute_G2
mnt4_G2_precomp mnt4_precompute_G2(const mnt4_G2 &Q)
Definition: mnt4_pairing.cpp:700
libff::mnt4_final_exponentiation
mnt4_GT mnt4_final_exponentiation(const mnt4_Fq4 &elt)
Definition: mnt4_pairing.cpp:207
libff::mnt4_affine_ate_miller_loop
mnt4_Fq4 mnt4_affine_ate_miller_loop(const mnt4_affine_ate_G1_precomputation &prec_P, const mnt4_affine_ate_G2_precomputation &prec_Q)
Definition: mnt4_pairing.cpp:318
libff::mnt4_affine_reduced_pairing
mnt4_GT mnt4_affine_reduced_pairing(const mnt4_G1 &P, const mnt4_G2 &Q)
Definition: mnt4_pairing.cpp:730