Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
Gadget for verifying a triple Miller loop (where the third is inverted). More...
#include <mnt_miller_loop.hpp>
Public Types | |
typedef libff::Fr< ppT > | FieldT |
typedef libff::Fqe< other_curve< ppT > > | FqeT |
typedef libff::Fqk< other_curve< ppT > > | FqkT |
typedef mnt_pairing_params< ppT >::Fqk_special_mul_gadget_type | Fqk_special_mul_gadget |
Public Member Functions | |
mnt_e_times_e_over_e_miller_loop_gadget (protoboard< FieldT > &pb, const mnt_G1_precomputation< ppT > &prec_P1, const mnt_G2_precomputation< ppT > &prec_Q1, const mnt_G1_precomputation< ppT > &prec_P2, const mnt_G2_precomputation< ppT > &prec_Q2, const mnt_G1_precomputation< ppT > &prec_P3, const mnt_G2_precomputation< ppT > &prec_Q3, const Fqk_variable< ppT > &result, const std::string &annotation_prefix) | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness () |
![]() | |
gadget (protoboard< libff::Fr< ppT > > &pb, const std::string &annotation_prefix) | |
Public Attributes | |
std::vector< std::shared_ptr< Fqk_variable< ppT > > > | g_RR_at_P1s |
std::vector< std::shared_ptr< Fqk_variable< ppT > > > | g_RQ_at_P1s |
std::vector< std::shared_ptr< Fqk_variable< ppT > > > | g_RR_at_P2s |
std::vector< std::shared_ptr< Fqk_variable< ppT > > > | g_RQ_at_P2s |
std::vector< std::shared_ptr< Fqk_variable< ppT > > > | g_RR_at_P3s |
std::vector< std::shared_ptr< Fqk_variable< ppT > > > | g_RQ_at_P3s |
std::vector< std::shared_ptr< Fqk_variable< ppT > > > | fs |
std::vector< std::shared_ptr< mnt_miller_loop_add_line_eval< ppT > > > | addition_steps1 |
std::vector< std::shared_ptr< mnt_miller_loop_dbl_line_eval< ppT > > > | doubling_steps1 |
std::vector< std::shared_ptr< mnt_miller_loop_add_line_eval< ppT > > > | addition_steps2 |
std::vector< std::shared_ptr< mnt_miller_loop_dbl_line_eval< ppT > > > | doubling_steps2 |
std::vector< std::shared_ptr< mnt_miller_loop_add_line_eval< ppT > > > | addition_steps3 |
std::vector< std::shared_ptr< mnt_miller_loop_dbl_line_eval< ppT > > > | doubling_steps3 |
std::vector< std::shared_ptr< Fqk_sqr_gadget< ppT > > > | dbl_sqrs |
std::vector< std::shared_ptr< Fqk_special_mul_gadget > > | dbl_muls1 |
std::vector< std::shared_ptr< Fqk_special_mul_gadget > > | add_muls1 |
std::vector< std::shared_ptr< Fqk_special_mul_gadget > > | dbl_muls2 |
std::vector< std::shared_ptr< Fqk_special_mul_gadget > > | add_muls2 |
std::vector< std::shared_ptr< Fqk_special_mul_gadget > > | dbl_muls3 |
std::vector< std::shared_ptr< Fqk_special_mul_gadget > > | add_muls3 |
size_t | f_count |
size_t | add_count |
size_t | dbl_count |
mnt_G1_precomputation< ppT > | prec_P1 |
mnt_G2_precomputation< ppT > | prec_Q1 |
mnt_G1_precomputation< ppT > | prec_P2 |
mnt_G2_precomputation< ppT > | prec_Q2 |
mnt_G1_precomputation< ppT > | prec_P3 |
mnt_G2_precomputation< ppT > | prec_Q3 |
Fqk_variable< ppT > | result |
Additional Inherited Members | |
![]() | |
protoboard< libff::Fr< ppT > > & | pb |
const std::string | annotation_prefix |
Gadget for verifying a triple Miller loop (where the third is inverted).
Definition at line 204 of file mnt_miller_loop.hpp.
typedef libff::Fr<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::FieldT |
Definition at line 207 of file mnt_miller_loop.hpp.
typedef libff::Fqe<other_curve<ppT> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::FqeT |
Definition at line 208 of file mnt_miller_loop.hpp.
typedef mnt_pairing_params<ppT>::Fqk_special_mul_gadget_type libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::Fqk_special_mul_gadget |
Definition at line 211 of file mnt_miller_loop.hpp.
typedef libff::Fqk<other_curve<ppT> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::FqkT |
Definition at line 209 of file mnt_miller_loop.hpp.
libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::mnt_e_times_e_over_e_miller_loop_gadget | ( | protoboard< FieldT > & | pb, |
const mnt_G1_precomputation< ppT > & | prec_P1, | ||
const mnt_G2_precomputation< ppT > & | prec_Q1, | ||
const mnt_G1_precomputation< ppT > & | prec_P2, | ||
const mnt_G2_precomputation< ppT > & | prec_Q2, | ||
const mnt_G1_precomputation< ppT > & | prec_P3, | ||
const mnt_G2_precomputation< ppT > & | prec_Q3, | ||
const Fqk_variable< ppT > & | result, | ||
const std::string & | annotation_prefix | ||
) |
void libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::generate_r1cs_constraints | ( | ) |
void libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::generate_r1cs_witness | ( | ) |
size_t libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::add_count |
Definition at line 243 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_special_mul_gadget> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::add_muls1 |
Definition at line 236 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_special_mul_gadget> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::add_muls2 |
Definition at line 238 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_special_mul_gadget> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::add_muls3 |
Definition at line 240 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<mnt_miller_loop_add_line_eval<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::addition_steps1 |
Definition at line 222 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<mnt_miller_loop_add_line_eval<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::addition_steps2 |
Definition at line 226 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<mnt_miller_loop_add_line_eval<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::addition_steps3 |
Definition at line 230 of file mnt_miller_loop.hpp.
size_t libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::dbl_count |
Definition at line 244 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_special_mul_gadget> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::dbl_muls1 |
Definition at line 235 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_special_mul_gadget> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::dbl_muls2 |
Definition at line 237 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_special_mul_gadget> > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::dbl_muls3 |
Definition at line 239 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_sqr_gadget<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::dbl_sqrs |
Definition at line 234 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<mnt_miller_loop_dbl_line_eval<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::doubling_steps1 |
Definition at line 224 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<mnt_miller_loop_dbl_line_eval<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::doubling_steps2 |
Definition at line 228 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<mnt_miller_loop_dbl_line_eval<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::doubling_steps3 |
Definition at line 232 of file mnt_miller_loop.hpp.
size_t libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::f_count |
Definition at line 242 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_variable<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::fs |
Definition at line 219 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_variable<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::g_RQ_at_P1s |
Definition at line 214 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_variable<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::g_RQ_at_P2s |
Definition at line 216 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_variable<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::g_RQ_at_P3s |
Definition at line 218 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_variable<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::g_RR_at_P1s |
Definition at line 213 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_variable<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::g_RR_at_P2s |
Definition at line 215 of file mnt_miller_loop.hpp.
std::vector<std::shared_ptr<Fqk_variable<ppT> > > libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::g_RR_at_P3s |
Definition at line 217 of file mnt_miller_loop.hpp.
mnt_G1_precomputation<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::prec_P1 |
Definition at line 246 of file mnt_miller_loop.hpp.
mnt_G1_precomputation<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::prec_P2 |
Definition at line 248 of file mnt_miller_loop.hpp.
mnt_G1_precomputation<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::prec_P3 |
Definition at line 250 of file mnt_miller_loop.hpp.
mnt_G2_precomputation<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::prec_Q1 |
Definition at line 247 of file mnt_miller_loop.hpp.
mnt_G2_precomputation<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::prec_Q2 |
Definition at line 249 of file mnt_miller_loop.hpp.
mnt_G2_precomputation<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::prec_Q3 |
Definition at line 251 of file mnt_miller_loop.hpp.
Fqk_variable<ppT> libsnark::mnt_e_times_e_over_e_miller_loop_gadget< ppT >::result |
Definition at line 252 of file mnt_miller_loop.hpp.