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

#include <weierstrass_g1_gadget.hpp>

Inheritance diagram for libsnark::G1_multiscalar_mul_gadget< ppT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::G1_multiscalar_mul_gadget< ppT >:
Collaboration graph
[legend]

Public Types

typedef libff::Fr< ppT > FieldT
 

Public Member Functions

 G1_multiscalar_mul_gadget (protoboard< FieldT > &pb, const G1_variable< ppT > &base, const pb_variable_array< FieldT > &scalars, const size_t elt_size, const std::vector< G1_variable< ppT >> &points, const G1_variable< ppT > &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

std::vector< G1_variable< ppT > > computed_results
 
std::vector< G1_variable< ppT > > chosen_results
 
std::vector< G1_add_gadget< ppT > > adders
 
std::vector< G1_dbl_gadget< ppT > > doublers
 
G1_variable< ppT > base
 
pb_variable_array< FieldTscalars
 
std::vector< G1_variable< ppT > > points
 
std::vector< G1_variable< ppT > > points_and_powers
 
G1_variable< ppT > result
 
const size_t elt_size
 
const size_t num_points
 
const size_t scalar_size
 

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>
class libsnark::G1_multiscalar_mul_gadget< ppT >

Gadget that creates constraints for G1 multi-scalar multiplication.

Definition at line 163 of file weierstrass_g1_gadget.hpp.

Member Typedef Documentation

◆ FieldT

template<typename ppT >
typedef libff::Fr<ppT> libsnark::G1_multiscalar_mul_gadget< ppT >::FieldT

Definition at line 166 of file weierstrass_g1_gadget.hpp.

Constructor & Destructor Documentation

◆ G1_multiscalar_mul_gadget()

template<typename ppT >
libsnark::G1_multiscalar_mul_gadget< ppT >::G1_multiscalar_mul_gadget ( protoboard< FieldT > &  pb,
const G1_variable< ppT > &  base,
const pb_variable_array< FieldT > &  scalars,
const size_t  elt_size,
const std::vector< G1_variable< ppT >> &  points,
const G1_variable< ppT > &  result,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename ppT >
void libsnark::G1_multiscalar_mul_gadget< ppT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename ppT >
void libsnark::G1_multiscalar_mul_gadget< ppT >::generate_r1cs_witness ( )

Member Data Documentation

◆ adders

template<typename ppT >
std::vector<G1_add_gadget<ppT> > libsnark::G1_multiscalar_mul_gadget< ppT >::adders

Definition at line 170 of file weierstrass_g1_gadget.hpp.

◆ base

template<typename ppT >
G1_variable<ppT> libsnark::G1_multiscalar_mul_gadget< ppT >::base

Definition at line 173 of file weierstrass_g1_gadget.hpp.

◆ chosen_results

template<typename ppT >
std::vector<G1_variable<ppT> > libsnark::G1_multiscalar_mul_gadget< ppT >::chosen_results

Definition at line 169 of file weierstrass_g1_gadget.hpp.

◆ computed_results

template<typename ppT >
std::vector<G1_variable<ppT> > libsnark::G1_multiscalar_mul_gadget< ppT >::computed_results

Definition at line 168 of file weierstrass_g1_gadget.hpp.

◆ doublers

template<typename ppT >
std::vector<G1_dbl_gadget<ppT> > libsnark::G1_multiscalar_mul_gadget< ppT >::doublers

Definition at line 171 of file weierstrass_g1_gadget.hpp.

◆ elt_size

template<typename ppT >
const size_t libsnark::G1_multiscalar_mul_gadget< ppT >::elt_size

Definition at line 179 of file weierstrass_g1_gadget.hpp.

◆ num_points

template<typename ppT >
const size_t libsnark::G1_multiscalar_mul_gadget< ppT >::num_points

Definition at line 180 of file weierstrass_g1_gadget.hpp.

◆ points

template<typename ppT >
std::vector<G1_variable<ppT> > libsnark::G1_multiscalar_mul_gadget< ppT >::points

Definition at line 175 of file weierstrass_g1_gadget.hpp.

◆ points_and_powers

template<typename ppT >
std::vector<G1_variable<ppT> > libsnark::G1_multiscalar_mul_gadget< ppT >::points_and_powers

Definition at line 176 of file weierstrass_g1_gadget.hpp.

◆ result

template<typename ppT >
G1_variable<ppT> libsnark::G1_multiscalar_mul_gadget< ppT >::result

Definition at line 177 of file weierstrass_g1_gadget.hpp.

◆ scalar_size

template<typename ppT >
const size_t libsnark::G1_multiscalar_mul_gadget< ppT >::scalar_size

Definition at line 181 of file weierstrass_g1_gadget.hpp.

◆ scalars

template<typename ppT >
pb_variable_array<FieldT> libsnark::G1_multiscalar_mul_gadget< ppT >::scalars

Definition at line 174 of file weierstrass_g1_gadget.hpp.


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