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_MILLER_LOOP_HPP_
10 #define LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_BLS12_377_BLS12_377_MILLER_LOOP_HPP_
19 #include <libff/algebra/curves/bls12_377/bls12_377_pp.hpp>
30 template<
typename ppT>
35 using FqkT = libff::Fqk<other_curve<ppT>>;
55 template<
typename ppT>
60 using FqeT = libff::Fqe<other_curve<ppT>>;
61 using FqkT = libff::Fqk<other_curve<ppT>>;
62 using Fq6T =
typename FqkT::my_Fp6;
67 std::vector<std::shared_ptr<Fp12_2over3over2_square_gadget<FqkT>>>
71 std::vector<std::shared_ptr<bls12_377_ate_compute_f_ell_P<ppT>>>
_f_ell_P;
85 template<
typename ppT>
90 using FqkT = libff::Fqk<other_curve<ppT>>;
96 std::vector<std::shared_ptr<Fp12_2over3over2_square_gadget<FqkT>>>
100 std::vector<std::shared_ptr<bls12_377_ate_compute_f_ell_P<ppT>>>
_f_ell_P;
114 template<
typename ppT>
116 :
public gadget<libff::Fr<ppT>>
120 using FqkT = libff::Fqk<other_curve<ppT>>;
126 std::vector<std::shared_ptr<Fp12_2over3over2_square_gadget<FqkT>>>
130 std::vector<std::shared_ptr<bls12_377_ate_compute_f_ell_P<ppT>>>
_f_ell_P;
152 #endif // LIBSNARK_GADGETLIB1_GADGETS_PAIRING_BW6_761_BLS12_377_BLS12_377_MILLER_LOOP_HPP_
void generate_r1cs_constraints()
void generate_r1cs_constraints()
const std::string annotation_prefix
const Fp12_2over3over2_variable< FqkT > & result() const
void generate_r1cs_constraints()
Fp12_2over3over2_variable< FqkT > _f0
protoboard< libff::Fr< ppT > > & pb
libff::Fqk< other_curve< ppT > > FqkT
void generate_r1cs_constraints()
void generate_r1cs_witness()
Fp12_2over3over2_variable< FqkT > _f0
libff::Fqk< other_curve< ppT > > FqkT
bls12_377_ate_compute_f_ell_P(protoboard< FieldT > &pb, const pb_linear_combination< FieldT > &Px, const pb_linear_combination< FieldT > &Py, const bls12_377_ate_ell_coeffs< ppT > &ell_coeffs, const Fp12_2over3over2_variable< FqkT > &f, const Fp12_2over3over2_variable< FqkT > &f_out, const std::string &annotation_prefix)
std::vector< std::shared_ptr< Fp12_2over3over2_square_gadget< FqkT > > > _f_squared
Fqe_mul_by_lc_gadget< ppT > _compute_ell_vw_times_Py
void generate_r1cs_witness()
bls12_377_e_over_e_miller_loop_gadget(protoboard< libff::Fr< ppT >> &pb, const bls12_377_G1_precomputation< ppT > &P1_prec, const bls12_377_G2_precomputation< ppT > &Q1_prec, const bls12_377_G1_precomputation< ppT > &P2_prec, const bls12_377_G2_precomputation< ppT > &Q2_prec, const Fp12_2over3over2_variable< FqkT > &result, const std::string &annotation_prefix)
std::vector< std::shared_ptr< bls12_377_ate_compute_f_ell_P< ppT > > > _f_ell_P
void generate_r1cs_witness()
const Fp12_2over3over2_variable< FqkT > & result() const
std::vector< std::shared_ptr< Fp12_2over3over2_square_gadget< FqkT > > > _f_squared
libff::Fqe< other_curve< ppT > > FqeT
bls12_377_miller_loop_gadget(protoboard< FieldT > &pb, const bls12_377_G1_precomputation< ppT > &prec_P, const bls12_377_G2_precomputation< ppT > &prec_Q, const Fqk_variable< ppT > &result, const std::string &annotation_prefix)
Fqe_mul_by_lc_gadget< ppT > _compute_ell_vv_times_Px
Fp12_2over3over2_variable< FqkT > _f0
pb_linear_combination< FieldT > _minus_P4_Y
std::vector< std::shared_ptr< Fp12_2over3over2_square_gadget< FqkT > > > _f_squared
bls12_377_e_times_e_times_e_over_e_miller_loop_gadget(protoboard< libff::Fr< ppT >> &pb, const bls12_377_G1_precomputation< ppT > &P1_prec, const bls12_377_G2_precomputation< ppT > &Q1_prec, const bls12_377_G1_precomputation< ppT > &P2_prec, const bls12_377_G2_precomputation< ppT > &Q2_prec, const bls12_377_G1_precomputation< ppT > &P3_prec, const bls12_377_G2_precomputation< ppT > &Q3_prec, const bls12_377_G1_precomputation< ppT > &P4_prec, const bls12_377_G2_precomputation< ppT > &Q4_prec, const Fp12_2over3over2_variable< FqkT > &result, const std::string &annotation_prefix)
typename pairing_selector< ppT >::Fqe_mul_by_lc_gadget_type Fqe_mul_by_lc_gadget
libff::Fqk< other_curve< ppT > > FqkT
pb_linear_combination< FieldT > _minus_P2_Y
std::vector< std::shared_ptr< bls12_377_ate_compute_f_ell_P< ppT > > > _f_ell_P
typename pairing_selector< ppT >::Fqk_variable_type Fqk_variable
std::vector< std::shared_ptr< bls12_377_ate_compute_f_ell_P< ppT > > > _f_ell_P
libff::Fqk< other_curve< ppT > > FqkT
typename FqkT::my_Fp6 Fq6T
Fp12_2over3over2_mul_by_024_gadget< FqkT > _compute_f_mul_ell_P
void generate_r1cs_witness()