FflasFfpack
FFLAS::Protected Namespace Reference

Namespaces

namespace  Rec

Data Structures

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

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.
template<class Element>
size_t TRSMBound (const Givaro::Modular< Element > &F)
 Specialization for positive modular representation over double Computes nmax s.t.
template<class Element>
size_t TRSMBound (const Givaro::ModularBalanced< Element > &F)
 Specialization for balanced modular representation over double.
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.
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.
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]

template<class Field>
double computeFactorClassic ( const Field & F)
inline

◆ computeFactorClassic() [2/3]

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

◆ computeFactorClassic() [3/3]

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

◆ DotProdBoundClassic()

template<class Field>
size_t DotProdBoundClassic ( const Field & F,
const typename Field::Element & beta )
inline

◆ TRSMBound() [1/3]

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

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

Specialization for positive modular representation over double Computes nmax s.t.

(p-1)/2*(p^{nmax-1} + (p-2)^{nmax-1}) < 2^53 See [Dumas Giorgi Pernet 06, arXiv:cs/0601133] 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]

template<class Element>
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()

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

◆ NeedPreAddReduction() [1/2]

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

◆ NeedPreAddReduction() [2/2]

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

◆ NeedPreSubReduction() [1/2]

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

◆ NeedPreSubReduction() [2/2]

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

◆ NeedDoublePreAddReduction() [1/2]

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

◆ NeedDoublePreAddReduction() [2/2]

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

◆ ScalAndReduce() [1/3]

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

◆ ScalAndReduce() [2/3]

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

◆ fsquareCommon()

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

◆ WinogradThreshold() [1/4]

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

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

◆ WinogradThreshold() [3/4]

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

◆ WinogradThreshold() [4/4]

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

◆ WinogradSteps()

template<class Field>
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()

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

◆ DynamicPeeling2()

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

◆ WinogradCalc()

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

◆ fgemv_convert()

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

◆ fger_convert()

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

◆ fsyrk_convert()

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

◆ ScalAndReduce() [3/3]

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

◆ NeedPreScalReduction() [1/2]

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

◆ NeedPreScalReduction() [2/2]

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

◆ NeedPreAxpyReduction() [1/2]

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

◆ NeedPreAxpyReduction() [2/2]

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

◆ min_types() [1/7]

template<class DFE>
size_t min_types ( const DFE & k)
inline

◆ min_types() [2/7]

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

◆ min_types() [3/7]

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

◆ min_types() [4/7]

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

◆ min_types() [5/7]

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

◆ min_types() [6/7]

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

◆ min_types() [7/7]

template<>
size_t min_types ( const Givaro::Integer & k)
inline

◆ unfit() [1/4]

template<class T>
bool unfit ( T x)
inline

◆ unfit() [2/4]

template<>
bool unfit ( int64_t x)
inline

◆ unfit() [3/4]

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

◆ unfit() [4/4]

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

◆ igemm_colmajor() [1/2]

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 )

◆ igemm_colmajor() [2/2]

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 )

◆ 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.

◆ MatF2MatD_Triangular()

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 )

◆ MatF2MatFl_Triangular()

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

do finit(...,FFLAS_TRANS,FFLAS_DIAG)

do fconvert(...,FFLAS_TRANS,FFLAS_DIAG)

◆ gemm_bini_p()

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 )

◆ gemm_bini_e()

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 )

◆ gemm_compress()

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 )