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

#include <basic_gadgets.hpp>

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

Public Member Functions

 comparison_gadget (protoboard< FieldT > &pb, const size_t n, const pb_linear_combination< FieldT > &A, const pb_linear_combination< FieldT > &B, const pb_variable< FieldT > &less, const pb_variable< FieldT > &less_or_eq, const std::string &annotation_prefix="")
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
- Public Member Functions inherited from libsnark::gadget< FieldT >
 gadget (protoboard< FieldT > &pb, const std::string &annotation_prefix)
 

Public Attributes

const size_t n
 
const pb_linear_combination< FieldT > A
 
const pb_linear_combination< FieldT > B
 
const pb_variable< FieldT > less
 
const pb_variable< FieldT > less_or_eq
 

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

Definition at line 246 of file basic_gadgets.hpp.

Constructor & Destructor Documentation

◆ comparison_gadget()

template<typename FieldT >
libsnark::comparison_gadget< FieldT >::comparison_gadget ( protoboard< FieldT > &  pb,
const size_t  n,
const pb_linear_combination< FieldT > &  A,
const pb_linear_combination< FieldT > &  B,
const pb_variable< FieldT > &  less,
const pb_variable< FieldT > &  less_or_eq,
const std::string &  annotation_prefix = "" 
)
inline

Definition at line 263 of file basic_gadgets.hpp.

271  : gadget<FieldT>(pb, annotation_prefix)
272  , n(n)
273  , A(A)
274  , B(B)
275  , less(less)
277  {
278  alpha.allocate(pb, n, FMT(this->annotation_prefix, " alpha"));
279  alpha.emplace_back(less_or_eq); // alpha[n] is less_or_eq
280 
281  alpha_packed.allocate(
282  pb, FMT(this->annotation_prefix, " alpha_packed"));
283  not_all_zeros.allocate(
284  pb, FMT(this->annotation_prefix, " not_all_zeros"));
285 
286  pack_alpha.reset(new packing_gadget<FieldT>(
287  pb,
288  alpha,
289  alpha_packed,
290  FMT(this->annotation_prefix, " pack_alpha")));
291 
292  all_zeros_test.reset(new disjunction_gadget<FieldT>(
293  pb,
294  pb_variable_array<FieldT>(alpha.begin(), alpha.begin() + n),
295  not_all_zeros,
296  FMT(this->annotation_prefix, " all_zeros_test")));
297  };
Here is the call graph for this function:

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldT >
void libsnark::comparison_gadget< FieldT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename FieldT >
void libsnark::comparison_gadget< FieldT >::generate_r1cs_witness ( )

Member Data Documentation

◆ A

template<typename FieldT >
const pb_linear_combination<FieldT> libsnark::comparison_gadget< FieldT >::A

Definition at line 258 of file basic_gadgets.hpp.

◆ B

template<typename FieldT >
const pb_linear_combination<FieldT> libsnark::comparison_gadget< FieldT >::B

Definition at line 259 of file basic_gadgets.hpp.

◆ less

template<typename FieldT >
const pb_variable<FieldT> libsnark::comparison_gadget< FieldT >::less

Definition at line 260 of file basic_gadgets.hpp.

◆ less_or_eq

template<typename FieldT >
const pb_variable<FieldT> libsnark::comparison_gadget< FieldT >::less_or_eq

Definition at line 261 of file basic_gadgets.hpp.

◆ n

template<typename FieldT >
const size_t libsnark::comparison_gadget< FieldT >::n

Definition at line 257 of file basic_gadgets.hpp.


The documentation for this class was generated from the following file:
libsnark::comparison_gadget::B
const pb_linear_combination< FieldT > B
Definition: basic_gadgets.hpp:259
libsnark::gadget::annotation_prefix
const std::string annotation_prefix
Definition: gadget.hpp:20
libsnark::comparison_gadget::n
const size_t n
Definition: basic_gadgets.hpp:257
libsnark::gadget::pb
protoboard< FieldT > & pb
Definition: gadget.hpp:19
libsnark::comparison_gadget::A
const pb_linear_combination< FieldT > A
Definition: basic_gadgets.hpp:258
libsnark::comparison_gadget::less
const pb_variable< FieldT > less
Definition: basic_gadgets.hpp:260
libsnark::comparison_gadget::less_or_eq
const pb_variable< FieldT > less_or_eq
Definition: basic_gadgets.hpp:261