FflasFfpack
FFLAS::details Namespace Reference

Functions

template<class Field , bool ADD>
std::enable_if< FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc, FieldCategories::ModularTag)
 
template<class Field , bool ADD>
std::enable_if<!FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc, FieldCategories::ModularTag)
 
template<class Field , bool ADD>
void fadd (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc, FieldCategories::GenericTag)
 
template<class Field , bool ADD>
std::enable_if<!FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc, FieldCategories::UnparametricTag)
 
template<class Field , bool ADD>
std::enable_if< FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc, FieldCategories::UnparametricTag)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type faxpy (const Field &F, const size_t N, const typename Field::Element a, typename Field::ConstElement_ptr X, const size_t incX, typename Field::Element_ptr Y, const size_t incY, FieldCategories::ModularTag)
 
template<class Field , class FC >
void faxpy (const Field &F, const size_t N, const typename Field::Element a, typename Field::ConstElement_ptr X, const size_t incX, typename Field::Element_ptr Y, const size_t incY, FC)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type freduce (const Field &F, const size_t m, typename Field::Element_ptr A, const size_t incX, FieldCategories::ModularTag)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type freduce (const Field &F, const size_t m, typename Field::ConstElement_ptr B, const size_t incY, typename Field::Element_ptr A, const size_t incX, FieldCategories::ModularTag)
 
template<class Field , class FC >
void freduce (const Field &F, const size_t m, typename Field::Element_ptr A, const size_t incX, FC)
 
template<class Field , class FC >
void freduce (const Field &F, const size_t m, typename Field::ConstElement_ptr B, const size_t incY, typename Field::Element_ptr A, const size_t incX, FC)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type fscalin (const Field &F, const size_t N, const typename Field::Element a, typename Field::Element_ptr X, const size_t incX, FieldCategories::ModularTag)
 
template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type fscal (const Field &F, const size_t N, const typename Field::Element a, typename Field::ConstElement_ptr X, const size_t incX, typename Field::Element_ptr Y, const size_t incY, FieldCategories::ModularTag)
 
template<class Field , class FC >
void fscalin (const Field &F, const size_t n, const typename Field::Element a, typename Field::Element_ptr X, const size_t incX, FC)
 
template<class Field , class FC >
void fscal (const Field &F, const size_t N, const typename Field::Element a, typename Field::ConstElement_ptr X, const size_t incX, typename Field::Element_ptr Y, const size_t incY, FC)
 
template<enum number_kind K>
void igebb44 (size_t i, size_t j, size_t depth, size_t pdeth, const int64_t alpha, const int64_t *blA, const int64_t *blB, int64_t *C, size_t ldc)
 
template<enum number_kind K>
void igebb24 (size_t i, size_t j, size_t depth, size_t pdeth, const int64_t alpha, const int64_t *blA, const int64_t *blB, int64_t *C, size_t ldc)
 
template<enum number_kind K>
void igebb14 (size_t i, size_t j, size_t depth, size_t pdeth, const int64_t alpha, const int64_t *blA, const int64_t *blB, int64_t *C, size_t ldc)
 
template<enum number_kind K>
void igebb41 (size_t i, size_t j, size_t depth, size_t pdeth, const int64_t alpha, const int64_t *blA, const int64_t *blB, int64_t *C, size_t ldc)
 
template<enum number_kind K>
void igebb21 (size_t i, size_t j, size_t depth, size_t pdeth, const int64_t alpha, const int64_t *blA, const int64_t *blB, int64_t *C, size_t ldc)
 
template<enum number_kind K>
void igebb11 (size_t i, size_t j, size_t depth, size_t pdeth, const int64_t alpha, const int64_t *blA, const int64_t *blB, int64_t *C, size_t ldc)
 
template<enum number_kind K>
void igebp (size_t rows, size_t cols, size_t depth, const int64_t alpha, const int64_t *blockA, size_t lda, const int64_t *blockB, size_t ldb, int64_t *C, size_t ldc)
 
template<size_t k, bool transpose>
void pack_lhs (int64_t *XX, const int64_t *X, size_t ldx, size_t rows, size_t cols)
 
template<size_t k, bool transpose>
void pack_rhs (int64_t *XX, const int64_t *X, size_t ldx, size_t rows, size_t cols)
 
void gebp (size_t rows, size_t cols, size_t depth, int64_t *C, size_t ldc, const int64_t *blockA, size_t lda, const int64_t *BlockB, size_t ldb, int64_t *BlockW)
 
void BlockingFactor (size_t &m, size_t &n, size_t &k)
 

Function Documentation

◆ fadd() [1/5]

template<class Field , bool ADD>
std::enable_if< FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd ( const Field & F,
const size_t N,
typename Field::ConstElement_ptr A,
const size_t inca,
typename Field::ConstElement_ptr B,
const size_t incb,
typename Field::Element_ptr C,
const size_t incc,
FieldCategories::ModularTag  )

◆ fadd() [2/5]

template<class Field , bool ADD>
std::enable_if<!FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd ( const Field & F,
const size_t N,
typename Field::ConstElement_ptr A,
const size_t inca,
typename Field::ConstElement_ptr B,
const size_t incb,
typename Field::Element_ptr C,
const size_t incc,
FieldCategories::ModularTag  )

◆ fadd() [3/5]

template<class Field , bool ADD>
void fadd ( const Field & F,
const size_t N,
typename Field::ConstElement_ptr A,
const size_t inca,
typename Field::ConstElement_ptr B,
const size_t incb,
typename Field::Element_ptr C,
const size_t incc,
FieldCategories::GenericTag  )

◆ fadd() [4/5]

template<class Field , bool ADD>
std::enable_if<!FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd ( const Field & F,
const size_t N,
typename Field::ConstElement_ptr A,
const size_t inca,
typename Field::ConstElement_ptr B,
const size_t incb,
typename Field::Element_ptr C,
const size_t incc,
FieldCategories::UnparametricTag  )
inline

◆ fadd() [5/5]

template<class Field , bool ADD>
std::enable_if< FFLAS::support_simd_add< typenameField::Element >::value, void >::type fadd ( const Field & F,
const size_t N,
typename Field::ConstElement_ptr A,
const size_t inca,
typename Field::ConstElement_ptr B,
const size_t incb,
typename Field::Element_ptr C,
const size_t incc,
FieldCategories::UnparametricTag  )
inline

◆ faxpy() [1/2]

template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type faxpy ( const Field & F,
const size_t N,
const typename Field::Element a,
typename Field::ConstElement_ptr X,
const size_t incX,
typename Field::Element_ptr Y,
const size_t incY,
FieldCategories::ModularTag  )
inline

◆ faxpy() [2/2]

template<class Field , class FC >
void faxpy ( const Field & F,
const size_t N,
const typename Field::Element a,
typename Field::ConstElement_ptr X,
const size_t incX,
typename Field::Element_ptr Y,
const size_t incY,
FC  )
inline

◆ freduce() [1/4]

template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type freduce ( const Field & F,
const size_t m,
typename Field::Element_ptr A,
const size_t incX,
FieldCategories::ModularTag  )
inline

◆ freduce() [2/4]

template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type freduce ( const Field & F,
const size_t m,
typename Field::ConstElement_ptr B,
const size_t incY,
typename Field::Element_ptr A,
const size_t incX,
FieldCategories::ModularTag  )
inline

◆ freduce() [3/4]

template<class Field , class FC >
void freduce ( const Field & F,
const size_t m,
typename Field::Element_ptr A,
const size_t incX,
FC  )
inline

◆ freduce() [4/4]

template<class Field , class FC >
void freduce ( const Field & F,
const size_t m,
typename Field::ConstElement_ptr B,
const size_t incY,
typename Field::Element_ptr A,
const size_t incX,
FC  )
inline

◆ fscalin() [1/2]

template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type fscalin ( const Field & F,
const size_t N,
const typename Field::Element a,
typename Field::Element_ptr X,
const size_t incX,
FieldCategories::ModularTag  )
inline

◆ fscal() [1/2]

template<class Field >
std::enable_if< FFLAS::support_fast_mod< typenameField::Element >::value, void >::type fscal ( const Field & F,
const size_t N,
const typename Field::Element a,
typename Field::ConstElement_ptr X,
const size_t incX,
typename Field::Element_ptr Y,
const size_t incY,
FieldCategories::ModularTag  )
inline

◆ fscalin() [2/2]

template<class Field , class FC >
void fscalin ( const Field & F,
const size_t n,
const typename Field::Element a,
typename Field::Element_ptr X,
const size_t incX,
FC  )
inline

◆ fscal() [2/2]

template<class Field , class FC >
void fscal ( const Field & F,
const size_t N,
const typename Field::Element a,
typename Field::ConstElement_ptr X,
const size_t incX,
typename Field::Element_ptr Y,
const size_t incY,
FC  )
inline

◆ igebb44()

template<enum number_kind K>
void igebb44 ( size_t i,
size_t j,
size_t depth,
size_t pdeth,
const int64_t alpha,
const int64_t * blA,
const int64_t * blB,
int64_t * C,
size_t ldc )
inline

◆ igebb24()

template<enum number_kind K>
void igebb24 ( size_t i,
size_t j,
size_t depth,
size_t pdeth,
const int64_t alpha,
const int64_t * blA,
const int64_t * blB,
int64_t * C,
size_t ldc )
inline

◆ igebb14()

template<enum number_kind K>
void igebb14 ( size_t i,
size_t j,
size_t depth,
size_t pdeth,
const int64_t alpha,
const int64_t * blA,
const int64_t * blB,
int64_t * C,
size_t ldc )
inline

◆ igebb41()

template<enum number_kind K>
void igebb41 ( size_t i,
size_t j,
size_t depth,
size_t pdeth,
const int64_t alpha,
const int64_t * blA,
const int64_t * blB,
int64_t * C,
size_t ldc )
inline

bug ,B_0 dans VEC_MADD_32 ?

bug ,B_0 dans VEC_MADD_32 ?

◆ igebb21()

template<enum number_kind K>
void igebb21 ( size_t i,
size_t j,
size_t depth,
size_t pdeth,
const int64_t alpha,
const int64_t * blA,
const int64_t * blB,
int64_t * C,
size_t ldc )
inline

◆ igebb11()

template<enum number_kind K>
void igebb11 ( size_t i,
size_t j,
size_t depth,
size_t pdeth,
const int64_t alpha,
const int64_t * blA,
const int64_t * blB,
int64_t * C,
size_t ldc )
inline

◆ igebp()

template<enum number_kind K>
void igebp ( size_t rows,
size_t cols,
size_t depth,
const int64_t alpha,
const int64_t * blockA,
size_t lda,
const int64_t * blockB,
size_t ldb,
int64_t * C,
size_t ldc )

◆ pack_lhs()

template<size_t k, bool transpose>
void pack_lhs ( int64_t * XX,
const int64_t * X,
size_t ldx,
size_t rows,
size_t cols )
Bug
this is fassign
Bug
this is fassign
Bug
this is fassign
Bug
this is fassign

◆ pack_rhs()

template<size_t k, bool transpose>
void pack_rhs ( int64_t * XX,
const int64_t * X,
size_t ldx,
size_t rows,
size_t cols )
Bug
this is fassign
Bug
this is fassign
Bug
this is fassign
Bug
this is fassign

◆ gebp()

void gebp ( size_t rows,
size_t cols,
size_t depth,
int64_t * C,
size_t ldc,
const int64_t * blockA,
size_t lda,
const int64_t * BlockB,
size_t ldb,
int64_t * BlockW )

◆ BlockingFactor()

void BlockingFactor ( size_t & m,
size_t & n,
size_t & k )
inline