Public Types |
Public Member Functions |
Public Attributes |
Protected Attributes |
List of all members
nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType > Class Template Reference
#include <precomputation.hpp>
Inheritance diagram for nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >:
Collaboration diagram for nil::crypto3::zk::components::precompute_G2_component_addition_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_addition_step (blueprint< FieldType > &bp, const bool invert_Q, const precompute_G2_component_coeffs< CurveType > &cur, const precompute_G2_component_coeffs< CurveType > &next, const element_g2< CurveType > &Q) | |
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 |
precompute_G2_component_coeffs< CurveType > | cur |
bool | invert_Q |
precompute_G2_component_coeffs< CurveType > | next |
std::shared_ptr< typename component_policy::Fqe_variable_type > | next_RX_plus_RX_plus_QX |
element_g2< CurveType > | Q |
std::shared_ptr< typename component_policy::Fqe_variable_type > | RX_minus_next_RX |
std::shared_ptr< typename component_policy::Fqe_variable_type > | RX_minus_QX |
std::shared_ptr< typename component_policy::Fqe_variable_type > | RY_minus_QY |
std::shared_ptr< typename component_policy::Fqe_variable_type > | RY_plus_next_RY |
Protected Attributes | |
blueprint< CurveType::scalar_field_type > & | bp |
Detailed Description
template<typename CurveType>
class nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >
Technical note:
g2_precompute_addition_step relates coeffs[i] and coeffs[i+1] as follows
coeffs[i] gamma = (RY - QY) * (RX - QX).inversed() gamma_X = gamma * QX
coeffs[i+1] RX = prev_gamma^2 + (prev_RX + QX) RY = prev_gamma * (prev_RX - RX) - prev_RY
(where prev_ in [i+1] refer to things from [i])
If invert_Q is set to true: use -QY in place of QY everywhere above.
Member Typedef Documentation
◆ FieldType
template<typename CurveType >
typedef CurveType::pairing::fp_type nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::FieldType |
◆ fqe_type
template<typename CurveType >
using nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::fqe_type = typename CurveType::pairing::pair_curve_type::pairing::fqe_type |
Constructor & Destructor Documentation
◆ precompute_G2_component_addition_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_addition_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_addition_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_addition_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_addition_step< CurveType >::compute_next_RY |
◆ cur
template<typename CurveType >
precompute_G2_component_coeffs<CurveType> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::cur |
◆ invert_Q
template<typename CurveType >
bool nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::invert_Q |
◆ next
template<typename CurveType >
precompute_G2_component_coeffs<CurveType> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::next |
◆ next_RX_plus_RX_plus_QX
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::next_RX_plus_RX_plus_QX |
◆ Q
template<typename CurveType >
element_g2<CurveType> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::Q |
◆ RX_minus_next_RX
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::RX_minus_next_RX |
◆ RX_minus_QX
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::RX_minus_QX |
◆ RY_minus_QY
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::RY_minus_QY |
◆ RY_plus_next_RY
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::precompute_G2_component_addition_step< CurveType >::RY_plus_next_RY |
The documentation for this class was generated from the following file: