Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
libff::Fp6_2over3_model< n, modulus > Class Template Reference

#include <fp6_2over3.hpp>

Collaboration diagram for libff::Fp6_2over3_model< n, modulus >:

Public Types

typedef Fp_model< n, modulus > my_Fp
 
typedef Fp2_model< n, modulus > my_Fp2
 
typedef Fp3_model< n, modulus > my_Fp3
 
typedef my_Fp3 my_Fpe
 

Public Member Functions

 Fp6_2over3_model ()
 
 Fp6_2over3_model (const my_Fp3 &c0, const my_Fp3 &c1)
 
void print () const
 
void clear ()
 
bool is_zero () const
 
bool operator== (const Fp6_2over3_model &other) const
 
bool operator!= (const Fp6_2over3_model &other) const
 
Fp6_2over3_model operator+ (const Fp6_2over3_model &other) const
 
Fp6_2over3_model operator- (const Fp6_2over3_model &other) const
 
Fp6_2over3_model operator* (const Fp6_2over3_model &other) const
 
Fp6_2over3_model mul_by_2345 (const Fp6_2over3_model &other) const
 
Fp6_2over3_model operator- () const
 
Fp6_2over3_model squared () const
 
Fp6_2over3_model inverse () const
 
Fp6_2over3_model Frobenius_map (unsigned long power) const
 
Fp6_2over3_model unitary_inverse () const
 
Fp6_2over3_model cyclotomic_squared () const
 
template<mp_size_t m>
Fp6_2over3_model cyclotomic_exp (const bigint< m > &exponent) const
 

Static Public Member Functions

static Fp6_2over3_model< n, modulus > zero ()
 
static Fp6_2over3_model< n, modulus > one ()
 
static Fp6_2over3_model< n, modulus > random_element ()
 
static my_Fp3 mul_by_non_residue (const my_Fp3 &elem)
 
static bigint< n > base_field_char ()
 
static constexpr size_t extension_degree ()
 

Public Attributes

my_Fp3 c0
 
my_Fp3 c1
 

Static Public Attributes

static my_Fp non_residue
 
static my_Fp Frobenius_coeffs_c1 [6]
 

Friends

std::ostream & operator (std::ostream &out, const Fp6_2over3_model< n, modulus > &el)
 
std::istream & operator>> (std::istream &in, Fp6_2over3_model< n, modulus > &el)
 

Detailed Description

template<mp_size_t n, const bigint< n > & modulus>
class libff::Fp6_2over3_model< n, modulus >

Arithmetic in the finite field F[(p^3)^2].

Let p := modulus. This interface provides arithmetic for the extension field Fp6 = Fp3[Y]/(Y^2-X) where Fp3 = Fp[X]/(X^3-non_residue) and non_residue is in Fp.

ASSUMPTION: p = 1 (mod 6)

Definition at line 36 of file fp6_2over3.hpp.

Member Typedef Documentation

◆ my_Fp

template<mp_size_t n, const bigint< n > & modulus>
Fp_model<n, modulus> libff::Fp6_2over3_model< n, modulus >::my_Fp

Definition at line 38 of file fp6_2over3.hpp.

◆ my_Fp2

template<mp_size_t n, const bigint< n > & modulus>
Fp2_model<n, modulus> libff::Fp6_2over3_model< n, modulus >::my_Fp2

Definition at line 39 of file fp6_2over3.hpp.

◆ my_Fp3

template<mp_size_t n, const bigint< n > & modulus>
Fp3_model<n, modulus> libff::Fp6_2over3_model< n, modulus >::my_Fp3

Definition at line 40 of file fp6_2over3.hpp.

◆ my_Fpe

template<mp_size_t n, const bigint< n > & modulus>
my_Fp3 libff::Fp6_2over3_model< n, modulus >::my_Fpe

Definition at line 41 of file fp6_2over3.hpp.

Constructor & Destructor Documentation

◆ Fp6_2over3_model() [1/2]

template<mp_size_t n, const bigint< n > & modulus>
libff::Fp6_2over3_model< n, modulus >::Fp6_2over3_model ( )
inline

Definition at line 47 of file fp6_2over3.hpp.

47{};

◆ Fp6_2over3_model() [2/2]

template<mp_size_t n, const bigint< n > & modulus>
libff::Fp6_2over3_model< n, modulus >::Fp6_2over3_model ( const my_Fp3 & c0,
const my_Fp3 & c1 )
inline

Definition at line 48 of file fp6_2over3.hpp.

Member Function Documentation

◆ base_field_char()

template<mp_size_t n, const bigint< n > & modulus>
static bigint< n > libff::Fp6_2over3_model< n, modulus >::base_field_char ( )
inlinestatic

Definition at line 77 of file fp6_2over3.hpp.

77{ return modulus; }

◆ clear()

template<mp_size_t n, const bigint< n > & modulus>
void libff::Fp6_2over3_model< n, modulus >::clear ( )
inline

Definition at line 51 of file fp6_2over3.hpp.

51{ c0.clear(); c1.clear(); }
void clear()
Definition fp3.hpp:54
Here is the call graph for this function:

