Public Types |
Public Member Functions |
Public Attributes |
Protected Attributes |
List of all members
nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType > Class Template Reference
#include <precomputation.hpp>
Inheritance diagram for nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >:
Collaboration diagram for nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >:
Public Types | |
typedef CurveType::pairing::fp_type | FieldType |
using | fqe_type = typename CurveType::pairing::pair_curve_type::pairing::fqe_type |
Public Member Functions | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness () |
precompute_G2_component_doubling_step (blueprint< FieldType > &bp, const precompute_G2_component_coeffs< CurveType > &cur, const precompute_G2_component_coeffs< CurveType > &next) | |
Public Attributes | |
std::shared_ptr< typename component_policy::Fqe_mul_component_type > | compute_gamma |
std::shared_ptr< typename component_policy::Fqe_mul_component_type > | compute_gamma_X |
std::shared_ptr< typename component_policy::Fqe_sqr_component_type > | compute_next_RX |
std::shared_ptr< typename component_policy::Fqe_mul_component_type > | compute_next_RY |
std::shared_ptr< typename component_policy::Fqe_sqr_component_type > | compute_RXsquared |
precompute_G2_component_coeffs< CurveType > | cur |
precompute_G2_component_coeffs< CurveType > | next |
std::shared_ptr< typename component_policy::Fqe_variable_type > | next_RX_plus_two_RX |
std::shared_ptr< typename component_policy::Fqe_variable_type > | RX_minus_next_RX |
std::shared_ptr< typename component_policy::Fqe_variable_type > | RXsquared |
std::shared_ptr< typename component_policy::Fqe_variable_type > | RY_plus_next_RY |
std::shared_ptr< typename component_policy::Fqe_variable_type > | three_RXsquared_plus_a |
std::shared_ptr< typename component_policy::Fqe_variable_type > | two_RY |
Protected Attributes | |
blueprint< CurveType::scalar_field_type > & | bp |
Detailed Description
template<typename CurveType>
class nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >
Technical note:
QX and QY – X and Y coordinates of Q
initialization: coeffs[0].RX = QX coeffs[0].RY = QY
g2_precompute_doubling_step relates coeffs[i] and coeffs[i+1] as follows
coeffs[i] gamma = (3 * RX^2 + twist_coeff_a) * (2*RY).inversed() gamma_X = gamma * RX
coeffs[i+1] RX = prev_gamma^2 - (2*prev_RX) RY = prev_gamma * (prev_RX - RX) - prev_RY
Member Typedef Documentation
◆ FieldType
template<typename CurveType >
typedef CurveType::pairing::fp_type nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::FieldType |
◆ fqe_type
template<typename CurveType >
using nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::fqe_type = typename CurveType::pairing::pair_curve_type::pairing::fqe_type |
Constructor & Destructor Documentation
◆ precompute_G2_component_doubling_step()
template<typename CurveType >
|
inline |
Member Function Documentation
◆ generate_r1cs_constraints()
template<typename CurveType >
|
inline |
◆ generate_r1cs_witness()
template<typename CurveType >
|
inline |
Member Data Documentation
◆ bp
|
protectedinherited |
◆ compute_gamma
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_mul_component_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::compute_gamma |
◆ compute_gamma_X
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_mul_component_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::compute_gamma_X |
◆ compute_next_RX
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_sqr_component_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::compute_next_RX |
◆ compute_next_RY
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_mul_component_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::compute_next_RY |
◆ compute_RXsquared
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_sqr_component_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::compute_RXsquared |
◆ cur
template<typename CurveType >
precompute_G2_component_coeffs<CurveType> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::cur |
◆ next
template<typename CurveType >
precompute_G2_component_coeffs<CurveType> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::next |
◆ next_RX_plus_two_RX
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::next_RX_plus_two_RX |
◆ RX_minus_next_RX
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::RX_minus_next_RX |
◆ RXsquared
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::RXsquared |
◆ RY_plus_next_RY
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::RY_plus_next_RY |
◆ three_RXsquared_plus_a
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::three_RXsquared_plus_a |
◆ two_RY
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_doubling_step< CurveType >::two_RY |
The documentation for this class was generated from the following file: