Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
Go to the documentation of this file.
9 #ifndef LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_BLS12_377_BLS12_377_PRECOMPUTATION_HPP_
10 #define LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_BLS12_377_BLS12_377_PRECOMPUTATION_HPP_
20 std::shared_ptr<pb_linear_combination<FieldT>>
_Px;
21 std::shared_ptr<pb_linear_combination<FieldT>>
_Py;
33 const std::string &annotation_prefix);
46 protoboard<libff::Fr<ppT>> &pb,
const std::string &annotation_prefix);
61 using FqT = libff::Fq<other_curve<ppT>>;
76 const std::string &annotation_prefix);
84 std::vector<std::shared_ptr<bls12_377_ate_ell_coeffs<ppT>>>
_coeffs;
93 const std::string &annotation_prefix);
96 template<
typename ppT>
102 std::shared_ptr<pb_linear_combination<FieldT>>
_Px;
103 std::shared_ptr<pb_linear_combination<FieldT>>
_Py;
119 template<
typename ppT>
123 typedef libff::Fq<other_curve<ppT>>
FqT;
124 typedef libff::Fqe<other_curve<ppT>>
FqeT;
187 template<
typename ppT>
191 typedef libff::Fq<other_curve<ppT>>
FqT;
192 typedef libff::Fqe<other_curve<ppT>>
FqeT;
260 template<
typename ppT>
264 using FqeT = libff::Fqe<other_curve<ppT>>;
267 std::vector<std::shared_ptr<bls12_377_ate_dbl_gadget<ppT>>>
_ate_dbls;
268 std::vector<std::shared_ptr<bls12_377_ate_add_gadget<ppT>>>
_ate_adds;
284 #endif // LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_BLS12_377_BLS12_377_PAIRING_HPP_
bls12_377_G2_proj< ppT > _R0
libff::Fq< other_curve< ppT > > FqT
const std::string annotation_prefix
Gadget that represents a G2 variable.
bls12_377_ate_add_gadget(protoboard< libff::Fr< ppT >> &pb, const Fqe_variable< ppT > &Q_X, const Fqe_variable< ppT > &Q_Y, const bls12_377_G2_proj< ppT > &R, const bls12_377_G2_proj< ppT > &out_R, const bls12_377_ate_ell_coeffs< ppT > &coeffs, const std::string &annotation_prefix)
Fqe_mul_gadget< ppT > _compute_G
Fqe_sqr_gadget< ppT > _compute_C
std::shared_ptr< pb_linear_combination< FieldT > > _Px
Fqe_mul_gadget< ppT > _check_out_Rz
bls12_377_G2_proj(protoboard< libff::Fr< ppT >> &pb, const std::string &annotation_prefix)
libff::Fq< other_curve< ppT > > FqT
void generate_r1cs_witness()
Fqe_mul_gadget< ppT > _compute_theta_times_Qx
bls12_377_ate_ell_coeffs< ppT > _out_coeffs
Fqe_sqr_gadget< ppT > _compute_B
std::shared_ptr< pb_linear_combination< FieldT > > _Px
libff::Fqe< other_curve< ppT > > FqeT
libff::Fqe< other_curve< ppT > > FqeT
void generate_r1cs_constraints()
protoboard< libff::Fr< ppT > > & pb
Fqe_sqr_gadget< ppT > _compute_D
Fqe_sqr_gadget< ppT > _compute_C
Fqe_mul_gadget< ppT > _compute_E
bls12_377_G2_proj< ppT > _in_R
std::vector< std::shared_ptr< bls12_377_ate_add_gadget< ppT > > > _ate_adds
Fqe_mul_gadget< ppT > _check_out_Rz
bls12_377_ate_dbl_gadget(protoboard< FqT > &pb, const bls12_377_G2_proj< ppT > &R, const bls12_377_G2_proj< ppT > &out_R, const bls12_377_ate_ell_coeffs< ppT > &coeffs, const std::string &annotation_prefix)
libff::Fqe< other_curve< ppT > > FqeT
Fqe_sqr_gadget< ppT > _compute_Y_plus_Z_squared
std::vector< std::shared_ptr< bls12_377_ate_ell_coeffs< ppT > > > _coeffs
Fqe_mul_gadget< ppT > _compute_A
typename pairing_selector< ppT >::Fqe_sqr_gadget_type Fqe_sqr_gadget
std::shared_ptr< pb_linear_combination< FieldT > > _Py
void generate_r1cs_constraints()
bls12_377_G2_proj< ppT > _in_R
Fqe_mul_gadget< ppT > _compute_F
Fqe_variable< ppT > ell_vv
bls12_377_ate_ell_coeffs(protoboard< FqT > &pb, const std::string &annotation_prefix)
void generate_r1cs_witness()
Fqe_sqr_gadget< ppT > _compute_E_squared
void generate_r1cs_constraints()
typename pairing_selector< ppT >::Fqe_mul_gadget_type Fqe_mul_gadget
Fqe_mul_gadget< ppT > _check_out_Ry
void generate_r1cs_witness()
Fqe_mul_gadget< ppT > _compute_lambda_times_Qy
Fqe_mul_gadget< ppT > _check_out_Rx
Fqe_sqr_gadget< ppT > _compute_J
bls12_377_G2_proj< ppT > _out_R
Gadget that represents a G1 variable.
void generate_r1cs_witness()
bls12_377_G2_precompute_gadget(protoboard< libff::Fr< ppT >> &pb, const G2_variable< ppT > &Q, bls12_377_G2_precomputation< ppT > &Q_prec, const std::string &annotation_prefix)
Fqe_mul_gadget< ppT > _check_out_Rx
typename pairing_selector< ppT >::Fqe_variable_type Fqe_variable
bls12_377_G1_precompute_gadget(protoboard< libff::Fr< ppT >> &pb, const G1_variable< ppT > &P, bls12_377_G1_precomputation< ppT > &P_prec, const std::string &annotation_prefix)
void generate_r1cs_constraints()
Fqe_sqr_gadget< ppT > _compute_G_squared
bls12_377_G2_precomputation()
typename pairing_selector< ppT >::other_curve_type other_curve
libff::Fq< other_curve< ppT > > FqT
bls12_377_G1_precomputation()
Fqe_mul_gadget< ppT > _compute_B
std::shared_ptr< pb_linear_combination< FieldT > > _Py
bls12_377_ate_ell_coeffs< ppT > _out_coeffs
Fqe_variable< ppT > ell_vw
bls12_377_G2_proj< ppT > _out_R
Fqe_mul_gadget< ppT > _compute_I
std::vector< std::shared_ptr< bls12_377_ate_dbl_gadget< ppT > > > _ate_dbls
void generate_r1cs_witness(const libff::bls12_377_G2 &element)
Fqe_mul_gadget< ppT > _compute_A
Fqe_variable< ppT > ell_0