Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <bar_gadget.hpp>
Public Member Functions | |
bar_gadget (protoboard< FieldT > &pb, const pb_linear_combination_array< FieldT > &X, const FieldT &a, const pb_linear_combination_array< FieldT > &Y, const FieldT &b, const pb_linear_combination< FieldT > &Z_packed, const std::string &annotation_prefix) | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness () |
![]() | |
gadget (protoboard< FieldT > &pb, const std::string &annotation_prefix) | |
Public Attributes | |
pb_linear_combination_array< FieldT > | X |
FieldT | a |
pb_linear_combination_array< FieldT > | Y |
FieldT | b |
pb_linear_combination< FieldT > | Z_packed |
pb_variable_array< FieldT > | Z_bits |
pb_variable< FieldT > | result |
pb_variable_array< FieldT > | overflow |
pb_variable_array< FieldT > | unpacked_result |
std::shared_ptr< packing_gadget< FieldT > > | unpack_result |
std::shared_ptr< packing_gadget< FieldT > > | pack_Z |
size_t | width |
Additional Inherited Members | |
![]() | |
protoboard< FieldT > & | pb |
const std::string | annotation_prefix |
The bar gadget checks linear combination Z = aX + bY (mod 2^w) for a, b - const, X, Y - vectors of w bits, where w is implicitly inferred, Z - a packed variable.
This gadget is used four times in fooram:
Definition at line 32 of file bar_gadget.hpp.
libsnark::bar_gadget< FieldT >::bar_gadget | ( | protoboard< FieldT > & | pb, |
const pb_linear_combination_array< FieldT > & | X, | ||
const FieldT & | a, | ||
const pb_linear_combination_array< FieldT > & | Y, | ||
const FieldT & | b, | ||
const pb_linear_combination< FieldT > & | Z_packed, | ||
const std::string & | annotation_prefix | ||
) |
void libsnark::bar_gadget< FieldT >::generate_r1cs_constraints | ( | ) |
void libsnark::bar_gadget< FieldT >::generate_r1cs_witness | ( | ) |
FieldT libsnark::bar_gadget< FieldT >::a |
Definition at line 36 of file bar_gadget.hpp.
FieldT libsnark::bar_gadget< FieldT >::b |
Definition at line 38 of file bar_gadget.hpp.
pb_variable_array<FieldT> libsnark::bar_gadget< FieldT >::overflow |
Definition at line 43 of file bar_gadget.hpp.
std::shared_ptr<packing_gadget<FieldT> > libsnark::bar_gadget< FieldT >::pack_Z |
Definition at line 47 of file bar_gadget.hpp.
pb_variable<FieldT> libsnark::bar_gadget< FieldT >::result |
Definition at line 42 of file bar_gadget.hpp.
std::shared_ptr<packing_gadget<FieldT> > libsnark::bar_gadget< FieldT >::unpack_result |
Definition at line 46 of file bar_gadget.hpp.
pb_variable_array<FieldT> libsnark::bar_gadget< FieldT >::unpacked_result |
Definition at line 44 of file bar_gadget.hpp.
size_t libsnark::bar_gadget< FieldT >::width |
Definition at line 49 of file bar_gadget.hpp.
pb_linear_combination_array<FieldT> libsnark::bar_gadget< FieldT >::X |
Definition at line 35 of file bar_gadget.hpp.
pb_linear_combination_array<FieldT> libsnark::bar_gadget< FieldT >::Y |
Definition at line 37 of file bar_gadget.hpp.
pb_variable_array<FieldT> libsnark::bar_gadget< FieldT >::Z_bits |
Definition at line 40 of file bar_gadget.hpp.
pb_linear_combination<FieldT> libsnark::bar_gadget< FieldT >::Z_packed |
Definition at line 39 of file bar_gadget.hpp.