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

Namespaces

namespace  Rec
 

Data Structures

class  AreEqual
 
class  AreEqual< X, X >
 
class  ftrmmLeftLowerNoTransNonUnit
 
class  ftrmmLeftLowerNoTransUnit
 
class  ftrmmLeftLowerTransNonUnit
 
class  ftrmmLeftLowerTransUnit
 
class  ftrmmLeftUpperNoTransNonUnit
 
class  ftrmmLeftUpperNoTransUnit
 
class  ftrmmLeftUpperTransNonUnit
 
class  ftrmmLeftUpperTransUnit
 
class  ftrmmRightLowerNoTransNonUnit
 
class  ftrmmRightLowerNoTransUnit
 
class  ftrmmRightLowerTransNonUnit
 
class  ftrmmRightLowerTransUnit
 
class  ftrmmRightUpperNoTransNonUnit
 
class  ftrmmRightUpperNoTransUnit
 
class  ftrmmRightUpperTransNonUnit
 
class  ftrmmRightUpperTransUnit
 
class  ftrsmLeftLowerNoTransNonUnit
 
class  ftrsmLeftLowerNoTransUnit
 
class  ftrsmLeftLowerTransNonUnit
 
class  ftrsmLeftLowerTransUnit
 
class  ftrsmLeftUpperNoTransNonUnit
 Computes the maximal size for delaying the modular reduction in a triangular system resolution. More...
 
class  ftrsmLeftUpperNoTransUnit
 
class  ftrsmLeftUpperTransNonUnit
 
class  ftrsmLeftUpperTransUnit
 
class  ftrsmRightLowerNoTransNonUnit
 
class  ftrsmRightLowerNoTransUnit
 
class  ftrsmRightLowerTransNonUnit
 
class  ftrsmRightLowerTransUnit
 
class  ftrsmRightUpperNoTransNonUnit
 
class  ftrsmRightUpperNoTransUnit
 
class  ftrsmRightUpperTransNonUnit
 
class  ftrsmRightUpperTransUnit
 

Functions

template<class Field >
double computeFactorClassic (const Field &F)
 
template<>
double computeFactorClassic (const Givaro::ModularBalanced< double > &F)
 
template<>
double computeFactorClassic (const Givaro::ModularBalanced< float > &F)
 
template<class Field >
size_t DotProdBoundClassic (const Field &F, const typename Field::Element &beta)
 
template<class Field >
size_t TRSMBound (const Field &)
 TRSMBound. More...
 
template<class Element >
size_t TRSMBound (const Givaro::Modular< Element > &F)
 Specialization for positive modular representation over float. More...
 
template<class Element >
size_t TRSMBound (const Givaro::ModularBalanced< Element > &F)
 Specialization for balanced modular representation over double. More...
 
template<class NewField , class Field , class FieldMode >
Field::Element_ptr fgemm_convert (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &H)
 
template<class Field , class Element , class AlgoT , class ParSeqTrait >
bool NeedPreAddReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ModeT , class ParSeqTrait >
bool NeedPreAddReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ParSeqTrait >
bool NeedPreSubReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ModeT , class ParSeqTrait >
bool NeedPreSubReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ParSeqTrait >
bool NeedDoublePreAddReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, Element beta, MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ModeT , class ParSeqTrait >
bool NeedDoublePreAddReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, Element beta, MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &WH)
 
template<class Field , class AlgoT , class ParSeqTrait >
void ScalAndReduce (const Field &F, const size_t N, const typename Field::Element alpha, typename Field::Element_ptr X, const size_t incX, const MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &H)
 
template<class Field , class AlgoT , class ParSeqTrait >
void ScalAndReduce (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, const MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &H)
 
template<class Field >
Field::Element_ptr fsquareCommon (const Field &F, const FFLAS_TRANSPOSE ta, const size_t n, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc)
 
template<class Field >
int WinogradThreshold (const Field &F)
 Computes the number of recursive levels to perform. More...
 
template<>
int WinogradThreshold (const Givaro::Modular< float > &F)
 
