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

Namespaces

namespace  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<class SimdT , class Element , bool positive>
std::enable_if< is_simd< SimdT >::value, void >::type VEC_ADD (SimdT &C, SimdT &A, SimdT &B, SimdT &Q, SimdT &T, SimdT &P, SimdT &NEGP, SimdT &MIN, SimdT &MAX)
 
template<bool positive, class Element , class T1 , class T2 >
std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type addp (Element *T, const Element *TA, const Element *TB, size_t n, Element p, T1 min_, T2 max_)
 
template<class SimdT , class Element , bool positive>
std::enable_if< is_simd< SimdT >::value, void >::type VEC_SUB (SimdT &C, SimdT &A, SimdT &B, SimdT &Q, SimdT &T, SimdT &P, SimdT &NEGP, SimdT &MIN, SimdT &MAX)
 
template<bool positive, class Element , class T1 , class T2 >
std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type subp (Element *T, const Element *TA, const Element *TB, const size_t n, const Element p, const T1 min_, const T2 max_)
 
template<class Element >
std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type add (Element *T, const Element *TA, const Element *TB, size_t n)
 
template<class Element >
std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type sub (Element *T, const Element *TA, const Element *TB, size_t n)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type axpyp (const Field &F, const typename Field::Element a, typename Field::ConstElement_ptr X, typename Field::Element_ptr Y, const size_t n)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type axpyp (const Field &F, const typename Field::Element a, typename Field::ConstElement_ptr X, typename Field::Element_ptr Y, const size_t n, const size_t incX, const size_t incY)
 
template<class T >
std::enable_if<!std::is_integral< T >::value, T >::type reduce (T A, T B)
 
template<class T >
std::enable_if< std::is_integral< T >::value, T >::type reduce (T A, T B)
 
template<>
Givaro::Integer reduce (Givaro::Integer A, Givaro::Integer B)
 
float reduce (float A, float B, float invB, float min, float max)
 
double reduce (double A, double B, double invB, double min, double max)
 
int64_t reduce (int64_t A, int64_t p, double invp, double min, double max, int64_t pow50rem)
 
template<class Field >
Field::Element reduce (typename Field::Element A, HelperMod< Field, ElementCategories::MachineIntTag > &H)
 
template<class Field >
Field::Element reduce (typename Field::Element A, HelperMod< Field, ElementCategories::MachineFloatTag > &H)
 
template<class Field >
Field::Element reduce (typename Field::Element A, HelperMod< Field, ElementCategories::ArbitraryPrecIntTag > &H)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type modp (const Field &F, typename Field::ConstElement_ptr U, const size_t &n, typename Field::Element_ptr T)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type modp (const Field &F, typename Field::ConstElement_ptr U, const size_t &n, const size_t &incX, typename Field::Element_ptr T)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type scalp (const Field &F, typename Field::Element_ptr T, const typename Field::Element alpha, typename Field::ConstElement_ptr U, const size_t n)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type scalp (const Field &F, typename Field::Element_ptr T, const typename Field::Element alpha, typename Field::ConstElement_ptr U, const size_t n, const size_t &incX)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type scalp (const Field &F, typename Field::Element_ptr T, const typename Field::Element alpha, typename Field::ConstElement_ptr U, const size_t n, const size_t &incX, const size_t &incY)
 

Function Documentation

◆ VEC_ADD()

std::enable_if< is_simd< SimdT >::value, void >::type VEC_ADD ( SimdT &  C,
SimdT &  A,
SimdT &  B,
SimdT &  Q,
SimdT &  T,
SimdT &  P,
SimdT &  NEGP,
SimdT &  MIN,
SimdT &  MAX 
)
inline

◆ addp()

std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type addp ( Element *  T,
const Element *  TA,
const Element *  TB,
size_t  n,
Element  p,
T1  min_,
T2  max_ 
)
inline

◆ VEC_SUB()

std::enable_if< is_simd< SimdT >::value, void >::type VEC_SUB ( SimdT &  C,
SimdT &  A,
SimdT &  B,
SimdT &  Q,
SimdT &  T,
SimdT &  P,
SimdT &  NEGP,
SimdT &  MIN,
SimdT &  MAX 
)
inline

◆ subp()

std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type subp ( Element *  T,
const Element *  TA,
const Element *  TB,
const size_t  n,
const Element  p,
const T1  min_,
const T2  max_ 
)
inline

◆ add()

std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type add ( Element *  T,
const Element *  TA,
const Element *  TB,
size_t  n 
)
inline

◆ sub()

std::enable_if< FFLAS::support_simd_add< Element >::value, void >::type sub ( Element *  T,
const Element *  TA,
const Element *  TB,
size_t  n 
)
inline

◆ axpyp() [1/2]

std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type axpyp ( const Field F,
const typename Field::Element  a,
typename Field::ConstElement_ptr  X,
typename Field::Element_ptr  Y,
const size_t  n 
)
inline

◆ axpyp() [2/2]

std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type axpyp ( const Field F,
const typename Field::Element  a,
typename Field::ConstElement_ptr  X,
typename Field::Element_ptr  Y,
const size_t  n,
const size_t  incX,
const size_t  incY 
)
inline

◆ reduce() [1/9]

std::enable_if<!std::is_integral< T >::value, T >::type reduce ( A,
B 
)
inline

◆ reduce() [2/9]

std::enable_if< std::is_integral< T >::value, T >::type reduce ( A,
B 
)
inline

◆ reduce() [3/9]

Givaro::Integer reduce ( Givaro::Integer  A,
Givaro::Integer  B 
)
inline

◆ reduce() [4/9]

float reduce ( float  A,
float  B,
float  invB,
float  min,
float  max 
)
inline

◆ reduce() [5/9]

double reduce ( double  A,
double  B,
double  invB,
double  min,
double  max 
)
inline

◆ reduce() [6/9]

int64_t reduce ( int64_t  A,
int64_t  p,
double  invp,
double  min,
double  max,
int64_t  pow50rem 
)
inline

◆ reduce() [7/9]

Field::Element reduce ( typename Field::Element  A,
HelperMod< Field, ElementCategories::MachineIntTag > &  H 
)
inline

◆ reduce() [8/9]

Field::Element reduce ( typename Field::Element  A,
HelperMod< Field, ElementCategories::MachineFloatTag > &  H 
)
inline

◆ reduce() [9/9]

Field::Element reduce ( typename Field::Element  A,
HelperMod< Field, ElementCategories::ArbitraryPrecIntTag > &  H 
)
inline

◆ modp() [1/2]

std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type modp ( const Field F,
typename Field::ConstElement_ptr  U,
const size_t &  n,
typename Field::Element_ptr  T 
)
inline

◆ modp() [2/2]

std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type modp ( const Field F,
typename Field::ConstElement_ptr  U,
const size_t &  n,
const size_t &  incX,
typename Field::Element_ptr  T 
)
inline

◆ scalp() [1/3]

std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type scalp ( const Field F,
typename Field::Element_ptr  T,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  U,
const size_t  n 
)
inline

◆ scalp() [2/3]

std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type scalp ( const Field F,
typename Field::Element_ptr  T,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  U,
const size_t  n,
const size_t &  incX 
)
inline

◆ scalp() [3/3]

std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type scalp ( const Field F,
typename Field::Element_ptr  T,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  U,
const size_t  n,
const size_t &  incX,
const size_t &  incY 
)
inline