nil::crypto3::zk::components::scalar_mul< CurveType > Class Template Reference

#include <scalar_mul.hpp>

+ Inheritance diagram for nil::crypto3::zk::components::scalar_mul< CurveType >:
+ Collaboration diagram for nil::crypto3::zk::components::scalar_mul< CurveType >:

Public Member Functions

void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
 scalar_mul (blueprint< FieldType > &bp, const element_g1< CurveType > &base, const blueprint_variable_vector< FieldType > &scalars, const std::size_t elt_size, const std::vector< element_g1< CurveType >> &points, const element_g1< CurveType > &result)
 

Public Attributes

std::vector< element_g1_add< CurveType > > adders
 
element_g1< CurveType > base
 
std::vector< element_g1< CurveType > > chosen_results
 
std::vector< element_g1< CurveType > > computed_results
 
std::vector< element_g1_doubled< CurveType > > doublers
 
const std::size_t elt_size
 
const std::size_t num_points
 
std::vector< element_g1< CurveType > > points
 
std::vector< element_g1< CurveType > > points_and_powers
 
element_g1< CurveType > result
 
const std::size_t scalar_size
 
blueprint_variable_vector< FieldType > scalars
 

Protected Attributes

blueprint< CurveType::scalar_field_type > & bp
 

Detailed Description

template<typename CurveType>
class nil::crypto3::zk::components::scalar_mul< CurveType >

Component that creates constraints for G1 multi-scalar multiplication.

Constructor & Destructor Documentation

◆ scalar_mul()

template<typename CurveType >
nil::crypto3::zk::components::scalar_mul< CurveType >::scalar_mul ( blueprint< FieldType > &  bp,
const element_g1< CurveType > &  base,
const blueprint_variable_vector< FieldType > &  scalars,
const std::size_t  elt_size,
const std::vector< element_g1< CurveType >> &  points,
const element_g1< CurveType > &  result 
)
inline

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename CurveType >
void nil::crypto3::zk::components::scalar_mul< CurveType >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_witness()

template<typename CurveType >
void nil::crypto3::zk::components::scalar_mul< CurveType >::generate_r1cs_witness ( )
inline

Member Data Documentation

◆ adders

template<typename CurveType >
std::vector<element_g1_add<CurveType> > nil::crypto3::zk::components::scalar_mul< CurveType >::adders

◆ base

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::scalar_mul< CurveType >::base

◆ bp

blueprint<CurveType::scalar_field_type >& nil::crypto3::zk::components::component< CurveType::scalar_field_type >::bp
protectedinherited

◆ chosen_results

template<typename CurveType >
std::vector<element_g1<CurveType> > nil::crypto3::zk::components::scalar_mul< CurveType >::chosen_results

◆ computed_results

template<typename CurveType >
std::vector<element_g1<CurveType> > nil::crypto3::zk::components::scalar_mul< CurveType >::computed_results

◆ doublers

template<typename CurveType >
std::vector<element_g1_doubled<CurveType> > nil::crypto3::zk::components::scalar_mul< CurveType >::doublers

◆ elt_size

template<typename CurveType >
const std::size_t nil::crypto3::zk::components::scalar_mul< CurveType >::elt_size

◆ num_points

template<typename CurveType >
const std::size_t nil::crypto3::zk::components::scalar_mul< CurveType >::num_points

◆ points

template<typename CurveType >
std::vector<element_g1<CurveType> > nil::crypto3::zk::components::scalar_mul< CurveType >::points

◆ points_and_powers

template<typename CurveType >
std::vector<element_g1<CurveType> > nil::crypto3::zk::components::scalar_mul< CurveType >::points_and_powers

◆ result

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::scalar_mul< CurveType >::result

◆ scalar_size

template<typename CurveType >
const std::size_t nil::crypto3::zk::components::scalar_mul< CurveType >::scalar_size

◆ scalars

template<typename CurveType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::scalar_mul< CurveType >::scalars

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