nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T > Class Template Reference

#include <element_fp4.hpp>

+ Inheritance diagram for nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >:
+ Collaboration diagram for nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >:

Public Types

using base_field_type = typename field_type::base_field_type
 
using base_field_value_type = typename base_field_type::value_type
 
using field_type = Fp4T
 
using underlying_element_type = element_fp2< underlying_field_type >
 
using underlying_field_type = typename field_type::underlying_field_type
 

Public Member Functions

 element_fp4_cyclotomic_squared (blueprint< base_field_type > &bp, const element_fp4< field_type > &A, const element_fp4< field_type > &result)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 

Public Attributes

element_fp4< field_typeA
 
std::shared_ptr< underlying_element_typeA_c0_plus_A_c1
 
blueprint_linear_combination< base_field_typeA_c0_plus_A_c1_c0
 
blueprint_linear_combination< base_field_typeA_c0_plus_A_c1_c1
 
std::shared_ptr< underlying_element_typec0_expr
 
blueprint_linear_combination< base_field_typec0_expr_c0
 
blueprint_linear_combination< base_field_typec0_expr_c1
 
std::shared_ptr< underlying_element_typec1_expr
 
blueprint_linear_combination< base_field_typec1_expr_c0
 
blueprint_linear_combination< base_field_typec1_expr_c1
 
std::shared_ptr< element_fp2_squared< underlying_field_type > > compute_c0_expr
 
std::shared_ptr< element_fp2_squared< underlying_field_type > > compute_c1_expr
 
element_fp4< field_typeresult
 

Protected Attributes

blueprint< Fp4T::base_field_type > & bp
 

Detailed Description

template<typename Fp4T>
class nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >

Component that creates constraints for Fp4 cyclotomic squaring

Member Typedef Documentation

◆ base_field_type

template<typename Fp4T >
using nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::base_field_type = typename field_type::base_field_type

◆ base_field_value_type

template<typename Fp4T >
using nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::base_field_value_type = typename base_field_type::value_type

◆ field_type

template<typename Fp4T >
using nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::field_type = Fp4T

◆ underlying_element_type

◆ underlying_field_type

template<typename Fp4T >
using nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::underlying_field_type = typename field_type::underlying_field_type

Constructor & Destructor Documentation

◆ element_fp4_cyclotomic_squared()

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename Fp4T >
void nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_witness()

template<typename Fp4T >
void nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::generate_r1cs_witness ( )
inline

Member Data Documentation

◆ A

◆ A_c0_plus_A_c1

template<typename Fp4T >
std::shared_ptr<underlying_element_type> nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::A_c0_plus_A_c1

◆ A_c0_plus_A_c1_c0

◆ A_c0_plus_A_c1_c1

◆ bp

blueprint<Fp4T::base_field_type >& nil::crypto3::zk::components::component< Fp4T::base_field_type >::bp
protectedinherited

◆ c0_expr

template<typename Fp4T >
std::shared_ptr<underlying_element_type> nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::c0_expr

◆ c0_expr_c0

◆ c0_expr_c1

◆ c1_expr

template<typename Fp4T >
std::shared_ptr<underlying_element_type> nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::c1_expr

◆ c1_expr_c0

◆ c1_expr_c1

◆ compute_c0_expr

template<typename Fp4T >
std::shared_ptr<element_fp2_squared<underlying_field_type> > nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::compute_c0_expr

◆ compute_c1_expr

template<typename Fp4T >
std::shared_ptr<element_fp2_squared<underlying_field_type> > nil::crypto3::zk::components::element_fp4_cyclotomic_squared< Fp4T >::compute_c1_expr

◆ result


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