template<>
int WinogradThreshold (const Givaro::ModularBalanced< double > &F)
 
template<>
int WinogradThreshold (const Givaro::ModularBalanced< float > &F)
 
template<class Field >
int WinogradSteps (const Field &F, const size_t &m)
 Computes the number of recursive levels to perform. More...
 
template<class Field , class FieldMode >
void DynamicPeeling (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const size_t mr, const size_t nr, const size_t kr, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &H, const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element Cmin, const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element Cmax)
 
template<class Field , class FieldMode >
void DynamicPeeling2 (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const size_t mr, const size_t nr, const size_t kr, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &H, const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element Cmin, const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element Cmax)
 
template<class Field , class FieldMode >
void WinogradCalc (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t mr, const size_t nr, const size_t kr, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &H)
 
template<typename FloatElement , class Field >
Field::Element_ptr fgemv_convert (const Field &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY)
 
template<class FloatElement , class Field >
void fger_convert (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element_ptr A, const size_t lda)
 
template<class NewField , class Field , class FieldMode >
Field::Element_ptr fsyrk_convert (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper< Field, MMHelperAlgo::Classic, FieldMode > &H)
 
template<class Field , class AlgoT , class ParSeqTrait >
void ScalAndReduce (const Field &F, const FFLAS_UPLO UpLo, const size_t N, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, const MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &H)
 
template<class Field , class Element , class AlgoT , class ParSeqTrait >
bool NeedPreScalReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, const Element &x, MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ModeT , class ParSeqTrait >
bool NeedPreScalReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, const Element &x, MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ParSeqTrait >
bool NeedPreAxpyReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, const Element &x, MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &WH)
 
template<class Field , class Element , class AlgoT , class ModeT , class ParSeqTrait >
bool NeedPreAxpyReduction (Element &Outmin, Element &Outmax, Element &Op1min, Element &Op1max, Element &Op2min, Element &Op2max, const Element &x, MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &WH)
 
template<class DFE >
size_t min_types (const DFE &k)
 
template<>
size_t min_types (const RecInt::rint< 6 > &k)
 
template<>
size_t min_types (const RecInt::rint< 7 > &k)
 
template<>
size_t min_types (const RecInt::rint< 8 > &k)
 
template<>
size_t min_types (const RecInt::rint< 9 > &k)
 
template<>
size_t min_types (const RecInt::rint< 10 > &k)
 
template<>
size_t min_types (const Givaro::Integer &k)
 
template<class T >
bool unfit (T x)
 
template<>
bool unfit (int64_t x)
 
template<size_t K>
bool unfit (RecInt::rint< K > x)
 
template<>
bool unfit (RecInt::rint< 6 > x)
 
template<enum FFLAS_TRANSPOSE tA, enum FFLAS_TRANSPOSE tB>
void igemm_colmajor (size_t rows, size_t cols, size_t depth, const int64_t alpha, const int64_t *A, size_t lda, const int64_t *B, size_t ldb, int64_t *C, size_t ldc)
 
template<enum FFLAS_TRANSPOSE tA, enum FFLAS_TRANSPOSE tB, enum number_kind alpha_kind>
void igemm_colmajor (size_t rows, size_t cols, size_t depth, const int64_t alpha, const int64_t *A, size_t lda, const int64_t *B, size_t ldb, int64_t *C, size_t ldc)
 
void igemm (const enum FFLAS_TRANSPOSE TransA, const enum FFLAS_TRANSPOSE TransB, size_t rows, size_t cols, size_t depth, const int64_t alpha, const int64_t *A, size_t lda, const int64_t *B, size_t ldb, const int64_t beta, int64_t *C, size_t ldc)
 
