|
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 |
Public Member Functions inherited from libsnark::gadget< groupT::base_field > | |
| 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 | |
Protected Attributes inherited from libsnark::gadget< groupT::base_field > | |
| 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.
1.8.17