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

#include <scalar_multiplication.hpp>

Inheritance diagram for libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >:
Collaboration graph
[legend]

Public Types

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

Public Member Functions

 dbl_variable_or_identity (protoboard< FieldT > &pb, const variableOrIdentity &A, 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

pb_linear_combination< FieldTA_is_identity
 
variableOrIdentity result
 
dblGadgetT double_gadget
 

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 groupVariableT, typename dblGadgetT>
class libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >

Wrap a dbl gadget, extending it to support doubling variable_or_identity elements.

Definition at line 269 of file scalar_multiplication.hpp.

Member Typedef Documentation

◆ FieldT

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
using libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::FieldT = libff::Fr<ppT>

Definition at line 272 of file scalar_multiplication.hpp.

◆ variableOrIdentity

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
using libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::variableOrIdentity = variable_or_identity<ppT, groupT, groupVariableT>

Definition at line 274 of file scalar_multiplication.hpp.

Constructor & Destructor Documentation

◆ dbl_variable_or_identity()

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::dbl_variable_or_identity ( protoboard< FieldT > &  pb,
const variableOrIdentity A,
const variableOrIdentity result,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
void libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
void libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::generate_r1cs_witness ( )

Member Data Documentation

◆ A_is_identity

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
pb_linear_combination<FieldT> libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::A_is_identity

Definition at line 289 of file scalar_multiplication.hpp.

◆ double_gadget

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
dblGadgetT libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::double_gadget

Definition at line 291 of file scalar_multiplication.hpp.

◆ result

template<typename ppT , typename groupT , typename groupVariableT , typename dblGadgetT >
variableOrIdentity libsnark::dbl_variable_or_identity< ppT, groupT, groupVariableT, dblGadgetT >::result

Definition at line 290 of file scalar_multiplication.hpp.


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