nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > > Class Template Reference

#include <final_exponentiation.hpp>

+ Inheritance diagram for nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >:
+ Collaboration diagram for nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >:

Public Types

typedef curve_type::scalar_field_type field_type
 

Public Member Functions

 final_exp_component (blueprint< field_type > &bp, const Fqk_variable_type &el, const blueprint_variable< field_type > &result_is_one)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 

Public Attributes

std::shared_ptr< Fqk_mul_component_type > compute_el_inv
 
std::shared_ptr< Fqk_mul_component_type > compute_el_inv_q_2_minus_1
 
std::shared_ptr< Fqk_mul_component_type > compute_el_q_2_minus_1
 
std::shared_ptr< Fqk_mul_component_type > compute_result
 
std::shared_ptr< exponentiation_component< typename curve_type::pairing::fqk_type, element_fp4, element_fp4_mul, element_fp4_cyclotomic_squared > > compute_w0
 
std::shared_ptr< exponentiation_component< typename curve_type::pairing::fqk_type, element_fp4, element_fp4_mul, element_fp4_cyclotomic_squared > > compute_w1
 
Fqk_variable_type el
 
std::shared_ptr< Fqk_variable_type > el_inv
 
std::shared_ptr< Fqk_variable_type > el_inv_q_2
 
std::shared_ptr< Fqk_variable_type > el_inv_q_2_minus_1
 
std::shared_ptr< Fqk_variable_type > el_q_2
 
std::shared_ptr< Fqk_variable_type > el_q_2_minus_1
 
std::shared_ptr< Fqk_variable_type > el_q_3_minus_q
 
std::shared_ptr< Fqk_variable_type > one
 
std::shared_ptr< Fqk_variable_type > result
 
blueprint_variable< field_typeresult_is_one
 
std::shared_ptr< Fqk_variable_type > w0
 
std::shared_ptr< Fqk_variable_type > w1
 

Protected Attributes

blueprint< curves::mnt6< Version >::scalar_field_type > & bp
 

Detailed Description

template<std::size_t Version>
class nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >

Component for final exponentiation with embedding degree 6.

Member Typedef Documentation

◆ field_type

Constructor & Destructor Documentation

◆ final_exp_component()

template<std::size_t Version>
nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::final_exp_component ( blueprint< field_type > &  bp,
const Fqk_variable_type &  el,
const blueprint_variable< field_type > &  result_is_one 
)
inline

Member Function Documentation

◆ generate_r1cs_constraints()

template<std::size_t Version>
void nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_witness()

template<std::size_t Version>
void nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::generate_r1cs_witness ( )
inline

Member Data Documentation

◆ bp

blueprint<curves::mnt6< Version >::scalar_field_type >& nil::crypto3::zk::components::component< curves::mnt6< Version >::scalar_field_type >::bp
protectedinherited

◆ compute_el_inv

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::compute_el_inv

◆ compute_el_inv_q_2_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::compute_el_inv_q_2_minus_1

◆ compute_el_q_2_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::compute_el_q_2_minus_1

◆ compute_result

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::compute_result

◆ compute_w0

template<std::size_t Version>
std::shared_ptr<exponentiation_component<typename curve_type::pairing::fqk_type, element_fp4, element_fp4_mul, element_fp4_cyclotomic_squared> > nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::compute_w0

◆ compute_w1

template<std::size_t Version>
std::shared_ptr<exponentiation_component<typename curve_type::pairing::fqk_type, element_fp4, element_fp4_mul, element_fp4_cyclotomic_squared> > nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::compute_w1

◆ el

template<std::size_t Version>
Fqk_variable_type nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::el

◆ el_inv

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::el_inv

◆ el_inv_q_2

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::el_inv_q_2

◆ el_inv_q_2_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::el_inv_q_2_minus_1

◆ el_q_2

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::el_q_2

◆ el_q_2_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::el_q_2_minus_1

◆ el_q_3_minus_q

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::el_q_3_minus_q

◆ one

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::one

◆ result

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::result

◆ result_is_one

template<std::size_t Version>
blueprint_variable<field_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::result_is_one

◆ w0

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::w0

◆ w1

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt6< Version > >::w1

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