FflasFfpack
Functions
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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

void freduce ( const Field F,
const size_t  m,
typename Field::Element_ptr  A,
const size_t  incX,
FC   
)
inline

◆ freduce() [4/4]

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]

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]

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]

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]

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

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

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

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

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

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

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

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

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

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