Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Types | Public Member Functions | Public Attributes | List of all members
libsnark::mnt4_final_exp_gadget< ppT > Class Template Reference

#include <mnt_final_exponentiation.hpp>

Inheritance diagram for libsnark::mnt4_final_exp_gadget< ppT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::mnt4_final_exp_gadget< ppT >:
Collaboration graph
[legend]

Public Types

typedef libff::Fr< ppT > FieldT
 

Public Member Functions

 mnt4_final_exp_gadget (protoboard< FieldT > &pb, const Fqk_variable< ppT > &el, const pb_variable< FieldT > &result_is_one, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
- Public Member Functions inherited from libsnark::gadget< libff::Fr< ppT > >
 gadget (protoboard< libff::Fr< ppT > > &pb, const std::string &annotation_prefix)
 

Public Attributes

Fqk_variable< ppT > el
 
std::shared_ptr< Fqk_variable< ppT > > one
 
std::shared_ptr< Fqk_variable< ppT > > el_inv
 
std::shared_ptr< Fqk_variable< ppT > > el_q_3
 
std::shared_ptr< Fqk_variable< ppT > > el_q_3_minus_1
 
std::shared_ptr< Fqk_variable< ppT > > alpha
 
std::shared_ptr< Fqk_variable< ppT > > beta
 
std::shared_ptr< Fqk_variable< ppT > > beta_q
 
std::shared_ptr< Fqk_variable< ppT > > el_inv_q_3
 
std::shared_ptr< Fqk_variable< ppT > > el_inv_q_3_minus_1
 
std::shared_ptr< Fqk_variable< ppT > > inv_alpha
 
std::shared_ptr< Fqk_variable< ppT > > inv_beta
 
std::shared_ptr< Fqk_variable< ppT > > w1
 
std::shared_ptr< Fqk_variable< ppT > > w0
 
std::shared_ptr< Fqk_variable< ppT > > result
 
std::shared_ptr< Fqk_mul_gadget< ppT > > compute_el_inv
 
std::shared_ptr< Fqk_mul_gadget< ppT > > compute_el_q_3_minus_1
 
std::shared_ptr< Fqk_mul_gadget< ppT > > compute_beta
 
std::shared_ptr< Fqk_mul_gadget< ppT > > compute_el_inv_q_3_minus_1
 
std::shared_ptr< Fqk_mul_gadget< ppT > > compute_inv_beta
 
std::shared_ptr< exponentiation_gadget< FqkT< ppT >, Fp6_2over3_variable, Fp6_2over3_mul_gadget, Fp6_2over3_cyclotomic_sqr_gadget, libff::mnt6_q_limbs > > compute_w1
 
std::shared_ptr< exponentiation_gadget< FqkT< ppT >, Fp6_2over3_variable, Fp6_2over3_mul_gadget, Fp6_2over3_cyclotomic_sqr_gadget, libff::mnt6_q_limbs > > compute_w0
 
std::shared_ptr< Fqk_mul_gadget< ppT > > compute_result
 
pb_variable< FieldTresult_is_one
 

Additional Inherited Members

- Protected Attributes inherited from libsnark::gadget< libff::Fr< ppT > >
protoboard< libff::Fr< ppT > > & pb
 
const std::string annotation_prefix
 

Detailed Description

template<typename ppT>
class libsnark::mnt4_final_exp_gadget< ppT >

Gadget for final exponentiation with embedding degree 4.

Definition at line 33 of file mnt_final_exponentiation.hpp.

Member Typedef Documentation

◆ FieldT

template<typename ppT >
typedef libff::Fr<ppT> libsnark::mnt4_final_exp_gadget< ppT >::FieldT

Definition at line 36 of file mnt_final_exponentiation.hpp.

Constructor & Destructor Documentation

◆ mnt4_final_exp_gadget()

template<typename ppT >
libsnark::mnt4_final_exp_gadget< ppT >::mnt4_final_exp_gadget ( protoboard< FieldT > &  pb,
const Fqk_variable< ppT > &  el,
const pb_variable< FieldT > &  result_is_one,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename ppT >
void libsnark::mnt4_final_exp_gadget< ppT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename ppT >
void libsnark::mnt4_final_exp_gadget< ppT >::generate_r1cs_witness ( )

Member Data Documentation

◆ alpha

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::alpha

Definition at line 43 of file mnt_final_exponentiation.hpp.

◆ beta

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::beta

Definition at line 44 of file mnt_final_exponentiation.hpp.

◆ beta_q

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::beta_q

Definition at line 45 of file mnt_final_exponentiation.hpp.

◆ compute_beta

template<typename ppT >
std::shared_ptr<Fqk_mul_gadget<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::compute_beta

Definition at line 56 of file mnt_final_exponentiation.hpp.

◆ compute_el_inv

template<typename ppT >
std::shared_ptr<Fqk_mul_gadget<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::compute_el_inv

Definition at line 54 of file mnt_final_exponentiation.hpp.

◆ compute_el_inv_q_3_minus_1

template<typename ppT >
std::shared_ptr<Fqk_mul_gadget<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::compute_el_inv_q_3_minus_1

Definition at line 57 of file mnt_final_exponentiation.hpp.

◆ compute_el_q_3_minus_1

template<typename ppT >
std::shared_ptr<Fqk_mul_gadget<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::compute_el_q_3_minus_1

Definition at line 55 of file mnt_final_exponentiation.hpp.

◆ compute_inv_beta

template<typename ppT >
std::shared_ptr<Fqk_mul_gadget<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::compute_inv_beta

Definition at line 58 of file mnt_final_exponentiation.hpp.

◆ compute_result

template<typename ppT >
std::shared_ptr<Fqk_mul_gadget<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::compute_result

Definition at line 74 of file mnt_final_exponentiation.hpp.

◆ compute_w0

template<typename ppT >
std::shared_ptr<exponentiation_gadget< FqkT<ppT>, Fp6_2over3_variable, Fp6_2over3_mul_gadget, Fp6_2over3_cyclotomic_sqr_gadget, libff::mnt6_q_limbs> > libsnark::mnt4_final_exp_gadget< ppT >::compute_w0

Definition at line 73 of file mnt_final_exponentiation.hpp.

◆ compute_w1

template<typename ppT >
std::shared_ptr<exponentiation_gadget< FqkT<ppT>, Fp6_2over3_variable, Fp6_2over3_mul_gadget, Fp6_2over3_cyclotomic_sqr_gadget, libff::mnt6_q_limbs> > libsnark::mnt4_final_exp_gadget< ppT >::compute_w1

Definition at line 66 of file mnt_final_exponentiation.hpp.

◆ el

template<typename ppT >
Fqk_variable<ppT> libsnark::mnt4_final_exp_gadget< ppT >::el

Definition at line 38 of file mnt_final_exponentiation.hpp.

◆ el_inv

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::el_inv

Definition at line 40 of file mnt_final_exponentiation.hpp.

◆ el_inv_q_3

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::el_inv_q_3

Definition at line 46 of file mnt_final_exponentiation.hpp.

◆ el_inv_q_3_minus_1

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::el_inv_q_3_minus_1

Definition at line 47 of file mnt_final_exponentiation.hpp.

◆ el_q_3

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::el_q_3

Definition at line 41 of file mnt_final_exponentiation.hpp.

◆ el_q_3_minus_1

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::el_q_3_minus_1

Definition at line 42 of file mnt_final_exponentiation.hpp.

◆ inv_alpha

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::inv_alpha

Definition at line 48 of file mnt_final_exponentiation.hpp.

◆ inv_beta

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::inv_beta

Definition at line 49 of file mnt_final_exponentiation.hpp.

◆ one

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::one

Definition at line 39 of file mnt_final_exponentiation.hpp.

◆ result

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::result

Definition at line 52 of file mnt_final_exponentiation.hpp.

◆ result_is_one

template<typename ppT >
pb_variable<FieldT> libsnark::mnt4_final_exp_gadget< ppT >::result_is_one

Definition at line 76 of file mnt_final_exponentiation.hpp.

◆ w0

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::w0

Definition at line 51 of file mnt_final_exponentiation.hpp.

◆ w1

template<typename ppT >
std::shared_ptr<Fqk_variable<ppT> > libsnark::mnt4_final_exp_gadget< ppT >::w1

Definition at line 50 of file mnt_final_exponentiation.hpp.


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