FflasFfpack
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()

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 )
inline

◆ addp()

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_ )
inline

◆ VEC_SUB()

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 )
inline

◆ subp()

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_ )
inline

◆ add()

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 )
inline

◆ sub()

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 )
inline

◆ axpyp() [1/2]

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 )
inline

◆ axpyp() [2/2]

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 )
inline

◆ reduce() [1/9]

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

◆ reduce() [2/9]

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

◆ reduce() [3/9]

template<>
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]

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

◆ reduce() [8/9]

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

◆ reduce() [9/9]

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

◆ modp() [1/2]

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 )
inline

◆ modp() [2/2]

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 )
inline

◆ scalp() [1/3]

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 )
inline

◆ scalp() [2/3]

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 )
inline

◆ scalp() [3/3]

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 )
inline