Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Types | Public Member Functions | Public Attributes | List of all members
libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT > Class Template Reference

Selector gadget for variable_or_identity. More...

#include <scalar_multiplication.hpp>

Inheritance diagram for libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >:
Collaboration graph
[legend]

Public Types

using FieldT = libff::Fr< ppT >
 
using variableOrIdentity = variable_or_identity< ppT, groupT, variableT >
 

Public Member Functions

 variable_or_identity_selector (protoboard< FieldT > &pb, const pb_linear_combination< FieldT > &selector, const variableOrIdentity &zero_case, const variableOrIdentity &one_case, const variableOrIdentity &result, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
- Public Member Functions inherited from libsnark::gadget< libff::Fr< ppT > >
 gadget (protoboard< libff::Fr< ppT > > &pb, const std::string &annotation_prefix)
 

Public Attributes

variableSelectorT value_selector
 
pb_linear_combination< FieldTzero_case_is_identity
 
pb_linear_combination< FieldTone_case_is_identity
 
pb_linear_combination< FieldTresult_is_identity
 

Additional Inherited Members

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

Detailed Description

template<typename ppT, typename groupT, typename variableT, typename variableSelectorT>
class libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >

Selector gadget for variable_or_identity.

Definition at line 81 of file scalar_multiplication.hpp.

Member Typedef Documentation

◆ FieldT

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
using libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::FieldT = libff::Fr<ppT>

Definition at line 84 of file scalar_multiplication.hpp.

◆ variableOrIdentity

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
using libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::variableOrIdentity = variable_or_identity<ppT, groupT, variableT>

Definition at line 85 of file scalar_multiplication.hpp.

Constructor & Destructor Documentation

◆ variable_or_identity_selector()

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::variable_or_identity_selector ( protoboard< FieldT > &  pb,
const pb_linear_combination< FieldT > &  selector,
const variableOrIdentity zero_case,
const variableOrIdentity one_case,
const variableOrIdentity result,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
void libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
void libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::generate_r1cs_witness ( )

Member Data Documentation

◆ one_case_is_identity

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
pb_linear_combination<FieldT> libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::one_case_is_identity

Definition at line 95 of file scalar_multiplication.hpp.

◆ result_is_identity

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
pb_linear_combination<FieldT> libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::result_is_identity

Definition at line 96 of file scalar_multiplication.hpp.

◆ value_selector

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
variableSelectorT libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::value_selector

Definition at line 89 of file scalar_multiplication.hpp.

◆ zero_case_is_identity

template<typename ppT , typename groupT , typename variableT , typename variableSelectorT >
pb_linear_combination<FieldT> libsnark::variable_or_identity_selector< ppT, groupT, variableT, variableSelectorT >::zero_case_is_identity

Definition at line 94 of file scalar_multiplication.hpp.


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