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

#include <scalar_multiplication.hpp>

Inheritance diagram for libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >:
Collaboration graph
[legend]

Public Types

using FieldT = typename groupT::base_field
 

Public Member Functions

 point_mul_by_const_scalar_gadget (protoboard< FieldT > &pb, const scalarT &scalar, const groupVariableT &P, const groupVariableT &result, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
const groupVariableT & result () const
 
- Public Member Functions inherited from libsnark::gadget< groupT::base_field >
 gadget (protoboard< groupT::base_field > &pb, const std::string &annotation_prefix)
 

Public Attributes

const scalarT _scalar
 
const groupVariableT _result
 
std::vector< std::shared_ptr< add_gadget > > _add_gadgets
 
std::vector< std::shared_ptr< dbl_gadget > > _dbl_gadgets
 

Additional Inherited Members

- Protected Attributes inherited from libsnark::gadget< groupT::base_field >
protoboard< groupT::base_field > & pb
 
const std::string annotation_prefix
 

Detailed Description

template<typename groupT, typename groupVariableT, typename add_gadget, typename dbl_gadget, typename scalarT>
class libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >

Generic gadget to perform scalar multiplication of group variables. Used by the individual group element implementations.

Definition at line 310 of file scalar_multiplication.hpp.

Member Typedef Documentation

◆ FieldT

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
using libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::FieldT = typename groupT::base_field

Definition at line 314 of file scalar_multiplication.hpp.

Constructor & Destructor Documentation

◆ point_mul_by_const_scalar_gadget()

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::point_mul_by_const_scalar_gadget ( protoboard< FieldT > &  pb,
const scalarT &  scalar,
const groupVariableT &  P,
const groupVariableT &  result,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
void libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
void libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::generate_r1cs_witness ( )

◆ result()

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
const groupVariableT& libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::result ( ) const

Member Data Documentation

◆ _add_gadgets

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
std::vector<std::shared_ptr<add_gadget> > libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::_add_gadgets

Definition at line 318 of file scalar_multiplication.hpp.

◆ _dbl_gadgets

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
std::vector<std::shared_ptr<dbl_gadget> > libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::_dbl_gadgets

Definition at line 319 of file scalar_multiplication.hpp.

◆ _result

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
const groupVariableT libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::_result

Definition at line 317 of file scalar_multiplication.hpp.

◆ _scalar

template<typename groupT , typename groupVariableT , typename add_gadget , typename dbl_gadget , typename scalarT >
const scalarT libsnark::point_mul_by_const_scalar_gadget< groupT, groupVariableT, add_gadget, dbl_gadget, scalarT >::_scalar

Definition at line 316 of file scalar_multiplication.hpp.


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