Givaro
Macros | Functions
modular-mulprecomp.inl File Reference
+ This graph shows which files directly or indirectly include this file:

Macros

#define SUITABLE_INTEGRAL_TYPES(ELEMENT, COMPUTE_T, s)
 
#define SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE(ELEMENT, COMPUTE_T, s)
 
#define SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE(ELEMENT, COMPUTE_T, s)
 

Functions

template<typename ELEMENT = Element, typename COMPUTE_T = Compute_t, int s = sizeof(COMPUTE_T)>
std::enable_if<(2 *sizeof(ELEMENT) >=sizeof(COMPUTE_T)) &&(sizeof(COMPUTE_T)==s) &&(std::is_integral< ELEMENT >::value) &&(std::is_integral< COMPUTE_T >::value)>::type precomp_p (Compute_t &invp, size_t &bitsizep) const
 
template<typename ELEMENT = Element, typename COMPUTE_T = Compute_t, int s = sizeof(COMPUTE_T)>
std::enable_if<(2 *sizeof(ELEMENT) >=sizeof(COMPUTE_T)) &&(sizeof(COMPUTE_T)==s) &&(std::is_integral< ELEMENT >::value) &&(std::is_integral< COMPUTE_T >::value), Element & >::type mul_precomp_p (Element &r, const Element &a, const Element &b, const Compute_t &invp, const size_t &bitsizep) const
 
template<typename ELEMENT = Element, typename COMPUTE_T = Compute_t, int s = sizeof(COMPUTE_T)>
std::enable_if<(2 *sizeof(ELEMENT) >=sizeof(COMPUTE_T)) &&(sizeof(COMPUTE_T)==s) &&(std::is_integral< ELEMENT >::value) &&(std::is_integral< COMPUTE_T >::value)>::type precomp_b (Compute_t &invb, const Element &b) const
 
template<typename ELEMENT = Element, typename COMPUTE_T = Compute_t, int s = sizeof(COMPUTE_T)>
std::enable_if<(2 *sizeof(ELEMENT)==sizeof(COMPUTE_T)) &&(sizeof(COMPUTE_T)==s) &&(std::is_integral< ELEMENT >::value) &&(std::is_integral< COMPUTE_T >::value)>::type precomp_b (Compute_t &invb, const Element &b, const Compute_t &invp) const
 
template<typename ELEMENT = Element, typename COMPUTE_T = Compute_t, int s = sizeof(COMPUTE_T)>
std::enable_if<(sizeof(ELEMENT)==sizeof(COMPUTE_T)) &&(sizeof(COMPUTE_T)==s) &&(std::is_integral< ELEMENT >::value) &&(std::is_integral< COMPUTE_T >::value)>::type precomp_b (Compute_t &invb, const Element &b, const Element &invp) const
 
template<typename ELEMENT = Element, typename COMPUTE_T = Compute_t, int s = sizeof(COMPUTE_T)>
std::enable_if<(2 *sizeof(ELEMENT) >=sizeof(COMPUTE_T)) &&(sizeof(COMPUTE_T)==s) &&(std::is_integral< ELEMENT >::value) &&(std::is_integral< COMPUTE_T >::value), Residu_t >::type mul_precomp_b_without_reduction (Element &r, const Element &a, const Element &b, const Compute_t &invb) const
 
template<typename ELEMENT = Element, typename COMPUTE_T = Compute_t, int s = sizeof(COMPUTE_T)>
std::enable_if<(2 *sizeof(ELEMENT) >=sizeof(COMPUTE_T)) &&(sizeof(COMPUTE_T)==s) &&(std::is_integral< ELEMENT >::value) &&(std::is_integral< COMPUTE_T >::value), Element & >::type mul_precomp_b (Element &r, const Element &a, const Element &b, const Compute_t &invb) const
 

Macro Definition Documentation

◆ SUITABLE_INTEGRAL_TYPES

#define SUITABLE_INTEGRAL_TYPES (   ELEMENT,
  COMPUTE_T,
 
)
Value:
(2 * sizeof(ELEMENT) >= sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \
int64_t value(const Degree &d)
value
Definition: givdegree.h:81

◆ SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE

#define SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE (   ELEMENT,
  COMPUTE_T,
 
)
Value:
(2 * sizeof(ELEMENT) == sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \

◆ SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE

#define SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE (   ELEMENT,
  COMPUTE_T,
 
)
Value:
(sizeof(ELEMENT) == sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \

Function Documentation

◆ precomp_p()

std::enable_if<(2 * sizeof( ELEMENT ) >= sizeof( COMPUTE_T )) && (sizeof( COMPUTE_T ) == s ) && (std::is_integral< ELEMENT >::value) && (std::is_integral< COMPUTE_T >::value)>::type precomp_p ( Compute_t &  invp,
size_t &  bitsizep 
) const
inline

◆ mul_precomp_p()

std::enable_if<(2 * sizeof( ELEMENT ) >= sizeof( COMPUTE_T )) && (sizeof( COMPUTE_T ) == s ) && (std::is_integral< ELEMENT >::value) && (std::is_integral< COMPUTE_T >::value), Element&>::type mul_precomp_p ( Element r,
const Element a,
const Element b,
const Compute_t &  invp,
const size_t &  bitsizep 
) const
inline

◆ precomp_b() [1/3]

std::enable_if<(2 * sizeof( ELEMENT ) >= sizeof( COMPUTE_T )) && (sizeof( COMPUTE_T ) == s ) && (std::is_integral< ELEMENT >::value) && (std::is_integral< COMPUTE_T >::value)>::type precomp_b ( Compute_t &  invb,
const Element b 
) const
inline

◆ precomp_b() [2/3]

std::enable_if<(2 * sizeof( ELEMENT ) == sizeof( COMPUTE_T )) && (sizeof( COMPUTE_T ) == s ) && (std::is_integral< ELEMENT >::value) && (std::is_integral< COMPUTE_T >::value)>::type precomp_b ( Compute_t &  invb,
const Element b,
const Compute_t &  invp 
) const
inline

◆ precomp_b() [3/3]

std::enable_if<(sizeof( ELEMENT ) == sizeof( COMPUTE_T )) && (sizeof( COMPUTE_T ) == s ) && (std::is_integral< ELEMENT >::value) && (std::is_integral< COMPUTE_T >::value)>::type precomp_b ( Compute_t &  invb,
const Element b,
const Element invp 
) const
inline

◆ mul_precomp_b_without_reduction()

std::enable_if<(2 * sizeof( ELEMENT ) >= sizeof( COMPUTE_T )) && (sizeof( COMPUTE_T ) == s ) && (std::is_integral< ELEMENT >::value) && (std::is_integral< COMPUTE_T >::value), Residu_t>::type mul_precomp_b_without_reduction ( Element r,
const Element a,
const Element b,
const Compute_t &  invb 
) const
inline

◆ mul_precomp_b()

std::enable_if<(2 * sizeof( ELEMENT ) >= sizeof( COMPUTE_T )) && (sizeof( COMPUTE_T ) == s ) && (std::is_integral< ELEMENT >::value) && (std::is_integral< COMPUTE_T >::value), Element&>::type mul_precomp_b ( Element r,
const Element a,
const Element b,
const Compute_t &  invb 
) const
inline