template<class Field >
void MatF2MatD_Triangular (const Field &F, Givaro::DoubleDomain::Element_ptr S, const size_t lds, typename Field::ConstElement_ptr const E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
void MatF2MatFl_Triangular (const Field &F, Givaro::FloatDomain::Element_ptr S, const size_t lds, typename Field::ConstElement_ptr const E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
Field::Element * gemm_bini_p (const Field &F, const size_t m, const size_t n, const size_t k, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc, int rec, size_t algo)
 
template<class Field >
Field::Element * gemm_bini_e (const Field &F, const size_t m, const size_t n, const size_t k, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc, int rec, size_t algo)
 
template<class Field >
Field::Element * gemm_compress (const Field &F, const size_t m, const size_t n, const size_t k, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc, int rec, size_t algo)
 

Function Documentation

◆ computeFactorClassic() [1/3]

double computeFactorClassic ( const Field F)
inline

◆ computeFactorClassic() [2/3]

double computeFactorClassic ( const Givaro::ModularBalanced< double > &  F)
inline

◆ computeFactorClassic() [3/3]

double computeFactorClassic ( const Givaro::ModularBalanced< float > &  F)
inline

◆ DotProdBoundClassic()

size_t DotProdBoundClassic ( const Field F,
const typename Field::Element &  beta 
)
inline

◆ TRSMBound() [1/3]

size_t TRSMBound ( const Field )
inline

TRSMBound.

computes the maximal size for delaying the modular reduction in a triangular system resolution

This is the default version over an arbitrary field. It is currently never used (the recursive algorithm is run until n=1 in this case)

Parameters
FFinite Field/Ring of the computation

◆ TRSMBound() [2/3]

size_t TRSMBound ( const Givaro::Modular< Element > &  F)
inline

Specialization for positive modular representation over float.

Computes nmax s.t. (p-1)/2*(p^{nmax-1} + (p-2)^{nmax-1}) < 2^24 @pbi See [Dumas Giorgi Pernet 06, arXiv:cs/0601133]

◆ TRSMBound() [3/3]

size_t TRSMBound ( const Givaro::ModularBalanced< Element > &  F)
inline

Specialization for balanced modular representation over double.

Computes nmax s.t. (p-1)/2*(((p+1)/2)^{nmax-1}) < 2^53

Bibliography:
  • Dumas Giorgi Pernet 06, arXiv:cs/0601133

◆ fgemm_convert()

Field::Element_ptr fgemm_convert ( const Field F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  A,
const size_t  lda,
typename Field::ConstElement_ptr  B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element_ptr  C,
const size_t  ldc,
MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &  H 
)
inline

◆ NeedPreAddReduction() [1/2]

bool NeedPreAddReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  WH 
)
inline

◆ NeedPreAddReduction() [2/2]

bool NeedPreAddReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &  WH 
)
inline

◆ NeedPreSubReduction() [1/2]

bool NeedPreSubReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  WH 
)
inline

◆ NeedPreSubReduction() [2/2]

bool NeedPreSubReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &  WH 
)
inline

◆ NeedDoublePreAddReduction() [1/2]

bool NeedDoublePreAddReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
Element  beta,
MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  WH 
)
inline

◆ NeedDoublePreAddReduction() [2/2]

bool NeedDoublePreAddReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
Element  beta,
MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &  WH 
)
inline

◆ ScalAndReduce() [1/3]

void ScalAndReduce ( const Field F,
const size_t  N,
const typename Field::Element  alpha,
typename Field::Element_ptr  X,
const size_t  incX,
const MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  H 
)
inline

◆ ScalAndReduce() [2/3]

void ScalAndReduce ( const Field F,
const size_t  M,
const size_t  N,
const typename Field::Element  alpha,
typename Field::Element_ptr  A,
const size_t  lda,
const MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  H 
)
inline

◆ fsquareCommon()

Field::Element_ptr fsquareCommon ( const Field F,
const FFLAS_TRANSPOSE  ta,
const size_t  n,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  A,
const size_t  lda,
const typename Field::Element  beta,
typename Field::Element_ptr  C,
const size_t  ldc 
)
inline

◆ WinogradThreshold() [1/4]

int WinogradThreshold ( const Field F)
inline

Computes the number of recursive levels to perform.

Parameters
mthe common dimension in the product AxB

◆ WinogradThreshold() [2/4]

