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

#include <tally_cp.hpp>

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

Public Types

typedef compliance_predicate_handler< FieldT, protoboard< FieldT > > base_handler
 

Public Member Functions

 tally_cp_handler (const size_t type, const size_t max_arity, const size_t wordsize, const bool relies_on_same_type_inputs=false, const std::set< size_t > accepted_input_types=std::set< size_t >())
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness (const std::vector< std::shared_ptr< r1cs_pcd_message< FieldT >>> &incoming_messages, const std::shared_ptr< r1cs_pcd_local_data< FieldT >> &local_data)
 
std::shared_ptr< r1cs_pcd_message< FieldT > > get_base_case_message () const
 
- Public Member Functions inherited from libsnark::compliance_predicate_handler< FieldT, protoboard< FieldT > >
 compliance_predicate_handler (const protoboard< FieldT > &pb, const size_t name, const size_t type, const size_t max_arity, const bool relies_on_same_type_inputs, const std::set< size_t > accepted_input_types=std::set< size_t >())
 
r1cs_pcd_compliance_predicate< FieldT > get_compliance_predicate () const
 
r1cs_variable_assignment< FieldT > get_full_variable_assignment () const
 
std::shared_ptr< r1cs_pcd_message< FieldT > > get_outgoing_message () const
 
size_t get_arity () const
 
std::shared_ptr< r1cs_pcd_message< FieldT > > get_incoming_message (const size_t message_idx) const
 
std::shared_ptr< r1cs_pcd_local_data< FieldT > > get_local_data () const
 
r1cs_variable_assignment< FieldT > get_witness () const
 

Public Attributes

pb_variable_array< FieldT > incoming_types
 
pb_variable< FieldT > sum_out_packed
 
pb_variable< FieldT > count_out_packed
 
pb_variable_array< FieldT > sum_in_packed
 
pb_variable_array< FieldT > count_in_packed
 
pb_variable_array< FieldT > sum_in_packed_aux
 
pb_variable_array< FieldT > count_in_packed_aux
 
std::shared_ptr< packing_gadget< FieldT > > unpack_sum_out
 
std::shared_ptr< packing_gadget< FieldT > > unpack_count_out
 
std::vector< packing_gadget< FieldT > > pack_sum_in
 
std::vector< packing_gadget< FieldT > > pack_count_in
 
pb_variable< FieldT > type_val_inner_product
 
std::shared_ptr< inner_product_gadget< FieldT > > compute_type_val_inner_product
 
pb_variable_array< FieldT > arity_indicators
 
size_t wordsize
 
size_t message_length
 
- Public Attributes inherited from libsnark::compliance_predicate_handler< FieldT, protoboard< FieldT > >
const size_t name
 
const size_t type
 
const size_t max_arity
 
const bool relies_on_same_type_inputs
 
const std::set< size_t > accepted_input_types
 

Additional Inherited Members

- Protected Attributes inherited from libsnark::compliance_predicate_handler< FieldT, protoboard< FieldT > >
protoboard< FieldT > pb
 
std::shared_ptr< r1cs_pcd_message_variable< FieldT > > outgoing_message
 
pb_variable< FieldT > arity
 
std::vector< std::shared_ptr< r1cs_pcd_message_variable< FieldT > > > incoming_messages
 
std::shared_ptr< r1cs_pcd_local_data_variable< FieldT > > local_data
 

Detailed Description

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

Subclass a R1CS compliance predicate handler to the tally compliance predicate handler.

Definition at line 75 of file tally_cp.hpp.

Member Typedef Documentation

◆ base_handler

template<typename FieldT >
typedef compliance_predicate_handler<FieldT, protoboard<FieldT> > libsnark::tally_cp_handler< FieldT >::base_handler

Definition at line 80 of file tally_cp.hpp.

Constructor & Destructor Documentation

◆ tally_cp_handler()

