Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <scalar_multiplication.hpp>
Public Types | |
using | Field = libff::Fr< ppT > |
using | nFr = libff::Fr< other_curve< ppT > > |
using | groupVarOrIdentity = variable_or_identity< ppT, groupT, groupVarT > |
using | selectVarOrVarIdentityGadget = variable_and_variable_or_identity_selector< ppT, groupT, groupVarT, selectorGadgetT > |
using | addVarAndVarOrIdentityGadget = add_variable_and_variable_or_identity< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT > |
using | dblVarOrIdentityGadget = dbl_variable_or_identity< ppT, groupT, groupVarT, dblGadgetT > |
Public Member Functions | |
point_mul_by_scalar_gadget (protoboard< Field > &pb, const pb_linear_combination< Field > &scalar, const groupVarT &P, const groupVarOrIdentity &result, const std::string &annotation_prefix) | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness () |
const groupVarOrIdentity & | result () const |
![]() | |
gadget (protoboard< groupT::base_field > &pb, const std::string &annotation_prefix) | |
Public Attributes | |
packing_gadget< Field > | scalar_unpacked |
std::vector< dblVarOrIdentityGadget > | dbl_gadgets |
std::vector< addVarAndVarOrIdentityGadget > | add_gadgets |
std::vector< selectVarOrVarIdentityGadget > | selector_gadgets |
std::shared_ptr< selectVarOrVarIdentityGadget > | final_add_input_left |
std::shared_ptr< selectorGadgetT > | final_add_input_right |
Static Protected Member Functions | |
static pb_variable_array< Field > | create_variable_array_for_bits (protoboard< Field > &pb, const std::string &annotation_prefix) |
Additional Inherited Members | |
![]() | |
protoboard< groupT::base_field > & | pb |
const std::string | annotation_prefix |
Generic gadget to perform scalar multiplication of group variables by variables. Used by the individual group element implementations.
Definition at line 342 of file scalar_multiplication.hpp.
using libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::addVarAndVarOrIdentityGadget = add_variable_and_variable_or_identity< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT> |
Definition at line 359 of file scalar_multiplication.hpp.
using libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::dblVarOrIdentityGadget = dbl_variable_or_identity<ppT, groupT, groupVarT, dblGadgetT> |
Definition at line 361 of file scalar_multiplication.hpp.
using libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::Field = libff::Fr<ppT> |
Definition at line 345 of file scalar_multiplication.hpp.
using libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::groupVarOrIdentity = variable_or_identity<ppT, groupT, groupVarT> |
Definition at line 347 of file scalar_multiplication.hpp.
using libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::nFr = libff::Fr<other_curve<ppT> > |
Definition at line 346 of file scalar_multiplication.hpp.
using libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::selectVarOrVarIdentityGadget = variable_and_variable_or_identity_selector< ppT, groupT, groupVarT, selectorGadgetT> |
Definition at line 353 of file scalar_multiplication.hpp.
libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::point_mul_by_scalar_gadget | ( | protoboard< Field > & | pb, |
const pb_linear_combination< Field > & | scalar, | ||
const groupVarT & | P, | ||
const groupVarOrIdentity & | result, | ||
const std::string & | annotation_prefix | ||
) |
|
staticprotected |
void libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::generate_r1cs_constraints | ( | ) |
void libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::generate_r1cs_witness | ( | ) |
const groupVarOrIdentity& libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::result | ( | ) | const |
std::vector<addVarAndVarOrIdentityGadget> libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::add_gadgets |
Definition at line 365 of file scalar_multiplication.hpp.
std::vector<dblVarOrIdentityGadget> libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::dbl_gadgets |
Definition at line 364 of file scalar_multiplication.hpp.
std::shared_ptr<selectVarOrVarIdentityGadget> libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::final_add_input_left |
Definition at line 385 of file scalar_multiplication.hpp.
std::shared_ptr<selectorGadgetT> libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::final_add_input_right |
Definition at line 386 of file scalar_multiplication.hpp.
packing_gadget<Field> libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::scalar_unpacked |
Definition at line 363 of file scalar_multiplication.hpp.
std::vector<selectVarOrVarIdentityGadget> libsnark::point_mul_by_scalar_gadget< ppT, groupT, groupVarT, selectorGadgetT, addGadgetT, dblGadgetT >::selector_gadgets |
Definition at line 366 of file scalar_multiplication.hpp.