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

#include <element_g1.hpp>

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

Public Member Functions

 element_g1 (blueprint< scalar_field_type > &bp)
 
 element_g1 (blueprint< scalar_field_type > &bp, const typename CurveType::pairing::chained_curve_type::template g1_type<>::value_type &P)
 
 element_g1 (blueprint< underlying_field_type > &bp)
 
 element_g1 (blueprint< underlying_field_type > &bp, const typename CurveType::pairing::pair_curve_type::template g1_type<>::value_type &P)
 
void generate_r1cs_witness (const typename CurveType::pairing::chained_curve_type::template g1_type<>::value_type &el)
 
void generate_r1cs_witness (const typename CurveType::pairing::pair_curve_type::template g1_type<>::value_type &el)
 

Static Public Member Functions

static std::size_t __attribute__ ((noinline)) size_in_bits()
 
static std::size_t __attribute__ ((noinline)) size_in_bits()
 
static std::size_t num_variables ()
 
static std::size_t num_variables ()
 

Public Attributes

blueprint_linear_combination_vector< scalar_field_type > all_vars
 
blueprint_linear_combination_vector< underlying_field_type > all_vars
 
underlying_element_type X
 
underlying_element_type Y
 

Protected Attributes

blueprint< CurveType::scalar_field_type > & bp
 

Detailed Description

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

Component that represents a G1 element for JubJub/Bls12-381 and BabyJubJub/Alt-BN128.

CurveType is BLS12-381 or BN128

Component that represents a G1 element.

Constructor & Destructor Documentation

◆ element_g1() [1/4]

template<typename CurveType >
nil::crypto3::zk::components::element_g1< CurveType >::element_g1 ( blueprint< scalar_field_type > &  bp)
inline

◆ element_g1() [2/4]

template<typename CurveType >
nil::crypto3::zk::components::element_g1< CurveType >::element_g1 ( blueprint< scalar_field_type > &  bp,
const typename CurveType::pairing::chained_curve_type::template g1_type<>::value_type &  P 
)
inline

◆ element_g1() [3/4]

template<typename CurveType >
nil::crypto3::zk::components::element_g1< CurveType >::element_g1 ( blueprint< underlying_field_type > &  bp)
inline

◆ element_g1() [4/4]

template<typename CurveType >
nil::crypto3::zk::components::element_g1< CurveType >::element_g1 ( blueprint< underlying_field_type > &  bp,
const typename CurveType::pairing::pair_curve_type::template g1_type<>::value_type &  P 
)
inline

Member Function Documentation

◆ __attribute__() [1/2]

template<typename CurveType >
static std::size_t nil::crypto3::zk::components::element_g1< CurveType >::__attribute__ ( (noinline)  )
inlinestatic

◆ __attribute__() [2/2]

template<typename CurveType >
static std::size_t nil::crypto3::zk::components::element_g1< CurveType >::__attribute__ ( (noinline)  )
inlinestatic

◆ generate_r1cs_witness() [1/2]

template<typename CurveType >
void nil::crypto3::zk::components::element_g1< CurveType >::generate_r1cs_witness ( const typename CurveType::pairing::chained_curve_type::template g1_type<>::value_type &  el)
inline

◆ generate_r1cs_witness() [2/2]

template<typename CurveType >
void nil::crypto3::zk::components::element_g1< CurveType >::generate_r1cs_witness ( const typename CurveType::pairing::pair_curve_type::template g1_type<>::value_type &  el)
inline

◆ num_variables() [1/2]

template<typename CurveType >
static std::size_t nil::crypto3::zk::components::element_g1< CurveType >::num_variables ( )
inlinestatic

◆ num_variables() [2/2]

template<typename CurveType >
static std::size_t nil::crypto3::zk::components::element_g1< CurveType >::num_variables ( )
inlinestatic

Member Data Documentation

◆ all_vars [1/2]

template<typename CurveType >
blueprint_linear_combination_vector<scalar_field_type> nil::crypto3::zk::components::element_g1< CurveType >::all_vars

◆ all_vars [2/2]

template<typename CurveType >
blueprint_linear_combination_vector<underlying_field_type> nil::crypto3::zk::components::element_g1< CurveType >::all_vars

◆ bp

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

◆ X

template<typename CurveType >
underlying_element_type nil::crypto3::zk::components::element_g1< CurveType >::X

◆ Y

template<typename CurveType >
underlying_element_type nil::crypto3::zk::components::element_g1< CurveType >::Y

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