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

#include <final_exponentiation.hpp>

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

Public Types

using exponentiation_component_type = exponentiation_component< typename curve_type::pairing::fqk_type, element_fp6_2over3, element_fp6_2over3_mul, element_fp6_2over3_cyclotomic_squared >
 
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_variable_type > alpha
 
std::shared_ptr< Fqk_variable_type > beta
 
std::shared_ptr< Fqk_variable_type > beta_q
 
std::shared_ptr< Fqk_mul_component_type > compute_beta
 
std::shared_ptr< Fqk_mul_component_type > compute_el_inv
 
std::shared_ptr< Fqk_mul_component_type > compute_el_inv_q_3_minus_1
 
std::shared_ptr< Fqk_mul_component_type > compute_el_q_3_minus_1
 
std::shared_ptr< Fqk_mul_component_type > compute_inv_beta
 
std::shared_ptr< Fqk_mul_component_type > compute_result
 
std::shared_ptr< exponentiation_component< typename curve_type::pairing::fqk_type, element_fp6_2over3, element_fp6_2over3_mul, element_fp6_2over3_cyclotomic_squared > > compute_w0
 
std::shared_ptr< exponentiation_component_typecompute_w1
 
Fqk_variable_type el
 
std::shared_ptr< Fqk_variable_type > el_inv
 
std::shared_ptr< Fqk_variable_type > el_inv_q_3
 
std::shared_ptr< Fqk_variable_type > el_inv_q_3_minus_1
 
std::shared_ptr< Fqk_variable_type > el_q_3
 
std::shared_ptr< Fqk_variable_type > el_q_3_minus_1
 
std::shared_ptr< Fqk_variable_type > inv_alpha
 
std::shared_ptr< Fqk_variable_type > inv_beta
 
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::mnt4< Version >::scalar_field_type > & bp
 

Member Typedef Documentation

◆ exponentiation_component_type

◆ field_type

Constructor & Destructor Documentation

◆ final_exp_component()

template<std::size_t Version>
nil::crypto3::zk::components::final_exp_component< curves::mnt4< 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::mnt4< Version > >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_witness()

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

Member Data Documentation

◆ alpha

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::alpha

◆ beta

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::beta

◆ beta_q

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::beta_q

◆ bp

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

◆ compute_beta

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::compute_beta

◆ compute_el_inv

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

◆ compute_el_inv_q_3_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::compute_el_inv_q_3_minus_1

◆ compute_el_q_3_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::compute_el_q_3_minus_1

◆ compute_inv_beta

template<std::size_t Version>
std::shared_ptr<Fqk_mul_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::compute_inv_beta

◆ compute_result

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

◆ compute_w0

template<std::size_t Version>
std::shared_ptr<exponentiation_component<typename curve_type::pairing::fqk_type, element_fp6_2over3, element_fp6_2over3_mul, element_fp6_2over3_cyclotomic_squared> > nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::compute_w0

◆ compute_w1

template<std::size_t Version>
std::shared_ptr<exponentiation_component_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::compute_w1

◆ el

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

◆ el_inv

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

◆ el_inv_q_3

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::el_inv_q_3

◆ el_inv_q_3_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::el_inv_q_3_minus_1

◆ el_q_3

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::el_q_3

◆ el_q_3_minus_1

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::el_q_3_minus_1

◆ inv_alpha

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::inv_alpha

◆ inv_beta

template<std::size_t Version>
std::shared_ptr<Fqk_variable_type> nil::crypto3::zk::components::final_exp_component< curves::mnt4< Version > >::inv_beta

◆ one

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

◆ result

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

◆ result_is_one

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

◆ w0

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

◆ w1

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

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