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

#include <basic_gadgets.hpp>

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

Public Member Functions

 loose_multiplexing_gadget (protoboard< FieldT > &pb, const pb_linear_combination_array< FieldT > &arr, const pb_variable< FieldT > &index, const pb_variable< FieldT > &result, const pb_variable< FieldT > &success_flag, 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

pb_variable_array< FieldT > alpha
 
const pb_linear_combination_array< FieldT > arr
 
const pb_variable< FieldT > index
 
const pb_variable< FieldT > result
 
const pb_variable< FieldT > success_flag
 

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

Definition at line 333 of file basic_gadgets.hpp.

Constructor & Destructor Documentation

◆ loose_multiplexing_gadget()

template<typename FieldT >
libsnark::loose_multiplexing_gadget< FieldT >::loose_multiplexing_gadget ( protoboard< FieldT > &  pb,
const pb_linear_combination_array< FieldT > &  arr,
const pb_variable< FieldT > &  index,
const pb_variable< FieldT > &  result,
const pb_variable< FieldT > &  success_flag,
const std::string &  annotation_prefix = "" 
)
inline

Definition at line 354 of file basic_gadgets.hpp.

361  : gadget<FieldT>(pb, annotation_prefix)
362  , arr(arr)
363  , index(index)
364  , result(result)
366  {
367  alpha.allocate(pb, arr.size(), FMT(this->annotation_prefix, " alpha"));
368  compute_result.reset(new inner_product_gadget<FieldT>(
369  pb,
370  alpha,
371  arr,
372  result,
373  FMT(this->annotation_prefix, " compute_result")));
374  };

Member Function Documentation

◆ generate_r1cs_constraints()

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

◆ generate_r1cs_witness()

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

Member Data Documentation

◆ alpha

template<typename FieldT >
pb_variable_array<FieldT> libsnark::loose_multiplexing_gadget< FieldT >::alpha

Definition at line 343 of file basic_gadgets.hpp.

◆ arr

template<typename FieldT >
const pb_linear_combination_array<FieldT> libsnark::loose_multiplexing_gadget< FieldT >::arr

Definition at line 349 of file basic_gadgets.hpp.

◆ index

template<typename FieldT >
const pb_variable<FieldT> libsnark::loose_multiplexing_gadget< FieldT >::index

Definition at line 350 of file basic_gadgets.hpp.

◆ result

template<typename FieldT >
const pb_variable<FieldT> libsnark::loose_multiplexing_gadget< FieldT >::result

Definition at line 351 of file basic_gadgets.hpp.

◆ success_flag

template<typename FieldT >
const pb_variable<FieldT> libsnark::loose_multiplexing_gadget< FieldT >::success_flag

Definition at line 352 of file basic_gadgets.hpp.


The documentation for this class was generated from the following file:
libsnark::loose_multiplexing_gadget::index
const pb_variable< FieldT > index
Definition: basic_gadgets.hpp:350
libsnark::gadget::annotation_prefix
const std::string annotation_prefix
Definition: gadget.hpp:20
libsnark::gadget::pb
protoboard< FieldT > & pb
Definition: gadget.hpp:19
libsnark::loose_multiplexing_gadget::success_flag
const pb_variable< FieldT > success_flag
Definition: basic_gadgets.hpp:352
libsnark::loose_multiplexing_gadget::result
const pb_variable< FieldT > result
Definition: basic_gadgets.hpp:351
libsnark::loose_multiplexing_gadget::alpha
pb_variable_array< FieldT > alpha
Definition: basic_gadgets.hpp:343
libsnark::loose_multiplexing_gadget::arr
const pb_linear_combination_array< FieldT > arr
Definition: basic_gadgets.hpp:349