FflasFfpack
Namespaces | Data Structures | Functions
FFLAS::vectorised Namespace Reference

Namespaces

 unswitch
 

Data Structures

struct  HelperMod
 
struct  HelperMod< Field, ElementCategories::MachineIntTag >
 
struct  HelperMod< Field, FFLAS::ElementCategories::ArbitraryPrecIntTag >
 
struct  HelperMod< Field, FFLAS::ElementCategories::FixedPrecIntTag >
 
struct  HelperMod< Field, FFLAS::ElementCategories::MachineFloatTag >
 

Functions

template<bool positive, class Element , class T1 , class T2 >
void subp (Element *T, const Element *TA, const Element *TB, const size_t n, const Element p, const T1 min_, const T2 max_)
 
template<bool positive, class Element , class T1 , class T2 >
void addp (Element *T, const Element *TA, const Element *TB, const size_t n, const Element p, const T1 min_, const T2 max_)
 
template<class T >
std::enable_if< !std::is_integral< T >::value, T >::type monfmod (T A, T B)
 
template<class T >
std::enable_if< std::is_integral< T >::value, T >::type monfmod (T A, T B)
 
template<>
Givaro::Integer monfmod (Givaro::Integer A, Givaro::Integer B)
 
template<>
float monfmod (float A, float B)
 
template<>
double monfmod (double A, double B)
 
template<size_t K, size_t MG>
RecInt::rmint< K, MG > & monfmod (RecInt::rmint< K, MG > &A, RecInt::rmint< K, MG > &B)
 
template<class T >
std::enable_if< !std::is_integral< T >::value, T >::type monrint (T A)
 
template<class T >
std::enable_if< std::is_integral< T >::value, T >::type monrint (T A)
 
template<>
double monrint (double A)
 
template<>
float monrint (float A)
 
template<>
Givaro::Integer monrint (Givaro::Integer A)
 
template<bool overflow, bool poweroftwo>
int64_t monfmod (int64_t A, int64_t p, int8_t shifter, int64_t magic)
 
template<class T >
void fast_mod_generate (bool &overflow, bool &poweroftwo, int8_t &shift, T &magic, T denom)
 
template<>
void fast_mod_generate (bool &overflow, bool &poweroftwo, int8_t &shift, int64_t &magic, int64_t denom)
 
template<class Field , int ALGO>
Field::Element monfmod (typename Field::Element A, HelperMod< Field, ElementCategories::MachineIntTag > &H)
 
template<class Field , int ALGO>
Field::Element monfmod (typename Field::Element A, HelperMod< Field, ElementCategories::MachineFloatTag > &H)
 
template<class Field , int ALGO>
Field::Element monfmod (typename Field::Element A, HelperMod< Field, ElementCategories::ArbitraryPrecIntTag > &H)
 
template<class Field , bool round>
void modp (const Field &F, typename Field::ConstElement_ptr U, const size_t &n, typename Field::Element_ptr T)
 
template<class Element , class T1 , class T2 >
void scalp (Element *T, const Element alpha, const Element *U, const size_t n, const Element p, const Element invp, const T1 min_, const T2 max_)
 

Function Documentation

void FFLAS::vectorised::subp ( Element *  T,
const Element *  TA,
const Element *  TB,
const size_t  n,
const Element  p,
const T1  min_,
const T2  max_ 
)
void FFLAS::vectorised::addp ( Element *  T,
const Element *  TA,
const Element *  TB,
const size_t  n,
const Element  p,
const T1  min_,
const T2  max_ 
)
std::enable_if< ! std::is_integral<T>::value, T>::type FFLAS::vectorised::monfmod ( A,
B 
)
inline
std::enable_if< std::is_integral<T>::value, T>::type FFLAS::vectorised::monfmod ( A,
B 
)
inline
Givaro::Integer FFLAS::vectorised::monfmod ( Givaro::Integer  A,
Givaro::Integer  B 
)
inline
float FFLAS::vectorised::monfmod ( float  A,
float  B 
)
inline
double FFLAS::vectorised::monfmod ( double  A,
double  B 
)
inline
RecInt::rmint<K,MG>& FFLAS::vectorised::monfmod ( RecInt::rmint< K, MG > &  A,
RecInt::rmint< K, MG > &  B 
)
inline
std::enable_if< ! std::is_integral<T>::value, T>::type FFLAS::vectorised::monrint ( A)
inline
std::enable_if< std::is_integral<T>::value, T>::type FFLAS::vectorised::monrint ( A)
inline
double FFLAS::vectorised::monrint ( double  A)
inline
float FFLAS::vectorised::monrint ( float  A)
inline
Givaro::Integer FFLAS::vectorised::monrint ( Givaro::Integer  A)
inline
int64_t FFLAS::vectorised::monfmod ( int64_t  A,
int64_t  p,
int8_t  shifter,
int64_t  magic 
)
inline
void FFLAS::vectorised::fast_mod_generate ( bool &  overflow,
bool &  poweroftwo,
int8_t &  shift,
T &  magic,
denom 
)
inline
void FFLAS::vectorised::fast_mod_generate ( bool &  overflow,
bool &  poweroftwo,
int8_t &  shift,
int64_t &  magic,
int64_t  denom 
)
inline
Precondition
d > 0
Field::Element FFLAS::vectorised::monfmod ( typename Field::Element  A,
HelperMod< Field, ElementCategories::MachineIntTag > &  H 
)
Field::Element FFLAS::vectorised::monfmod ( typename Field::Element  A,
HelperMod< Field, ElementCategories::MachineFloatTag > &  H 
)
Field::Element FFLAS::vectorised::monfmod ( typename Field::Element  A,
HelperMod< Field, ElementCategories::ArbitraryPrecIntTag > &  H 
)
void FFLAS::vectorised::modp ( const Field F,
typename Field::ConstElement_ptr  U,
const size_t &  n,
typename Field::Element_ptr  T 
)
void FFLAS::vectorised::scalp ( Element *  T,
const Element  alpha,
const Element *  U,
const size_t  n,
const Element  p,
const Element  invp,
const T1  min_,
const T2  max_ 
)