nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType > Class Template Reference
#include <miller_loop.hpp>
Inheritance diagram for nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >:
Collaboration diagram for nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >:
Public Member Functions | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness () |
mnt_miller_loop_add_line_eval (blueprint< field_type > &bp, const bool invert_Q, const g1_precomputation< CurveType > &prec_P, const precompute_G2_component_coeffs< CurveType > &c, const element_g2< CurveType > &Q, std::shared_ptr< typename component_policy::Fqk_variable_type > &g_RQ_at_P) | |
Public Attributes | |
precompute_G2_component_coeffs< CurveType > | c |
std::shared_ptr< typename component_policy::Fqe_mul_by_lc_component_type > | compute_g_RQ_at_P_c1 |
std::shared_ptr< typename component_policy::Fqk_variable_type > & | g_RQ_at_P |
std::shared_ptr< typename component_policy::Fqe_variable_type > | g_RQ_at_P_c1 |
std::shared_ptr< typename component_policy::Fqe_variable_type > | gamma_twist |
bool | invert_Q |
g1_precomputation< CurveType > | prec_P |
element_g2< CurveType > | Q |
Protected Attributes | |
blueprint< CurveType::scalar_field_type > & | bp |
Detailed Description
template<typename CurveType>
class nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >
Component for addition step in the Miller loop.
Technical note:
mnt_Fqk g_RQ_at_P = mnt_Fqk(prec_P.PY_twist_squared, -prec_P.PX * c.gamma_twist + c.gamma_X - prec_Q.QY);
(later in Miller loop: f = f * g_RQ_at_P)
Note the slight interface change: this component will allocate g_RQ_at_P inside itself (!)
Constructor & Destructor Documentation
◆ mnt_miller_loop_add_line_eval()
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 |
◆ c
template<typename CurveType >
precompute_G2_component_coeffs<CurveType> nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::c |
◆ compute_g_RQ_at_P_c1
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_mul_by_lc_component_type> nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::compute_g_RQ_at_P_c1 |
◆ g_RQ_at_P
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqk_variable_type>& nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::g_RQ_at_P |
◆ g_RQ_at_P_c1
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::g_RQ_at_P_c1 |
◆ gamma_twist
template<typename CurveType >
std::shared_ptr<typename component_policy::Fqe_variable_type> nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::gamma_twist |
◆ invert_Q
template<typename CurveType >
bool nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::invert_Q |
◆ prec_P
template<typename CurveType >
g1_precomputation<CurveType> nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::prec_P |
◆ Q
template<typename CurveType >
element_g2<CurveType> nil::crypto3::zk::components::mnt_miller_loop_add_line_eval< CurveType >::Q |
The documentation for this class was generated from the following file: