Clearmatics Libff  0.1
C++ library for Finite Fields and Elliptic Curves
bn128_pp.hpp
Go to the documentation of this file.
1 
8 #ifndef BN128_PP_HPP_
9 #define BN128_PP_HPP_
16 
17 namespace libff
18 {
19 
20 class bn128_pp
21 {
22 public:
23  static const std::string name;
24 
25  typedef bn128_Fr Fp_type;
26  typedef bn128_G1 G1_type;
27  typedef bn128_G2 G2_type;
30  typedef bn128_Fq Fq_type;
32  typedef bn128_GT GT_type;
33 
34  static const bool has_affine_pairing = false;
35 
36  static void init_public_params();
37  static bn128_GT final_exponentiation(const bn128_Fq12 &elt);
40  static bn128_Fq12 miller_loop(
41  const bn128_ate_G1_precomp &prec_P, const bn128_ate_G2_precomp &prec_Q);
43  const bn128_ate_G1_precomp &prec_P1,
44  const bn128_ate_G2_precomp &prec_Q1,
45  const bn128_ate_G1_precomp &prec_P2,
46  const bn128_ate_G2_precomp &prec_Q2);
47 
48  /* the following are used in test files */
49  static bn128_GT pairing(const bn128_G1 &P, const bn128_G2 &Q);
50  static bn128_GT reduced_pairing(const bn128_G1 &P, const bn128_G2 &Q);
51 };
52 
53 } // namespace libff
54 #endif // BN128_PP_HPP_
libff::bn128_GT
Definition: bn128_gt.hpp:23
libff::bn128_pp::precompute_G2
static bn128_ate_G2_precomp precompute_G2(const bn128_G2 &Q)
Definition: bn128_pp.cpp:28
libff
Definition: ffi.cpp:8
libff::bn128_G1
Definition: bn128_g1.hpp:23
libff::bn128_pp::miller_loop
static bn128_Fq12 miller_loop(const bn128_ate_G1_precomp &prec_P, const bn128_ate_G2_precomp &prec_Q)
Definition: bn128_pp.cpp:33
bn128_gt.hpp
libff::bn128_ate_G2_precomp
Definition: bn128_pairing.hpp:34
libff::bn128_pp::init_public_params
static void init_public_params()
Definition: bn128_pp.cpp:16
libff::bn128_pp::reduced_pairing
static bn128_GT reduced_pairing(const bn128_G1 &P, const bn128_G2 &Q)
Definition: bn128_pp.cpp:66
libff::bn128_ate_G1_precomp
Definition: bn128_pairing.hpp:22
libff::bn128_pp::final_exponentiation
static bn128_GT final_exponentiation(const bn128_Fq12 &elt)
Definition: bn128_pp.cpp:18
libff::bn128_pp::G2_type
bn128_G2 G2_type
Definition: bn128_pp.hpp:27
bn128_pairing.hpp
libff::bn128_pp::G1_precomp_type
bn128_ate_G1_precomp G1_precomp_type
Definition: bn128_pp.hpp:28
public_params.hpp
libff::bn128_pp::double_miller_loop
static bn128_Fq12 double_miller_loop(const bn128_ate_G1_precomp &prec_P1, const bn128_ate_G2_precomp &prec_Q1, const bn128_ate_G1_precomp &prec_P2, const bn128_ate_G2_precomp &prec_Q2)
Definition: bn128_pp.cpp:42
bn128_g1.hpp
bn128_init.hpp
libff::bn128_pp::GT_type
bn128_GT GT_type
Definition: bn128_pp.hpp:32
libff::Fp_model
Definition: fp.hpp:20
libff::bn128_pp::G1_type
bn128_G1 G1_type
Definition: bn128_pp.hpp:26
libff::bn128_pp::has_affine_pairing
static const bool has_affine_pairing
Definition: bn128_pp.hpp:34
libff::bn128_pp::Fp_type
bn128_Fr Fp_type
Definition: bn128_pp.hpp:25
libff::bn128_pp::Fq_type
bn128_Fq Fq_type
Definition: bn128_pp.hpp:30
libff::bn128_pp
Definition: bn128_pp.hpp:20
bn128_g2.hpp
libff::bn128_pp::pairing
static bn128_GT pairing(const bn128_G1 &P, const bn128_G2 &Q)
Definition: bn128_pp.cpp:55
libff::bn128_pp::name
static const std::string name
Definition: bn128_pp.hpp:23
libff::bn128_G2
Definition: bn128_g2.hpp:24
libff::bn128_pp::Fqk_type
bn128_Fq12 Fqk_type
Definition: bn128_pp.hpp:31
libff::bn128_pp::precompute_G1
static bn128_ate_G1_precomp precompute_G1(const bn128_G1 &P)
Definition: bn128_pp.cpp:23
libff::bn128_pp::G2_precomp_type
bn128_ate_G2_precomp G2_precomp_type
Definition: bn128_pp.hpp:29