◆ cyclotomic_exp()

template<mp_size_t n, const bigint< n > & modulus>
template<mp_size_t m>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::cyclotomic_exp ( const bigint< m > & exponent) const
Here is the caller graph for this function:

◆ cyclotomic_squared()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::cyclotomic_squared ( ) const

◆ extension_degree()

template<mp_size_t n, const bigint< n > & modulus>
static constexpr size_t libff::Fp6_2over3_model< n, modulus >::extension_degree ( )
inlinestaticconstexpr

Definition at line 78 of file fp6_2over3.hpp.

78{ return 6; }

◆ Frobenius_map()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::Frobenius_map ( unsigned long power) const
Here is the caller graph for this function:

◆ inverse()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::inverse ( ) const
Here is the caller graph for this function:

◆ is_zero()

template<mp_size_t n, const bigint< n > & modulus>
bool libff::Fp6_2over3_model< n, modulus >::is_zero ( ) const
inline

Definition at line 57 of file fp6_2over3.hpp.

57{ return c0.is_zero() && c1.is_zero(); }
bool is_zero() const
Definition fp3.hpp:61
Here is the call graph for this function:

◆ mul_by_2345()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::mul_by_2345 ( const Fp6_2over3_model< n, modulus > & other) const

◆ mul_by_non_residue()

template<mp_size_t n, const bigint< n > & modulus>
static my_Fp3 libff::Fp6_2over3_model< n, modulus >::mul_by_non_residue ( const my_Fp3 & elem)
static
Here is the caller graph for this function:

◆ one()

template<mp_size_t n, const bigint< n > & modulus>
static Fp6_2over3_model< n, modulus > libff::Fp6_2over3_model< n, modulus >::one ( )
static
Here is the caller graph for this function:

◆ operator!=()

template<mp_size_t n, const bigint< n > & modulus>
bool libff::Fp6_2over3_model< n, modulus >::operator!= ( const Fp6_2over3_model< n, modulus > & other) const

◆ operator*()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::operator* ( const Fp6_2over3_model< n, modulus > & other) const

◆ operator+()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::operator+ ( const Fp6_2over3_model< n, modulus > & other) const

◆ operator-() [1/2]

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::operator- ( ) const

◆ operator-() [2/2]

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::operator- ( const Fp6_2over3_model< n, modulus > & other) const

◆ operator==()

template<mp_size_t n, const bigint< n > & modulus>
bool libff::Fp6_2over3_model< n, modulus >::operator== ( const Fp6_2over3_model< n, modulus > & other) const

◆ print()

template<mp_size_t n, const bigint< n > & modulus>
void libff::Fp6_2over3_model< n, modulus >::print ( ) const
inline

Definition at line 50 of file fp6_2over3.hpp.

50{ printf("c0/c1:\n"); c0.print(); c1.print(); }
void print() const
Definition fp3.hpp:55
LOGGING_API void printf(Category category, const char *format,...)
Definition Logging.cpp:30
Here is the call graph for this function:

◆ random_element()

template<mp_size_t n, const bigint< n > & modulus>
static Fp6_2over3_model< n, modulus > libff::Fp6_2over3_model< n, modulus >::random_element ( )
static

◆ squared()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::squared ( ) const

◆ unitary_inverse()

template<mp_size_t n, const bigint< n > & modulus>
Fp6_2over3_model libff::Fp6_2over3_model< n, modulus >::unitary_inverse ( ) const
Here is the caller graph for this function:

◆ zero()

template<mp_size_t n, const bigint< n > & modulus>
static Fp6_2over3_model< n, modulus > libff::Fp6_2over3_model< n, modulus >::zero ( )
static

Friends And Related Symbol Documentation

◆ operator

template<mp_size_t n, const bigint< n > & modulus>
std::ostream & operator ( std::ostream & out,
const Fp6_2over3_model< n, modulus > & el )
friend

◆ operator>>

template<mp_size_t n, const bigint< n > & modulus>
std::istream & operator>> ( std::istream & in,
Fp6_2over3_model< n, modulus > & el )
friend

Member Data Documentation

◆ c0

template<mp_size_t n, const bigint< n > & modulus>
my_Fp3 libff::Fp6_2over3_model< n, modulus >::c0

Definition at line 46 of file fp6_2over3.hpp.

◆ c1

template<mp_size_t n, const bigint< n > & modulus>
my_Fp3 libff::Fp6_2over3_model< n, modulus >::c1

Definition at line 46 of file fp6_2over3.hpp.

◆ Frobenius_coeffs_c1

template<mp_size_t n, const bigint< n > & modulus>
Fp_model< n, modulus > libff::Fp6_2over3_model< n, modulus >::Frobenius_coeffs_c1
static

Definition at line 44 of file fp6_2over3.hpp.

◆ non_residue

template<mp_size_t n, const bigint< n > & modulus>
Fp_model< n, modulus > libff::Fp6_2over3_model< n, modulus >::non_residue
static

Definition at line 43 of file fp6_2over3.hpp.


The documentation for this class was generated from the following file: