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_FINAL_EXPONENTIATION_HPP_
10 #define LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_BLS12_377_BLS12_377_FINAL_EXPONENTIATION_HPP_
18 #include <libff/algebra/curves/bls12_377/bls12_377_pp.hpp>
23 template<
typename ppT>
28 using FqkT = libff::Fqk<other_curve<ppT>>;
58 template<
typename ppT>
63 using FqkT = libff::Fqk<other_curve<ppT>>;
69 std::vector<std::shared_ptr<cyclotomic_square>>
_squares;
84 void initialize_z_neg(
88 void initialize_z_pos(
94 template<
typename ppT>
99 using FqkT = libff::Fqk<other_curve<ppT>>;
149 template<
typename ppT>
154 using FqkT = libff::Fqk<other_curve<ppT>>;
173 #endif // LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_BLS12_377_BLS12_377_FINAL_EXPONENTIATION_HPP_
libff::Fqk< other_curve< ppT > > FqkT
Fp12_2over3over2_variable< FqkT > _result
std::shared_ptr< unitary_inverse > _inverse
const std::string annotation_prefix
void generate_r1cs_witness()
void generate_r1cs_constraints()
pb_variable< FieldT > _result_is_one
libff::Fqk< other_curve< ppT > > FqkT
protoboard< libff::Fr< ppT > > & pb
Fp12_2over3over2_mul_gadget< FqkT > _compute_H
Fp12_2over3over2_mul_gadget< FqkT > _compute_R
Fp12_2over3over2_square_gadget< FqkT > _compute_C
Fp12_2over3over2_mul_gadget< FqkT > _compute_C
bls12_377_final_exp_gadget(protoboard< libff::Fr< ppT >> &pb, const Fp12_2over3over2_variable< FqkT > &el, const pb_variable< FieldT > &result_is_one, const std::string &annotation_prefix)
bls12_377_exp_by_z_gadget< ppT > _compute_I
bls12_377_exp_by_z_gadget(protoboard< FieldT > &pb, const Fp12_2over3over2_variable< FqkT > &in, const Fp12_2over3over2_variable< FqkT > &result, const std::string &annotation_prefix)
Fp12_2over3over2_cyclotomic_square_gadget< FqkT > _compute_in_squared
std::vector< std::shared_ptr< multiply > > _multiplies
Fp12_2over3over2_mul_gadget< FqkT > _compute_P
Fp12_2over3over2_mul_gadget< FqkT > _compute_U
bls12_377_final_exp_last_part_gadget< ppT > _compute_last_part
Fp12_2over3over2_inv_gadget< FqkT > _compute_B
void generate_r1cs_witness()
Fp12_2over3over2_mul_gadget< FqkT > _compute_K
const Fp12_2over3over2_variable< FqkT > & result() const
void generate_r1cs_constraints()
Fp12_2over3over2_mul_gadget< FqkT > _compute_D_times_C
Fp12_2over3over2_mul_gadget< FqkT > _compute_T
Fp12_2over3over2_mul_gadget< FqkT > _compute_U_times_L
libff::Fqk< other_curve< ppT > > FqkT
bls12_377_final_exp_first_part_gadget< ppT > _compute_first_part
bls12_377_final_exp_last_part_gadget(protoboard< FieldT > &pb, const Fp12_2over3over2_variable< FqkT > &in, const Fp12_2over3over2_variable< FqkT > &result, const std::string &annotation_prefix)
libff::Fqk< other_curve< ppT > > FqkT
Fp12_2over3over2_mul_gadget< FqkT > _compute_N
Fp12_2over3over2_variable< FqkT > _result
bls12_377_exp_by_z_gadget< ppT > _compute_E
Fp12_2over3over2_variable< FqkT > _result
void generate_r1cs_constraints()
bls12_377_exp_by_z_gadget< ppT > _compute_F
bls12_377_final_exp_first_part_gadget(protoboard< FieldT > &pb, const Fp12_2over3over2_variable< FqkT > &in, const Fp12_2over3over2_variable< FqkT > &result, const std::string &annotation_prefix)
const Fp12_2over3over2_variable< FqkT > & result() const
std::vector< std::shared_ptr< cyclotomic_square > > _squares
void generate_r1cs_constraints()
Fp12_2over3over2_mul_gadget< FqkT > _compute_L
void generate_r1cs_witness()
void generate_r1cs_witness()
bls12_377_exp_by_z_gadget< ppT > _compute_B
Fp12_2over3over2_mul_gadget< FqkT > _compute_D
const Fp12_2over3over2_variable< FqkT > & result() const
bls12_377_exp_by_z_gadget< ppT > _compute_G