Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#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 |
Public Member Functions | |
mnt_miller_loop_add_line_eval (protoboard< FieldT > &pb, const bool invert_Q, const mnt_G1_precomputation< ppT > &prec_P, const mnt_precompute_G2_gadget_coeffs< ppT > &c, const G2_variable< ppT > &Q, std::shared_ptr< Fqk_variable< ppT >> &g_RQ_at_P, 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 | |
bool | invert_Q |
mnt_G1_precomputation< ppT > | prec_P |
mnt_precompute_G2_gadget_coeffs< ppT > | c |
G2_variable< ppT > | Q |
std::shared_ptr< Fqk_variable< ppT > > & | g_RQ_at_P |
std::shared_ptr< Fqe_variable< ppT > > | gamma_twist |
std::shared_ptr< Fqe_variable< ppT > > | g_RQ_at_P_c1 |
std::shared_ptr< Fqe_mul_by_lc_gadget< ppT > > | compute_g_RQ_at_P_c1 |
Additional Inherited Members | |
![]() | |
protoboard< libff::Fr< ppT > > & | pb |
const std::string | annotation_prefix |
Gadget for addition step in the Miller loop.
Technical note:
mnt_Fqk g_RQ_at_P = mnt_Fqk(prec_P.PY_twist_squared, -prec_P.PX * c.gamma_twist + c.gamma_X - prec_Q.QY);
(later in Miller loop: f = f * g_RQ_at_P)
Note the slight interface change: this gadget will allocate g_RQ_at_P inside itself (!)
Definition at line 77 of file mnt_miller_loop.hpp.
typedef libff::Fr<ppT> libsnark::mnt_miller_loop_add_line_eval< ppT >::FieldT |
Definition at line 80 of file mnt_miller_loop.hpp.
typedef libff::Fqe<other_curve<ppT> > libsnark::mnt_miller_loop_add_line_eval< ppT >::FqeT |
Definition at line 81 of file mnt_miller_loop.hpp.
typedef libff::Fqk<other_curve<ppT> > libsnark::mnt_miller_loop_add_line_eval< ppT >::FqkT |
Definition at line 82 of file mnt_miller_loop.hpp.
libsnark::mnt_miller_loop_add_line_eval< ppT >::mnt_miller_loop_add_line_eval | ( | protoboard< FieldT > & | pb, |
const bool | invert_Q, | ||
const mnt_G1_precomputation< ppT > & | prec_P, | ||
const mnt_precompute_G2_gadget_coeffs< ppT > & | c, | ||
const G2_variable< ppT > & | Q, | ||
std::shared_ptr< Fqk_variable< ppT >> & | g_RQ_at_P, | ||
const std::string & | annotation_prefix | ||
) |
void libsnark::mnt_miller_loop_add_line_eval< ppT >::generate_r1cs_constraints | ( | ) |
void libsnark::mnt_miller_loop_add_line_eval< ppT >::generate_r1cs_witness | ( | ) |
mnt_precompute_G2_gadget_coeffs<ppT> libsnark::mnt_miller_loop_add_line_eval< ppT >::c |
Definition at line 86 of file mnt_miller_loop.hpp.
std::shared_ptr<Fqe_mul_by_lc_gadget<ppT> > libsnark::mnt_miller_loop_add_line_eval< ppT >::compute_g_RQ_at_P_c1 |
Definition at line 92 of file mnt_miller_loop.hpp.
std::shared_ptr<Fqk_variable<ppT> >& libsnark::mnt_miller_loop_add_line_eval< ppT >::g_RQ_at_P |
Definition at line 88 of file mnt_miller_loop.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_miller_loop_add_line_eval< ppT >::g_RQ_at_P_c1 |
Definition at line 91 of file mnt_miller_loop.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_miller_loop_add_line_eval< ppT >::gamma_twist |
Definition at line 90 of file mnt_miller_loop.hpp.
bool libsnark::mnt_miller_loop_add_line_eval< ppT >::invert_Q |
Definition at line 84 of file mnt_miller_loop.hpp.
mnt_G1_precomputation<ppT> libsnark::mnt_miller_loop_add_line_eval< ppT >::prec_P |
Definition at line 85 of file mnt_miller_loop.hpp.
G2_variable<ppT> libsnark::mnt_miller_loop_add_line_eval< ppT >::Q |
Definition at line 87 of file mnt_miller_loop.hpp.