Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <exponentiation_gadget.hpp>
Public Types | |
typedef FpkT::my_Fp | FieldT |
Public Member Functions | |
exponentiation_gadget (protoboard< FieldT > &pb, const Fpk_variableT< FpkT > &elt, const libff::bigint< m > &power, const Fpk_variableT< FpkT > &result, const std::string &annotation_prefix) | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness () |
![]() | |
gadget (protoboard< FpkT::my_Fp > &pb, const std::string &annotation_prefix) | |
Public Attributes | |
std::vector< long > | NAF |
std::vector< std::shared_ptr< Fpk_variableT< FpkT > > > | intermediate |
std::vector< std::shared_ptr< Fpk_mul_gadgetT< FpkT > > > | addition_steps |
std::vector< std::shared_ptr< Fpk_mul_gadgetT< FpkT > > > | subtraction_steps |
std::vector< std::shared_ptr< Fpk_sqr_gadgetT< FpkT > > > | doubling_steps |
Fpk_variableT< FpkT > | elt |
libff::bigint< m > | power |
Fpk_variableT< FpkT > | result |
size_t | intermed_count |
size_t | add_count |
size_t | sub_count |
size_t | dbl_count |
Additional Inherited Members | |
![]() | |
protoboard< FpkT::my_Fp > & | pb |
const std::string | annotation_prefix |
The exponentiation gadget verifies field exponentiation in the field F_{p^k}.
Note that the power is a constant (i.e., hardcoded into the gadget).
Definition at line 38 of file exponentiation_gadget.hpp.
typedef FpkT::my_Fp libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::FieldT |
Definition at line 41 of file exponentiation_gadget.hpp.
libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::exponentiation_gadget | ( | protoboard< FieldT > & | pb, |
const Fpk_variableT< FpkT > & | elt, | ||
const libff::bigint< m > & | power, | ||
const Fpk_variableT< FpkT > & | result, | ||
const std::string & | annotation_prefix | ||
) |
void libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::generate_r1cs_constraints | ( | ) |
void libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::generate_r1cs_witness | ( | ) |
size_t libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::add_count |
Definition at line 54 of file exponentiation_gadget.hpp.
std::vector<std::shared_ptr<Fpk_mul_gadgetT<FpkT> > > libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::addition_steps |
Definition at line 45 of file exponentiation_gadget.hpp.
size_t libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::dbl_count |
Definition at line 56 of file exponentiation_gadget.hpp.
std::vector<std::shared_ptr<Fpk_sqr_gadgetT<FpkT> > > libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::doubling_steps |
Definition at line 47 of file exponentiation_gadget.hpp.
Fpk_variableT<FpkT> libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::elt |
Definition at line 49 of file exponentiation_gadget.hpp.
size_t libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::intermed_count |
Definition at line 53 of file exponentiation_gadget.hpp.
std::vector<std::shared_ptr<Fpk_variableT<FpkT> > > libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::intermediate |
Definition at line 44 of file exponentiation_gadget.hpp.
std::vector<long> libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::NAF |
Definition at line 42 of file exponentiation_gadget.hpp.
libff::bigint<m> libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::power |
Definition at line 50 of file exponentiation_gadget.hpp.
Fpk_variableT<FpkT> libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::result |
Definition at line 51 of file exponentiation_gadget.hpp.
size_t libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::sub_count |
Definition at line 55 of file exponentiation_gadget.hpp.
std::vector<std::shared_ptr<Fpk_mul_gadgetT<FpkT> > > libsnark::exponentiation_gadget< FpkT, Fpk_variableT, Fpk_mul_gadgetT, Fpk_sqr_gadgetT, m >::subtraction_steps |
Definition at line 46 of file exponentiation_gadget.hpp.