template<typename FieldT >
libsnark::tally_cp_handler< FieldT >::tally_cp_handler ( const size_t  type,
const size_t  max_arity,
const size_t  wordsize,
const bool  relies_on_same_type_inputs = false,
const std::set< size_t >  accepted_input_types = std::set< size_t >() 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldT >
void libsnark::tally_cp_handler< FieldT >::generate_r1cs_constraints ( )
virtual

◆ generate_r1cs_witness()

template<typename FieldT >
void libsnark::tally_cp_handler< FieldT >::generate_r1cs_witness ( const std::vector< std::shared_ptr< r1cs_pcd_message< FieldT >>> &  incoming_messages,
const std::shared_ptr< r1cs_pcd_local_data< FieldT >> &  local_data 
)
virtual

◆ get_base_case_message()

template<typename FieldT >
std::shared_ptr<r1cs_pcd_message<FieldT> > libsnark::tally_cp_handler< FieldT >::get_base_case_message ( ) const

Member Data Documentation

◆ arity_indicators

template<typename FieldT >
pb_variable_array<FieldT> libsnark::tally_cp_handler< FieldT >::arity_indicators

Definition at line 100 of file tally_cp.hpp.

◆ compute_type_val_inner_product

template<typename FieldT >
std::shared_ptr<inner_product_gadget<FieldT> > libsnark::tally_cp_handler< FieldT >::compute_type_val_inner_product

Definition at line 98 of file tally_cp.hpp.

◆ count_in_packed

template<typename FieldT >
pb_variable_array<FieldT> libsnark::tally_cp_handler< FieldT >::count_in_packed

Definition at line 86 of file tally_cp.hpp.

◆ count_in_packed_aux

template<typename FieldT >
pb_variable_array<FieldT> libsnark::tally_cp_handler< FieldT >::count_in_packed_aux

Definition at line 89 of file tally_cp.hpp.

◆ count_out_packed

template<typename FieldT >
pb_variable<FieldT> libsnark::tally_cp_handler< FieldT >::count_out_packed

Definition at line 84 of file tally_cp.hpp.

◆ incoming_types

template<typename FieldT >
pb_variable_array<FieldT> libsnark::tally_cp_handler< FieldT >::incoming_types

Definition at line 81 of file tally_cp.hpp.

◆ message_length

template<typename FieldT >
size_t libsnark::tally_cp_handler< FieldT >::message_length

Definition at line 103 of file tally_cp.hpp.

◆ pack_count_in

template<typename FieldT >
std::vector<packing_gadget<FieldT> > libsnark::tally_cp_handler< FieldT >::pack_count_in

Definition at line 94 of file tally_cp.hpp.

◆ pack_sum_in

template<typename FieldT >
std::vector<packing_gadget<FieldT> > libsnark::tally_cp_handler< FieldT >::pack_sum_in

Definition at line 93 of file tally_cp.hpp.

◆ sum_in_packed

template<typename FieldT >
pb_variable_array<FieldT> libsnark::tally_cp_handler< FieldT >::sum_in_packed

Definition at line 85 of file tally_cp.hpp.

◆ sum_in_packed_aux

template<typename FieldT >
pb_variable_array<FieldT> libsnark::tally_cp_handler< FieldT >::sum_in_packed_aux

Definition at line 88 of file tally_cp.hpp.

◆ sum_out_packed

template<typename FieldT >
pb_variable<FieldT> libsnark::tally_cp_handler< FieldT >::sum_out_packed

Definition at line 83 of file tally_cp.hpp.

◆ type_val_inner_product

template<typename FieldT >
pb_variable<FieldT> libsnark::tally_cp_handler< FieldT >::type_val_inner_product

Definition at line 96 of file tally_cp.hpp.

◆ unpack_count_out

template<typename FieldT >
std::shared_ptr<packing_gadget<FieldT> > libsnark::tally_cp_handler< FieldT >::unpack_count_out

Definition at line 92 of file tally_cp.hpp.

◆ unpack_sum_out

template<typename FieldT >
std::shared_ptr<packing_gadget<FieldT> > libsnark::tally_cp_handler< FieldT >::unpack_sum_out

Definition at line 91 of file tally_cp.hpp.

◆ wordsize

template<typename FieldT >
size_t libsnark::tally_cp_handler< FieldT >::wordsize

Definition at line 102 of file tally_cp.hpp.


The documentation for this class was generated from the following file: