Givaro 4.2.1
modular-mulprecomp.inl File Reference

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,
s )
Value:
(2 * sizeof(ELEMENT) >= sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \
&& (std::is_integral<ELEMENT>::value) && (std::is_integral<COMPUTE_T>::value)

◆ SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE

#define SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE ( ELEMENT,
COMPUTE_T,
s )
Value:
(2 * sizeof(ELEMENT) == sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \
&& (std::is_integral<ELEMENT>::value) && (std::is_integral<COMPUTE_T>::value)

◆ SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE

#define SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE ( ELEMENT,
COMPUTE_T,
s )
Value:
(sizeof(ELEMENT) == sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \
&& (std::is_integral<ELEMENT>::value) && (std::is_integral<COMPUTE_T>::value)

Function Documentation

◆ precomp_p()

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
inline

◆ mul_precomp_p()

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
inline

◆ precomp_b() [1/3]

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
inline

◆ precomp_b() [2/3]

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
inline

◆ precomp_b() [3/3]

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
inline

◆ mul_precomp_b_without_reduction()

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
inline

◆ mul_precomp_b()

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
inline