precomputation.hpp
Go to the documentation of this file.
244 class precompute_G2_component_doubling_step : public component<typename CurveType::scalar_field_type> {
296 RY_plus_next_RY.reset(new typename component_policy::Fqe_variable_type(*(cur.RY) + *(next.RY)));
358 class precompute_G2_component_addition_step : public component<typename CurveType::scalar_field_type> {
407 RY_plus_next_RY.reset(new typename component_policy::Fqe_variable_type(*(cur.RY) + *(next.RY)));
Definition: blueprint_linear_combination.hpp:47
void assign(blueprint< field_type > &bp, const snark::linear_combination< field_type > &lc)
Definition: blueprint_linear_combination.hpp:65
Definition: blueprint.hpp:46
Definition: component.hpp:37
Definition: blueprint/include/nil/crypto3/zk/components/algebra/pairing/detail/mnt4.hpp:46
Definition: blueprint/include/nil/crypto3/zk/components/algebra/curves/edwards/element_g1.hpp:51
underlying_element_type Y
Definition: blueprint/include/nil/crypto3/zk/components/algebra/curves/edwards/element_g1.hpp:57
Definition: blueprint/include/nil/crypto3/zk/components/algebra/curves/weierstrass/element_g2.hpp:55
std::shared_ptr< typename component_policy::Fqe_variable_type > Y
Definition: blueprint/include/nil/crypto3/zk/components/algebra/curves/weierstrass/element_g2.hpp:68
std::shared_ptr< typename component_policy::Fqe_variable_type > X
Definition: blueprint/include/nil/crypto3/zk/components/algebra/curves/weierstrass/element_g2.hpp:67
Definition: precomputation.hpp:59
std::shared_ptr< typename component_policy::Fqe_variable_type > PY_twist_squared
Definition: precomputation.hpp:65
g1_precomputation(blueprint< FieldType > &bp, const typename CurveType::pairing::pair_curve_type::template g1_type<>::value_type &P_val)
Definition: precomputation.hpp:71
std::shared_ptr< element_g1< CurveType > > P
Definition: precomputation.hpp:64
g1_precomputation()
Definition: precomputation.hpp:67
Definition: precomputation.hpp:189
std::shared_ptr< element_g2< CurveType > > Q
Definition: precomputation.hpp:195
CurveType::pairing::fp_type FieldType
Definition: precomputation.hpp:193
g2_precomputation()
Definition: precomputation.hpp:199
g2_precomputation(blueprint< FieldType > &bp, const typename CurveType::pairing::pair_curve_type::template g2_type<>::value_type &Q_val)
Definition: precomputation.hpp:201
std::vector< std::shared_ptr< precompute_G2_component_coeffs< CurveType > > > coeffs
Definition: precomputation.hpp:197
Definition: precomputation.hpp:87
typename CurveType::pairing::pair_curve_type::pairing::fqk_type fqk_type
Definition: precomputation.hpp:92
void generate_r1cs_witness()
Definition: precomputation.hpp:143
precompute_G1_component(blueprint< FieldType > &bp, const element_g1< CurveType > &P, g1_precomputation< CurveType > &precomp, const typename std::enable_if< fqk_type::arity==6, typename FieldType::value_type >::type &=typename FieldType::value_type())
Definition: precomputation.hpp:118
g1_precomputation< CurveType > & precomp
Definition: precomputation.hpp:94
void generate_r1cs_constraints()
Definition: precomputation.hpp:139
precompute_G1_component(blueprint< FieldType > &bp, const element_g1< CurveType > &P, g1_precomputation< CurveType > &precomp, const typename std::enable_if< fqk_type::arity==4, typename FieldType::value_type >::type &=typename FieldType::value_type())
Definition: precomputation.hpp:98
Definition: precomputation.hpp:358
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)
Definition: precomputation.hpp:382
bool invert_Q
Definition: precomputation.hpp:365
std::shared_ptr< typename component_policy::Fqe_variable_type > RY_minus_QY
Definition: precomputation.hpp:370
std::shared_ptr< typename component_policy::Fqe_variable_type > RX_minus_next_RX
Definition: precomputation.hpp:378
precompute_G2_component_coeffs< CurveType > cur
Definition: precomputation.hpp:366
CurveType::pairing::fp_type FieldType
Definition: precomputation.hpp:362
std::shared_ptr< typename component_policy::Fqe_mul_component_type > compute_gamma_X
Definition: precomputation.hpp:373
void generate_r1cs_witness()
Definition: precomputation.hpp:419
std::shared_ptr< typename component_policy::Fqe_variable_type > RX_minus_QX
Definition: precomputation.hpp:371
std::shared_ptr< typename component_policy::Fqe_mul_component_type > compute_gamma
Definition: precomputation.hpp:372
precompute_G2_component_coeffs< CurveType > next
Definition: precomputation.hpp:367
element_g2< CurveType > Q
Definition: precomputation.hpp:368
std::shared_ptr< typename component_policy::Fqe_variable_type > RY_plus_next_RY
Definition: precomputation.hpp:379
std::shared_ptr< typename component_policy::Fqe_variable_type > next_RX_plus_RX_plus_QX
Definition: precomputation.hpp:375
void generate_r1cs_constraints()
Definition: precomputation.hpp:412
std::shared_ptr< typename component_policy::Fqe_sqr_component_type > compute_next_RX
Definition: precomputation.hpp:376
typename CurveType::pairing::pair_curve_type::pairing::fqe_type fqe_type
Definition: precomputation.hpp:363
std::shared_ptr< typename component_policy::Fqe_mul_component_type > compute_next_RY
Definition: precomputation.hpp:380
Definition: precomputation.hpp:155
std::shared_ptr< typename component_policy::Fqe_variable_type > gamma_X
Definition: precomputation.hpp:164
std::shared_ptr< typename component_policy::Fqe_variable_type > RX
Definition: precomputation.hpp:161
std::shared_ptr< typename component_policy::Fqe_variable_type > RY
Definition: precomputation.hpp:162
precompute_G2_component_coeffs(blueprint< FieldType > &bp)
Definition: precomputation.hpp:170
precompute_G2_component_coeffs()
Definition: precomputation.hpp:166
precompute_G2_component_coeffs(blueprint< FieldType > &bp, const element_g2< CurveType > &Q)
Definition: precomputation.hpp:177
CurveType::pairing::fp_type FieldType
Definition: precomputation.hpp:159
std::shared_ptr< typename component_policy::Fqe_variable_type > gamma
Definition: precomputation.hpp:163
Definition: precomputation.hpp:244
std::shared_ptr< typename component_policy::Fqe_variable_type > RY_plus_next_RY
Definition: precomputation.hpp:265
std::shared_ptr< typename component_policy::Fqe_variable_type > RX_minus_next_RX
Definition: precomputation.hpp:264
typename CurveType::pairing::pair_curve_type::pairing::fqe_type fqe_type
Definition: precomputation.hpp:249
std::shared_ptr< typename component_policy::Fqe_mul_component_type > compute_gamma_X
Definition: precomputation.hpp:259
void generate_r1cs_constraints()
Definition: precomputation.hpp:301
std::shared_ptr< typename component_policy::Fqe_sqr_component_type > compute_next_RX
Definition: precomputation.hpp:262
void generate_r1cs_witness()
Definition: precomputation.hpp:309
std::shared_ptr< typename component_policy::Fqe_mul_component_type > compute_gamma
Definition: precomputation.hpp:258
std::shared_ptr< typename component_policy::Fqe_variable_type > two_RY
Definition: precomputation.hpp:257
precompute_G2_component_doubling_step(blueprint< FieldType > &bp, const precompute_G2_component_coeffs< CurveType > &cur, const precompute_G2_component_coeffs< CurveType > &next)
Definition: precomputation.hpp:268
std::shared_ptr< typename component_policy::Fqe_variable_type > next_RX_plus_two_RX
Definition: precomputation.hpp:261
precompute_G2_component_coeffs< CurveType > cur
Definition: precomputation.hpp:251
std::shared_ptr< typename component_policy::Fqe_mul_component_type > compute_next_RY
Definition: precomputation.hpp:266
std::shared_ptr< typename component_policy::Fqe_variable_type > three_RXsquared_plus_a
Definition: precomputation.hpp:256
precompute_G2_component_coeffs< CurveType > next
Definition: precomputation.hpp:252
std::shared_ptr< typename component_policy::Fqe_sqr_component_type > compute_RXsquared
Definition: precomputation.hpp:255
std::shared_ptr< typename component_policy::Fqe_variable_type > RXsquared
Definition: precomputation.hpp:254
CurveType::pairing::fp_type FieldType
Definition: precomputation.hpp:248
Definition: precomputation.hpp:453
precompute_G2_component(blueprint< FieldType > &bp, const element_g2< CurveType > &Q, g2_precomputation< CurveType > &precomp)
Definition: precomputation.hpp:467
std::size_t dbl_count
Definition: precomputation.hpp:463
void generate_r1cs_constraints()
Definition: precomputation.hpp:533
void generate_r1cs_witness()
Definition: precomputation.hpp:543
std::size_t add_count
Definition: precomputation.hpp:462
std::vector< std::shared_ptr< precompute_G2_component_doubling_step< CurveType > > > doubling_steps
Definition: precomputation.hpp:460
CurveType::pairing::fp_type FieldType
Definition: precomputation.hpp:457
g2_precomputation< CurveType > & precomp
Definition: precomputation.hpp:465
std::vector< std::shared_ptr< precompute_G2_component_addition_step< CurveType > > > addition_steps
Definition: precomputation.hpp:459
Definition: pairing/alt_bn128.hpp:42
Definition: pair.hpp:31
A struct representing a mnt4 curve.
Definition: algebra/include/nil/crypto3/algebra/curves/mnt4.hpp:46
A struct representing a mnt6 curve.
Definition: algebra/include/nil/crypto3/algebra/curves/mnt6.hpp:46