nil::crypto3::algebra::fields::detail Namespace Reference

Classes

struct  element_fp
 
struct  element_fp12_2over3over2
 
struct  element_fp2
 
struct  element_fp3
 
struct  element_fp4
 
struct  element_fp6_2over3
 
struct  element_fp6_3over2
 
struct  fp12_2over3over2
 
struct  fp12_2over3over2_extension_params
 
class  fp12_2over3over2_extension_params< fields::alt_bn128< Version > >
 
class  fp12_2over3over2_extension_params< fields::bls12< 377 > >
 
class  fp12_2over3over2_extension_params< fields::bls12< 381 > >
 
class  fp12_2over3over2_extension_params< fields::bn128< Version > >
 
struct  fp2_extension_params
 
class  fp2_extension_params< fields::alt_bn128< Version > >
 
class  fp2_extension_params< fields::bls12< 377 > >
 
class  fp2_extension_params< fields::bls12< 381 > >
 
class  fp2_extension_params< fields::bn128< Version > >
 
class  fp2_extension_params< fields::mnt4_base_field< Version > >
 
struct  fp3_extension_params
 
class  fp3_extension_params< fields::edwards_base_field< Version > >
 
class  fp3_extension_params< fields::mnt6_base_field< Version > >
 
struct  fp4_extension_params
 
class  fp4_extension_params< fields::mnt4_base_field< Version > >
 
struct  fp6_2over3_extension_params
 
class  fp6_2over3_extension_params< fields::edwards_base_field< Version > >
 
class  fp6_2over3_extension_params< fields::mnt6_base_field< Version > >
 
struct  fp6_3over2_extension_params
 
class  fp6_3over2_extension_params< fields::alt_bn128< Version > >
 
class  fp6_3over2_extension_params< fields::bls12< 377 > >
 
class  fp6_3over2_extension_params< fields::bls12< 381 > >
 
class  fp6_3over2_extension_params< fields::bn128< Version > >
 

Functions

template<typename FieldParams >
constexpr element_fp2< FieldParams > addNC (const element_fp2< FieldParams > &A, const element_fp2< FieldParams > &B)
 
template<typename FieldParams >
element_fp12_2over3over2< FieldParams > operator* (const element_fp12_2over3over2< FieldParams > &lhs, const typename FieldParams::underlying_type &rhs)
 
template<typename FieldParams >
element_fp12_2over3over2< FieldParams > operator* (const element_fp12_2over3over2< FieldParams > &lhs, const typename FieldParams::underlying_type::underlying_type &rhs)
 
template<typename FieldParams >
element_fp12_2over3over2< FieldParams > operator* (const element_fp12_2over3over2< FieldParams > &lhs, const typename FieldParams::underlying_type::underlying_type::underlying_type &rhs)
 
template<typename FieldParams >
constexpr element_fp2< FieldParams > operator* (const element_fp2< FieldParams > &lhs, const typename FieldParams::underlying_type &rhs)
 
template<typename FieldParams >
constexpr element_fp3< FieldParams > operator* (const element_fp3< FieldParams > &lhs, const typename FieldParams::underlying_type &rhs)
 
template<typename FieldParams >
constexpr element_fp6_2over3< FieldParams > operator* (const element_fp6_2over3< FieldParams > &lhs, const typename FieldParams::underlying_type::underlying_type &rhs)
 
template<typename FieldParams >
constexpr element_fp6_3over2< FieldParams > operator* (const element_fp6_3over2< FieldParams > &lhs, const typename FieldParams::underlying_type &rhs)
 
template<typename FieldParams >
constexpr element_fp6_3over2< FieldParams > operator* (const element_fp6_3over2< FieldParams > &lhs, const typename FieldParams::underlying_type::underlying_type &rhs)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator* (const FieldElement &A, Integral B)
 
template<typename FieldParams >
element_fp12_2over3over2< FieldParams > operator* (const typename FieldParams::underlying_type &lhs, const element_fp12_2over3over2< FieldParams > &rhs)
 
template<typename FieldParams >
constexpr element_fp2< FieldParams > operator* (const typename FieldParams::underlying_type &lhs, const element_fp2< FieldParams > &rhs)
 
template<typename FieldParams >
constexpr element_fp3< FieldParams > operator* (const typename FieldParams::underlying_type &lhs, const element_fp3< FieldParams > &rhs)
 
template<typename FieldParams >
constexpr element_fp6_3over2< FieldParams > operator* (const typename FieldParams::underlying_type &lhs, const element_fp6_3over2< FieldParams > &rhs)
 
template<typename FieldParams >
element_fp12_2over3over2< FieldParams > operator* (const typename FieldParams::underlying_type::underlying_type &lhs, const element_fp12_2over3over2< FieldParams > &rhs)
 
template<typename FieldParams >
constexpr element_fp6_2over3< FieldParams > operator* (const typename FieldParams::underlying_type::underlying_type &lhs, const element_fp6_2over3< FieldParams > &rhs)
 
template<typename FieldParams >
constexpr element_fp6_3over2< FieldParams > operator* (const typename FieldParams::underlying_type::underlying_type &lhs, const element_fp6_3over2< FieldParams > &rhs)
 
template<typename FieldParams >
element_fp12_2over3over2< FieldParams > operator* (const typename FieldParams::underlying_type::underlying_type::underlying_type &lhs, const element_fp12_2over3over2< FieldParams > &rhs)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator* (Integral A, const FieldElement &B)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator+ (const FieldElement &A, Integral B)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator+ (Integral A, const FieldElement &B)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator- (const FieldElement &A, Integral B)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator- (Integral A, const FieldElement &B)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator/ (const FieldElement &A, Integral B)
 
