Clearmatics Libff
0.1
C++ library for Finite Fields and Elliptic Curves
|
Go to the documentation of this file.
10 #ifndef FP6_3OVER2_HPP_
11 #define FP6_3OVER2_HPP_
21 template<mp_
size_t n, const big
int<n> &modulus>
24 template<mp_
size_t n, const big
int<n> &modulus>
78 printf(
"c0/c1/c2:\n");
106 template<mp_
size_t m>
112 friend std::ostream &operator<<<n, modulus>(
114 friend std::istream &
operator>>
118 template<mp_
size_t n, const big
int<n> &modulus>
120 std::ostream &out,
const std::vector<Fp6_3over2_model<n, modulus>> &v);
122 template<mp_
size_t n, const big
int<n> &modulus>
124 std::istream &in, std::vector<Fp6_3over2_model<n, modulus>> &v);
126 template<mp_
size_t n, const big
int<n> &modulus>
128 const Fp_model<n, modulus> &lhs,
const Fp6_3over2_model<n, modulus> &rhs);
130 template<mp_
size_t n, const big
int<n> &modulus>
132 const Fp2_model<n, modulus> &lhs,
const Fp6_3over2_model<n, modulus> &rhs);
134 template<mp_
size_t n, const big
int<n> &modulus>
137 template<mp_
size_t n, const big
int<n> &modulus>
140 template<mp_
size_t n, const big
int<n> &modulus>
143 template<mp_
size_t n, const big
int<n> &modulus>
146 template<mp_
size_t n, const big
int<n> &modulus>
149 template<mp_
size_t n, const big
int<n> &modulus>
152 template<mp_
size_t n, const big
int<n> &modulus>
155 template<mp_
size_t n, const big
int<n> &modulus>
158 template<mp_
size_t n, const big
int<n> &modulus>
165 #endif // FP6_3OVER2_HPP_
static Fp6_3over2_model< n, modulus > nqr_to_t
static Fp6_3over2_model< n, modulus > one()
static Fp6_3over2_model< n, modulus > zero()
Fp_model< n, modulus > my_Fp
Fp6_3over2_model(const my_Fp2 &c0, const my_Fp2 &c1, const my_Fp2 &c2)
static bigint< 6 *n > euler
static bigint< n > base_field_char()
static Fp6_3over2_model< n, modulus > random_element()
std::istream & operator>>(std::istream &in, alt_bn128_G1 &g)
Fp6_3over2_model operator+(const Fp6_3over2_model &other) const
static Fp6_3over2_model< n, modulus > nqr
static bigint< 6 *n > t_minus_1_over_2
static my_Fp2 Frobenius_coeffs_c1[6]
non_residue^((modulus^i-1)/3) for i=0,1,2,3,4,5
bool operator!=(const Fp6_3over2_model &other) const
static my_Fp2 Frobenius_coeffs_c2[6]
non_residue^((2*modulus^i-2)/3) for i=0,1,2,3,4,5
static constexpr size_t extension_degree()
Fp6_3over2_model inverse() const
static my_Fp2 mul_by_non_residue(const my_Fp2 &elt)
Fp6_3over2_model Frobenius_map(unsigned long power) const
static const size_t tower_extension_degree
Fp2_model< n, modulus > my_Fp2
Fp6_3over2_model squared() const
Fp6_3over2_model operator^(const bigint< m > &other) const
std::ostream & operator<<(std::ostream &out, const alt_bn128_G1 &g)
alt_bn128_G1 operator*(const bigint< m > &lhs, const alt_bn128_G1 &rhs)
bool operator==(const Fp6_3over2_model &other) const
Fp6_3over2_model operator-() const
FieldT power(const FieldT &base, const bigint< m > &exponent)
static my_Fp2 non_residue
Fp6_3over2_model operator*(const Fp6_3over2_model &other) const