Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
bar_gadget.hpp
Go to the documentation of this file.
1 
12 #ifndef BAR_GADGET_HPP_
13 #define BAR_GADGET_HPP_
14 
17 
18 namespace libsnark
19 {
20 
32 template<typename FieldT> class bar_gadget : public gadget<FieldT>
33 {
34 public:
36  FieldT a;
38  FieldT b;
41 
45 
46  std::shared_ptr<packing_gadget<FieldT>> unpack_result;
47  std::shared_ptr<packing_gadget<FieldT>> pack_Z;
48 
49  size_t width;
50  bar_gadget(
53  const FieldT &a,
55  const FieldT &b,
57  const std::string &annotation_prefix);
59  void generate_r1cs_witness();
60 };
61 
62 } // namespace libsnark
63 
65 
66 #endif // BAR_GADGET_HPP_
libsnark::gadget::annotation_prefix
const std::string annotation_prefix
Definition: gadget.hpp:20
libsnark
Definition: accumulation_vector.hpp:18
libsnark::bar_gadget::width
size_t width
Definition: bar_gadget.hpp:49
libsnark::gadget::pb
protoboard< FieldT > & pb
Definition: gadget.hpp:19
libsnark::bar_gadget
Definition: bar_gadget.hpp:32
libsnark::bar_gadget::Z_bits
pb_variable_array< FieldT > Z_bits
Definition: bar_gadget.hpp:40
gadget.hpp
libsnark::bar_gadget::b
FieldT b
Definition: bar_gadget.hpp:38
libsnark::bar_gadget::generate_r1cs_witness
void generate_r1cs_witness()
libsnark::gadget
Definition: gadget.hpp:16
libsnark::bar_gadget::a
FieldT a
Definition: bar_gadget.hpp:36
libsnark::bar_gadget::overflow
pb_variable_array< FieldT > overflow
Definition: bar_gadget.hpp:43
libsnark::pb_linear_combination_array
Definition: pb_variable.hpp:118
libsnark::bar_gadget::pack_Z
std::shared_ptr< packing_gadget< FieldT > > pack_Z
Definition: bar_gadget.hpp:47
libsnark::bar_gadget::Z_packed
pb_linear_combination< FieldT > Z_packed
Definition: bar_gadget.hpp:39
libsnark::pb_linear_combination
Definition: pb_variable.hpp:101
libsnark::pb_variable
Definition: pb_variable.hpp:24
basic_gadgets.hpp
libsnark::bar_gadget::Y
pb_linear_combination_array< FieldT > Y
Definition: bar_gadget.hpp:37
libsnark::pb_variable_array
Definition: pb_variable.hpp:44
libsnark::bar_gadget::unpack_result
std::shared_ptr< packing_gadget< FieldT > > unpack_result
Definition: bar_gadget.hpp:46
libsnark::bar_gadget::unpacked_result
pb_variable_array< FieldT > unpacked_result
Definition: bar_gadget.hpp:44
libsnark::bar_gadget::result
pb_variable< FieldT > result
Definition: bar_gadget.hpp:42
libsnark::bar_gadget::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::bar_gadget::X
pb_linear_combination_array< FieldT > X
Definition: bar_gadget.hpp:35
libsnark::bar_gadget::bar_gadget
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)
libsnark::protoboard
Definition: pb_variable.hpp:22
bar_gadget.tcc