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

#include <basic_gadgets.hpp>

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

Public Member Functions

 dual_variable_gadget (protoboard< FieldT > &pb, const size_t width, const std::string &annotation_prefix="")
 
 dual_variable_gadget (protoboard< FieldT > &pb, const pb_variable_array< FieldT > &bits, const std::string &annotation_prefix="")
 
 dual_variable_gadget (protoboard< FieldT > &pb, const pb_variable< FieldT > &packed, const size_t width, 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

pb_variable< FieldT > packed
 
pb_variable_array< FieldT > bits
 

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::dual_variable_gadget< FieldT >

Definition at line 130 of file basic_gadgets.hpp.

Constructor & Destructor Documentation

◆ dual_variable_gadget() [1/3]

template<typename FieldT >
libsnark::dual_variable_gadget< FieldT >::dual_variable_gadget ( protoboard< FieldT > &  pb,
const size_t  width,
const std::string &  annotation_prefix = "" 
)
inline

Definition at line 139 of file basic_gadgets.hpp.

143  : gadget<FieldT>(pb, annotation_prefix)
144  {
145  packed.allocate(pb, FMT(this->annotation_prefix, " packed"));
146  bits.allocate(pb, width, FMT(this->annotation_prefix, " bits"));
147  consistency_check.reset(new packing_gadget<FieldT>(
148  pb,
149  bits,
150  packed,
151  FMT(this->annotation_prefix, " consistency_check")));
152  }
Here is the call graph for this function:

◆ dual_variable_gadget() [2/3]

template<typename FieldT >
libsnark::dual_variable_gadget< FieldT >::dual_variable_gadget ( protoboard< FieldT > &  pb,
const pb_variable_array< FieldT > &  bits,
const std::string &  annotation_prefix = "" 
)
inline

Definition at line 154 of file basic_gadgets.hpp.

158  : gadget<FieldT>(pb, annotation_prefix), bits(bits)
159  {
160  packed.allocate(pb, FMT(this->annotation_prefix, " packed"));
161  consistency_check.reset(new packing_gadget<FieldT>(
162  pb,
163  bits,
164  packed,
165  FMT(this->annotation_prefix, " consistency_check")));
166  }

◆ dual_variable_gadget() [3/3]

template<typename FieldT >
libsnark::dual_variable_gadget< FieldT >::dual_variable_gadget ( protoboard< FieldT > &  pb,
const pb_variable< FieldT > &  packed,
const size_t  width,
const std::string &  annotation_prefix = "" 
)
inline

Definition at line 168 of file basic_gadgets.hpp.

173  : gadget<FieldT>(pb, annotation_prefix), packed(packed)
174  {
175  bits.allocate(pb, width, FMT(this->annotation_prefix, " bits"));
176  consistency_check.reset(new packing_gadget<FieldT>(
177  pb,
178  bits,
179  packed,
180  FMT(this->annotation_prefix, " consistency_check")));
181  }

Member Function Documentation

◆ generate_r1cs_constraints()

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

◆ generate_r1cs_witness_from_bits()

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

◆ generate_r1cs_witness_from_packed()

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

Member Data Documentation

◆ bits

template<typename FieldT >
pb_variable_array<FieldT> libsnark::dual_variable_gadget< FieldT >::bits

Definition at line 137 of file basic_gadgets.hpp.

◆ packed

template<typename FieldT >
pb_variable<FieldT> libsnark::dual_variable_gadget< FieldT >::packed

Definition at line 136 of file basic_gadgets.hpp.


The documentation for this class was generated from the following file:
libsnark::dual_variable_gadget::packed
pb_variable< FieldT > packed
Definition: basic_gadgets.hpp:136
libsnark::gadget::annotation_prefix
const std::string annotation_prefix
Definition: gadget.hpp:20
libsnark::dual_variable_gadget::bits
pb_variable_array< FieldT > bits
Definition: basic_gadgets.hpp:137
libsnark::gadget::pb
protoboard< FieldT > & pb
Definition: gadget.hpp:19