int WinogradThreshold ( const Givaro::Modular< float > &  F)
inline

◆ WinogradThreshold() [3/4]

int WinogradThreshold ( const Givaro::ModularBalanced< double > &  F)
inline

◆ WinogradThreshold() [4/4]

int WinogradThreshold ( const Givaro::ModularBalanced< float > &  F)
inline

◆ WinogradSteps()

int WinogradSteps ( const Field F,
const size_t &  m 
)
inline

Computes the number of recursive levels to perform.

Parameters
mthe common dimension in the product AxB

◆ DynamicPeeling()

void DynamicPeeling ( const Field F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const size_t  mr,
const size_t  nr,
const size_t  kr,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  A,
const size_t  lda,
typename Field::ConstElement_ptr  B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element_ptr  C,
const size_t  ldc,
MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &  H,
const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element  Cmin,
const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element  Cmax 
)
inline

◆ DynamicPeeling2()

void DynamicPeeling2 ( const Field F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const size_t  mr,
const size_t  nr,
const size_t  kr,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  A,
const size_t  lda,
typename Field::ConstElement_ptr  B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element_ptr  C,
const size_t  ldc,
MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &  H,
const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element  Cmin,
const typename MMHelper< Field, MMHelperAlgo::Winograd, FieldMode >::DelayedField::Element  Cmax 
)
inline

◆ WinogradCalc()

void WinogradCalc ( const Field F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  mr,
const size_t  nr,
const size_t  kr,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  A,
const size_t  lda,
typename Field::ConstElement_ptr  B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element_ptr  C,
const size_t  ldc,
MMHelper< Field, MMHelperAlgo::Winograd, FieldMode > &  H 
)
inline

◆ fgemv_convert()

Field::Element_ptr fgemv_convert ( const Field F,
const FFLAS_TRANSPOSE  ta,
const size_t  M,
const size_t  N,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  A,
const size_t  lda,
typename Field::ConstElement_ptr  X,
const size_t  incX,
const typename Field::Element  beta,
typename Field::Element_ptr  Y,
const size_t  incY 
)
inline

◆ fger_convert()

void fger_convert ( const Field F,
const size_t  M,
const size_t  N,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  x,
const size_t  incx,
typename Field::ConstElement_ptr  y,
const size_t  incy,
typename Field::Element_ptr  A,
const size_t  lda 
)
inline

◆ fsyrk_convert()

Field::Element_ptr fsyrk_convert ( const Field F,
const FFLAS_UPLO  UpLo,
const FFLAS_TRANSPOSE  trans,
const size_t  N,
const size_t  K,
const typename Field::Element  alpha,
typename Field::ConstElement_ptr  A,
const size_t  lda,
const typename Field::Element  beta,
typename Field::Element_ptr  C,
const size_t  ldc,
MMHelper< Field, MMHelperAlgo::Classic, FieldMode > &  H 
)
inline

◆ ScalAndReduce() [3/3]

void ScalAndReduce ( const Field F,
const FFLAS_UPLO  UpLo,
const size_t  N,
const typename Field::Element  alpha,
typename Field::Element_ptr  A,
const size_t  lda,
const MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  H 
)
inline

◆ NeedPreScalReduction() [1/2]

bool NeedPreScalReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
const Element &  x,
MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  WH 
)
inline

◆ NeedPreScalReduction() [2/2]

bool NeedPreScalReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
const Element &  x,
MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &  WH 
)
inline

◆ NeedPreAxpyReduction() [1/2]

bool NeedPreAxpyReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
const Element &  x,
MMHelper< Field, AlgoT, ModeCategories::LazyTag, ParSeqTrait > &  WH 
)
inline

◆ NeedPreAxpyReduction() [2/2]

bool NeedPreAxpyReduction ( Element &  Outmin,
Element &  Outmax,
Element &  Op1min,
Element &  Op1max,
Element &  Op2min,
Element &  Op2max,
const Element &  x,
MMHelper< Field, AlgoT, ModeT, ParSeqTrait > &  WH 
)
inline