template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement operator/ (Integral A, const FieldElement &B)
 
template<typename FieldValueType , typename NumberType >
constexpr FieldValueType power (const FieldValueType &base, const NumberType &exponent)
 
template<typename FieldParams >
constexpr element_fp2< FieldParams > subNC (const element_fp2< FieldParams > &A, const element_fp2< FieldParams > &B)
 

Function Documentation

◆ addNC()

template<typename FieldParams >
constexpr element_fp2<FieldParams> nil::crypto3::algebra::fields::detail::addNC ( const element_fp2< FieldParams > &  A,
const element_fp2< FieldParams > &  B 
)
constexpr

◆ operator*() [1/18]

template<typename FieldParams >
element_fp12_2over3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp12_2over3over2< FieldParams > &  lhs,
const typename FieldParams::underlying_type &  rhs 
)

◆ operator*() [2/18]

template<typename FieldParams >
element_fp12_2over3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp12_2over3over2< FieldParams > &  lhs,
const typename FieldParams::underlying_type::underlying_type &  rhs 
)

◆ operator*() [3/18]

template<typename FieldParams >
element_fp12_2over3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp12_2over3over2< FieldParams > &  lhs,
const typename FieldParams::underlying_type::underlying_type::underlying_type &  rhs 
)

◆ operator*() [4/18]

template<typename FieldParams >
constexpr element_fp2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp2< FieldParams > &  lhs,
const typename FieldParams::underlying_type &  rhs 
)
constexpr

◆ operator*() [5/18]

template<typename FieldParams >
constexpr element_fp3<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp3< FieldParams > &  lhs,
const typename FieldParams::underlying_type &  rhs 
)
constexpr

◆ operator*() [6/18]

template<typename FieldParams >
constexpr element_fp6_2over3<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp6_2over3< FieldParams > &  lhs,
const typename FieldParams::underlying_type::underlying_type &  rhs 
)
constexpr

◆ operator*() [7/18]

template<typename FieldParams >
constexpr element_fp6_3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp6_3over2< FieldParams > &  lhs,
const typename FieldParams::underlying_type &  rhs 
)
constexpr

◆ operator*() [8/18]

template<typename FieldParams >
constexpr element_fp6_3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const element_fp6_3over2< FieldParams > &  lhs,
const typename FieldParams::underlying_type::underlying_type &  rhs 
)
constexpr

◆ operator*() [9/18]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator* ( const FieldElement &  A,
Integral  B 
)
constexpr

◆ operator*() [10/18]

template<typename FieldParams >
element_fp12_2over3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type &  lhs,
const element_fp12_2over3over2< FieldParams > &  rhs 
)

◆ operator*() [11/18]

template<typename FieldParams >
constexpr element_fp2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type &  lhs,
const element_fp2< FieldParams > &  rhs 
)
constexpr

◆ operator*() [12/18]

template<typename FieldParams >
constexpr element_fp3<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type &  lhs,
const element_fp3< FieldParams > &  rhs 
)
constexpr

◆ operator*() [13/18]

template<typename FieldParams >
constexpr element_fp6_3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type &  lhs,
const element_fp6_3over2< FieldParams > &  rhs 
)
constexpr

◆ operator*() [14/18]

template<typename FieldParams >
element_fp12_2over3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type::underlying_type &  lhs,
const element_fp12_2over3over2< FieldParams > &  rhs 
)

◆ operator*() [15/18]

template<typename FieldParams >
constexpr element_fp6_2over3<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type::underlying_type &  lhs,
const element_fp6_2over3< FieldParams > &  rhs 
)
constexpr

◆ operator*() [16/18]

template<typename FieldParams >
constexpr element_fp6_3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type::underlying_type &  lhs,
const element_fp6_3over2< FieldParams > &  rhs 
)
constexpr

◆ operator*() [17/18]

template<typename FieldParams >
element_fp12_2over3over2<FieldParams> nil::crypto3::algebra::fields::detail::operator* ( const typename FieldParams::underlying_type::underlying_type::underlying_type &  lhs,
const element_fp12_2over3over2< FieldParams > &  rhs 
)

◆ operator*() [18/18]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator* ( Integral  A,
const FieldElement &  B 
)
constexpr

◆ operator+() [1/2]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator+ ( const FieldElement &  A,
Integral  B 
)
constexpr

◆ operator+() [2/2]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator+ ( Integral  A,
const FieldElement &  B 
)
constexpr

◆ operator-() [1/2]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator- ( const FieldElement &  A,
Integral  B 
)
constexpr

◆ operator-() [2/2]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator- ( Integral  A,
const FieldElement &  B 
)
constexpr

◆ operator/() [1/2]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator/ ( const FieldElement &  A,
Integral  B 
)
constexpr

◆ operator/() [2/2]

template<typename FieldElement , typename Integral , typename = typename std::enable_if<is_field_element<FieldElement>::value && std::is_constructible<FieldElement, Integral>::value>::type>
constexpr FieldElement nil::crypto3::algebra::fields::detail::operator/ ( Integral  A,
const FieldElement &  B 
)
constexpr

◆ power()

template<typename FieldValueType , typename NumberType >
constexpr FieldValueType nil::crypto3::algebra::fields::detail::power ( const FieldValueType &  base,
const NumberType &  exponent 
)
constexpr

◆ subNC()

template<typename FieldParams >
constexpr element_fp2<FieldParams> nil::crypto3::algebra::fields::detail::subNC ( const element_fp2< FieldParams > &  A,
const element_fp2< FieldParams > &  B 
)
constexpr