Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | List of all members
libsnark::packing_gadget< FieldT > Class Template Reference

#include <basic_gadgets.hpp>

Inheritance diagram for libsnark::packing_gadget< FieldT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::packing_gadget< FieldT >:
Collaboration graph
[legend]

Public Member Functions

 packing_gadget (protoboard< FieldT > &pb, const pb_linear_combination_array< FieldT > &bits, const pb_linear_combination< FieldT > &packed, const std::string &annotation_prefix="")
 
void generate_r1cs_constraints (const bool enforce_bitness)
 
void generate_r1cs_witness_from_packed ()
 
void generate_r1cs_witness_from_bits ()
 
- Public Member Functions inherited from libsnark::gadget< FieldT >
 gadget (protoboard< FieldT > &pb, const std::string &annotation_prefix)
 

Public Attributes

const pb_linear_combination_array< FieldT > bits
 
const pb_linear_combination< FieldT > packed
 

Additional Inherited Members

- Protected Attributes inherited from libsnark::gadget< FieldT >
protoboard< FieldT > & pb
 
const std::string annotation_prefix
 

Detailed Description

template<typename FieldT>
class libsnark::packing_gadget< FieldT >

Constrain a bit array to be equal to the binary encoding of some linear combination. Supports computing the bits from the linear combination, and vice-versa. Also supports constraining the bit array values to be boolean if this is not verified elsewhere.

Definition at line 36 of file basic_gadgets.hpp.

Constructor & Destructor Documentation

◆ packing_gadget()

template<typename FieldT >
libsnark::packing_gadget< FieldT >::packing_gadget ( protoboard< FieldT > &  pb,
const pb_linear_combination_array< FieldT > &  bits,
const pb_linear_combination< FieldT > &  packed,
const std::string &  annotation_prefix = "" 
)
inline

Definition at line 44 of file basic_gadgets.hpp.

49  : gadget<FieldT>(pb, annotation_prefix), bits(bits), packed(packed)
50  {
51  }

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldT >
void libsnark::packing_gadget< FieldT >::generate_r1cs_constraints ( const bool  enforce_bitness)

◆ generate_r1cs_witness_from_bits()

template<typename FieldT >
void libsnark::packing_gadget< FieldT >::generate_r1cs_witness_from_bits ( )

◆ generate_r1cs_witness_from_packed()

template<typename FieldT >
void libsnark::packing_gadget< FieldT >::generate_r1cs_witness_from_packed ( )

Member Data Documentation

◆ bits

template<typename FieldT >
const pb_linear_combination_array<FieldT> libsnark::packing_gadget< FieldT >::bits

Definition at line 41 of file basic_gadgets.hpp.

◆ packed

template<typename FieldT >
const pb_linear_combination<FieldT> libsnark::packing_gadget< FieldT >::packed

Definition at line 42 of file basic_gadgets.hpp.


The documentation for this class was generated from the following file:
libsnark::gadget::annotation_prefix
const std::string annotation_prefix
Definition: gadget.hpp:20
libsnark::gadget::pb
protoboard< FieldT > & pb
Definition: gadget.hpp:19
libsnark::packing_gadget::packed
const pb_linear_combination< FieldT > packed
Definition: basic_gadgets.hpp:42
libsnark::packing_gadget::bits
const pb_linear_combination_array< FieldT > bits
Definition: basic_gadgets.hpp:41