◆ min_types() [1/7]

size_t min_types ( const DFE &  k)
inline

◆ min_types() [2/7]

size_t min_types ( const RecInt::rint< 6 > &  k)
inline

◆ min_types() [3/7]

size_t min_types ( const RecInt::rint< 7 > &  k)
inline

◆ min_types() [4/7]

size_t min_types ( const RecInt::rint< 8 > &  k)
inline

◆ min_types() [5/7]

size_t min_types ( const RecInt::rint< 9 > &  k)
inline

◆ min_types() [6/7]

size_t min_types ( const RecInt::rint< 10 > &  k)
inline

◆ min_types() [7/7]

size_t min_types ( const Givaro::Integer &  k)
inline

◆ unfit() [1/4]

bool unfit ( x)
inline

◆ unfit() [2/4]

bool unfit ( int64_t  x)
inline

◆ unfit() [3/4]

bool unfit ( RecInt::rint< K >  x)
inline

◆ unfit() [4/4]

bool unfit ( RecInt::rint< 6 >  x)
inline

◆ igemm_colmajor() [1/2]

void igemm_colmajor ( size_t  rows,
size_t  cols,
size_t  depth,
const int64_t  alpha,
const int64_t *  A,
size_t  lda,
const int64_t *  B,
size_t  ldb,
int64_t *  C,
size_t  ldc 
)

◆ igemm_colmajor() [2/2]

void igemm_colmajor ( size_t  rows,
size_t  cols,
size_t  depth,
const int64_t  alpha,
const int64_t *  A,
size_t  lda,
const int64_t *  B,
size_t  ldb,
int64_t *  C,
size_t  ldc 
)

◆ igemm()

void igemm ( const enum FFLAS_TRANSPOSE  TransA,
const enum FFLAS_TRANSPOSE  TransB,
size_t  rows,
size_t  cols,
size_t  depth,
const int64_t  alpha,
const int64_t *  A,
size_t  lda,
const int64_t *  B,
size_t  ldb,
const int64_t  beta,
int64_t *  C,
size_t  ldc 
)
inline
Todo:
use primitive (no Field()) and specialise for int64.
Todo:
use primitive (no Field()) and specialise for int64.

◆ MatF2MatD_Triangular()

void MatF2MatD_Triangular ( const Field F,
Givaro::DoubleDomain::Element_ptr  S,
const size_t  lds,
typename Field::ConstElement_ptr const  E,
const size_t  lde,
const size_t  m,
const size_t  n 
)

◆ MatF2MatFl_Triangular()

void MatF2MatFl_Triangular ( const Field F,
Givaro::FloatDomain::Element_ptr  S,
const size_t  lds,
typename Field::ConstElement_ptr const  E,
const size_t  lde,
const size_t  m,
const size_t  n 
)
Todo:

do finit(...,FFLAS_TRANS,FFLAS_DIAG)

do fconvert(...,FFLAS_TRANS,FFLAS_DIAG)

◆ gemm_bini_p()

Field::Element * gemm_bini_p ( const Field F,
const size_t  m,
const size_t  n,
const size_t  k,
const typename Field::Element *  A,
const size_t  lda,
const typename Field::Element *  B,
const size_t  ldb,
typename Field::Element *  C,
const size_t  ldc,
int  rec,
size_t  algo 
)

◆ gemm_bini_e()

Field::Element * gemm_bini_e ( const Field F,
const size_t  m,
const size_t  n,
const size_t  k,
const typename Field::Element *  A,
const size_t  lda,
const typename Field::Element *  B,
const size_t  ldb,
typename Field::Element *  C,
const size_t  ldc,
int  rec,
size_t  algo 
)

◆ gemm_compress()

Field::Element * gemm_compress ( const Field F,
const size_t  m,
const size_t  n,
const size_t  k,
const typename Field::Element *  A,
const size_t  lda,
const typename Field::Element *  B,
const size_t  ldb,
typename Field::Element *  C,
const size_t  ldc,
int  rec,
size_t  algo 
)