Clearmatics Libff
0.1
C++ library for Finite Fields and Elliptic Curves
|
Go to the documentation of this file.
10 #ifndef FP6_2OVER3_HPP_
11 #define FP6_2OVER3_HPP_
28 template<mp_
size_t n, const big
int<n> &modulus>
31 template<mp_
size_t n, const big
int<n> &modulus>
98 friend std::ostream &operator<<<n, modulus>(
100 friend std::istream &
operator>>
104 template<mp_
size_t n, const big
int<n> &modulus>
106 std::ostream &out,
const std::vector<Fp6_2over3_model<n, modulus>> &v);
108 template<mp_
size_t n, const big
int<n> &modulus>
110 std::istream &in, std::vector<Fp6_2over3_model<n, modulus>> &v);
112 template<mp_
size_t n, const big
int<n> &modulus>
114 const Fp_model<n, modulus> &lhs,
const Fp6_2over3_model<n, modulus> &rhs);
116 template<mp_
size_t n, const big
int<n> &modulus, mp_
size_t m>
118 const Fp6_2over3_model<n, modulus> &
self,
const bigint<m> &exponent);
122 const bigint<n> &modulus,
124 const bigint<m> &exp_modulus>
126 const Fp6_2over3_model<n, modulus> &
self,
127 const Fp_model<m, exp_modulus> &exponent);
129 template<mp_
size_t n, const big
int<n> &modulus>
132 template<mp_
size_t n, const big
int<n> &modulus>
139 #endif // FP6_2OVER3_HPP_
static Fp6_2over3_model< n, modulus > one()
static constexpr size_t extension_degree()
Fp6_2over3_model mul_by_045(const my_Fp &ell_0, const my_Fp &ell_VW, const my_Fp &ell_VV) const
static my_Fp3 mul_by_non_residue(const my_Fp3 &elem)
std::istream & operator>>(std::istream &in, alt_bn128_G1 &g)
bool operator!=(const Fp6_2over3_model &other) const
Fp6_2over3_model unitary_inverse() const
static Fp6_2over3_model< n, modulus > zero()
Fp6_2over3_model operator*(const Fp6_2over3_model &other) const
Fp6_2over3_model operator+(const Fp6_2over3_model &other) const
static const size_t tower_extension_degree
Fp6_2over3_model cyclotomic_squared() const
Fp_model< n, modulus > my_Fp
bn128_GT operator^(const bn128_GT &rhs, const bigint< m > &lhs)
Fp6_2over3_model Frobenius_map(unsigned long power) const
static my_Fp Frobenius_coeffs_c1[6]
non_residue^((modulus^i-1)/6) for i=0,1,2,3,4,5
Fp6_2over3_model operator-() const
Fp6_2over3_model(const my_Fp3 &c0, const my_Fp3 &c1)
Fp3_model< n, modulus > my_Fp3
Fp6_2over3_model mul_by_2345(const Fp6_2over3_model &other) const
std::ostream & operator<<(std::ostream &out, const alt_bn128_G1 &g)
bool operator==(const Fp6_2over3_model &other) const
Fp6_2over3_model cyclotomic_exp(const bigint< m > &exponent) const
alt_bn128_G1 operator*(const bigint< m > &lhs, const alt_bn128_G1 &rhs)
static Fp6_2over3_model< n, modulus > random_element()
Fp2_model< n, modulus > my_Fp2
static bigint< n > base_field_char()
FieldT power(const FieldT &base, const bigint< m > &exponent)
Fp6_2over3_model inverse() const
Fp6_2over3_model squared() const