FflasFfpack
Data Structures | Functions
FFLAS::Protected Namespace Reference

Data Structures

class  AreEqual
 
class  AreEqual< X, X >
 
class  ftrsmLeftUpperNoTransNonUnit
 
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
 
class  faddmTrans
 
class  faddmNoTrans
 
class  fsubmTrans
 
class  fsubmNoTrans
 
class  faddmTransTrans
 
class  faddmNoTransTrans
 
class  faddmTransNoTrans
 
class  faddmNoTransNoTrans
 
class  fsubmTransTrans
 
class  fsubmNoTransTrans
 
class  fsubmTransNoTrans
 
class  fsubmNoTransNoTrans
 

Functions

template<class Field >
void MatF2MatD (const Field &F, DoubleDomain::Element *S, const size_t lds, const typename Field::Element *E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
void MatF2MatFl (const Field &F, FloatDomain::Element *S, const size_t lds, const typename Field::Element *E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
void MatF2MatD_Triangular (const Field &F, typename DoubleDomain::Element *S, const size_t lds, const typename Field::Element *const E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
void MatF2MatFl_Triangular (const Field &F, typename FloatDomain::Element *S, const size_t lds, const typename Field::Element *const E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
void MatD2MatF (const Field &F, typename Field::Element *S, const size_t lds, const typename DoubleDomain::Element *E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
void MatFl2MatF (const Field &F, typename Field::Element *S, const size_t lds, const typename FloatDomain::Element *E, const size_t lde, const size_t m, const size_t n)
 
template<class Field >
void MatMulParameters (const Field &F, const size_t k, const typename Field::Element &beta, size_t &delayedDim, FFLAS_BASE &base, size_t &winoRecLevel, bool winoLevelProvided=false)
 Computes the threshold parameters for the cascade Matmul algorithm. More...
 
template<class Field >
size_t DotProdBound (const Field &F, const size_t winoRecLevel, const typename Field::Element &beta, const FFLAS_BASE base)
 Computes the maximal size for delaying the modular reduction in a dotproduct. More...
 
template<class Field >
double computeFactorWino (const Field &F, const size_t w)
 Internal function for the bound computation. More...
 
template<class Field >
double computeFactorClassic (const Field &F)
 
template<class Field >
FFLAS_BASE BaseCompute (const Field &F, const size_t w)
 Determines the type of floating point representation to convert to, for BLAS computations. More...
 
template<class Field >
size_t TRSMBound (const Field &F)
 Computes the maximal size for delaying the modular reduction in a triangular system resolution. More...
 
template<class Field >
void DynamicPealing (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, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, const size_t)
 
template<class Field >
void MatVectProd (const Field &F, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, const typename Field::Element *X, const size_t incX, const typename Field::Element beta, typename Field::Element *Y, const size_t incY)
 
template<class Field >
void ClassicMatmul (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, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, const size_t kmax, const FFLAS_BASE base)
 
template<class Field >
void WinoCalc (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, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<class Field >
void WinoMain (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, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<class Field >
unsigned long Mantissa (const Field &F, const FFLAS_BASE base)
 
template<>
double computeFactorWino (const FFPACK::ModularBalanced< double > &F, const size_t w)
 
template<>
double computeFactorWino (const FFPACK::ModularBalanced< float > &F, const size_t w)
 
template<>
double computeFactorClassic (const FFPACK::ModularBalanced< double > &F)
 
template<>
FFLAS_BASE BaseCompute (const FFPACK::Modular< double > &, const size_t)
 
template<>
FFLAS_BASE BaseCompute (const FFPACK::Modular< float > &, const size_t)
 
template<>
FFLAS_BASE BaseCompute (const FFPACK::ModularBalanced< double > &, const size_t)
 
template<>
FFLAS_BASE BaseCompute (const FFPACK::ModularBalanced< float > &, const size_t)
 
template<>
size_t TRSMBound (const FFPACK::Modular< double > &F)
 Specialization for positive modular representation over double Computes nmax s.t. More...
 
template<>
size_t TRSMBound (const FFPACK::Modular< float > &F)
 Specialization for positive modular representation over float. More...
 
template<>
size_t TRSMBound (const FFPACK::ModularBalanced< double > &F)
 Specialization for balanced modular representation over double. More...
 
template<>
size_t TRSMBound (const FFPACK::ModularBalanced< float > &F)
 Specialization for balanced modular representation over float Computes nmax s.t. More...
 
template<>
void ClassicMatmul (const DoubleDomain &, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const DoubleDomain::Element alpha, const DoubleDomain::Element *Ad, const size_t lda, const DoubleDomain::Element *Bd, const size_t ldb, const DoubleDomain::Element beta, DoubleDomain::Element *Cd, const size_t ldc, const size_t kmax, const FFLAS_BASE base)
 
template<>
void ClassicMatmul (const FloatDomain &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const FloatDomain::Element alpha, const FloatDomain::Element *Ad, const size_t lda, const FloatDomain::Element *Bd, const size_t ldb, const FloatDomain::Element beta, FloatDomain::Element *Cd, const size_t ldc, const size_t kmax, const FFLAS_BASE base)
 
template<>
void ClassicMatmul (const FFPACK::ModularBalanced< double > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const double alpha, const double *A, const size_t lda, const double *B, const size_t ldb, const double beta, double *C, const size_t ldc, const size_t kmax, const FFLAS_BASE base)
 
template<>
void ClassicMatmul (const FFPACK::ModularBalanced< float > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const float alpha, const float *A, const size_t lda, const float *B, const size_t ldb, const float beta, float *C, const size_t ldc, const size_t kmax, const FFLAS_BASE base)
 
template<>
void ClassicMatmul (const FFPACK::Modular< double > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const double alpha, const double *A, const size_t lda, const double *B, const size_t ldb, const double beta, double *C, const size_t ldc, const size_t kmax, const FFLAS_BASE base)
 
template<>
void ClassicMatmul (const FFPACK::Modular< float > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const float alpha, const float *A, const size_t lda, const float *B, const size_t ldb, const float beta, float *C, const size_t ldc, const size_t kmax, const FFLAS_BASE base)
 
template<>
void WinoMain (const DoubleDomain &D, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const DoubleDomain::Element alpha, const DoubleDomain::Element *A, const size_t lda, const DoubleDomain::Element *B, const size_t ldb, const DoubleDomain::Element beta, DoubleDomain::Element *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<>
void WinoMain (const FloatDomain &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const FloatDomain::Element alpha, const FloatDomain::Element *A, const size_t lda, const FloatDomain::Element *B, const size_t ldb, const FloatDomain::Element beta, FloatDomain::Element *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<>
void WinoMain (const FFPACK::ModularBalanced< double > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const double alpha, const double *A, const size_t lda, const double *B, const size_t ldb, const double beta, double *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<>
void WinoMain (const FFPACK::ModularBalanced< float > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const float alpha, const float *A, const size_t lda, const float *B, const size_t ldb, const float beta, float *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<>
void WinoMain (const FFPACK::Modular< double > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const double alpha, const double *A, const size_t lda, const double *B, const size_t ldb, const double beta, double *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<>
void WinoMain (const FFPACK::Modular< float > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const float alpha, const float *A, const size_t lda, const float *B, const size_t ldb, const float beta, float *C, const size_t ldc, const size_t kmax, const size_t w, const FFLAS_BASE base)
 
template<>
void MatVectProd (const FFPACK::ModularBalanced< double > &F, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const double alpha, const double *A, const size_t lda, const double *X, const size_t incX, const double beta, double *Y, const size_t incY)
 
template<>
void MatVectProd (const FFPACK::ModularBalanced< float > &F, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const float alpha, const float *A, const size_t lda, const float *X, const size_t incX, const float beta, float *Y, const size_t incY)
 
template<>
void MatVectProd (const FFPACK::Modular< double > &F, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const double alpha, const double *A, const size_t lda, const double *X, const size_t incX, const double beta, double *Y, const size_t incY)
 
template<>
void MatVectProd (const FFPACK::Modular< float > &F, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const float alpha, const float *A, const size_t lda, const float *X, const size_t incX, const float beta, float *Y, const size_t incY)
 

Function Documentation

void FFLAS::Protected::MatF2MatD ( const Field F,
DoubleDomain::Element *  S,
const size_t  lds,
const typename Field::Element E,
const size_t  lde,
const size_t  m,
const size_t  n 
)
void FFLAS::Protected::MatF2MatFl ( const Field F,
FloatDomain::Element *  S,
const size_t  lds,
const typename Field::Element E,
const size_t  lde,
const size_t  m,
const size_t  n 
)
void FFLAS::Protected::MatF2MatD_Triangular ( const Field F,
typename DoubleDomain::Element *  S,
const size_t  lds,
const typename Field::Element *const  E,
const size_t  lde,
const size_t  m,
const size_t  n 
)
void FFLAS::Protected::MatF2MatFl_Triangular ( const Field F,
typename FloatDomain::Element *  S,
const size_t  lds,
const typename Field::Element *const  E,
const size_t  lde,
const size_t  m,
const size_t  n 
)
void FFLAS::Protected::MatD2MatF ( const Field F,
typename Field::Element S,
const size_t  lds,
const typename DoubleDomain::Element *  E,
const size_t  lde,
const size_t  m,
const size_t  n 
)
void FFLAS::Protected::MatFl2MatF ( const Field F,
typename Field::Element S,
const size_t  lds,
const typename FloatDomain::Element *  E,
const size_t  lde,
const size_t  m,
const size_t  n 
)
void MatMulParameters ( const Field F,
const size_t  k,
const typename Field::Element beta,
size_t &  delayedDim,
FFLAS_BASE &  base,
size_t &  winoRecLevel,
bool  winoLevelProvided = false 
)
inline

Computes the threshold parameters for the cascade Matmul algorithm.

MatMulParameters.

Parameters
FFinite Field/Ring of the computation.
kCommon dimension of A and B, in the product A x B
betaComputing $AB + \beta C$
delayedDimReturns the size of blocks that can be multiplied over Z with no overflow
baseReturns the type of BLAS representation to use
winoRecLevelReturns the number of recursion levels of Strassen-Winograd's algorithm to perform
winoLevelProvidedtells whether the user forced the number of recursive level of Winograd's algorithm
Bibliography:
  • Dumas, Giorgi, Pernet, arXiv cs/0601133 here

Computes the threshold parameters for the cascade Matmul algorithm

Parameters
FFinite Field/Ring of the computation.
kCommon dimension of A and B, in the product A x B
betComputing AB + beta C
delayedDimReturns the size of blocks that can be multiplied over Z with no overflow
baseReturns the type of BLAS representation to use
winoRecLevelReturns the number of recursion levels of Strassen-Winograd's algorithm to perform
winoLevelProvidedtells whether the user forced the number of recursive level of Winograd's algorithm
size_t DotProdBound ( const Field F,
const size_t  w,
const typename Field::Element beta,
const FFLAS_BASE  base 
)
inline

Computes the maximal size for delaying the modular reduction in a dotproduct.

DotProdBound computes the maximal size for delaying the modular reduction in a dotproduct.

This is the default version assuming a conversion to a positive modular representation

Parameters
FFinite Field/Ring of the computation
winoRecLevelNumber of recusrive Strassen-Winograd levels (if any, 0 otherwise)
betaComputing AB + beta C
baseType of floating point representation for delayed modular computations

This is the default version assuming a conversion to a positive modular representation

Parameters
FFinite Field/Ring of the computation
wNumber of recusrive Strassen-Winograd levels (if any, 0 otherwise)
betaComputing AB + beta C
baseType of floating point representation for delayed modular computations
double computeFactorWino ( const Field F,
const size_t  w 
)
inline

Internal function for the bound computation.

Internal function for the bound computation Generic implementation for positive representations.

Generic implementation for positive representations

double computeFactorClassic ( const Field F)
inline
FFLAS_BASE BaseCompute ( const Field F,
const size_t  w 
)
inline

Determines the type of floating point representation to convert to, for BLAS computations.

BaseCompute determines the type of floating point representation to convert to, for BLAS computations.

Parameters
FFinite Field/Ring of the computation
wNumber of recursive levels in Winograd's algorithm
size_t TRSMBound ( const Field F)
inline

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

TRSMBound.

Compute the maximal dimension k, such that a unit diagonal triangular system of dimension k can be solved over Z without overflow of the underlying floating point representation.

Bibliography:
  • Dumas, Giorgi, Pernet 06, arXiv:cs/0601133.
Parameters
FFinite Field/Ring of the computation

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
void DynamicPealing ( 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,
const typename Field::Element A,
const size_t  lda,
const typename Field::Element B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element C,
const size_t  ldc,
const size_t  kmax 
)
inline
void MatVectProd ( const Field F,
const FFLAS_TRANSPOSE  TransA,
const size_t  M,
const size_t  N,
const typename Field::Element  alpha,
const typename Field::Element A,
const size_t  lda,
const typename Field::Element X,
const size_t  incX,
const typename Field::Element  beta,
typename Field::Element Y,
const size_t  incY 
)
inline
void ClassicMatmul ( 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,
const typename Field::Element A,
const size_t  lda,
const typename Field::Element B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element C,
const size_t  ldc,
const size_t  kmax,
const FFLAS_BASE  base 
)
inline
void WinoCalc ( 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,
const typename Field::Element A,
const size_t  lda,
const typename Field::Element B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
void WinoMain ( 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,
const typename Field::Element A,
const size_t  lda,
const typename Field::Element B,
const size_t  ldb,
const typename Field::Element  beta,
typename Field::Element C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
unsigned long FFLAS::Protected::Mantissa ( const Field F,
const FFLAS_BASE  base 
)
double FFLAS::Protected::computeFactorWino ( const FFPACK::ModularBalanced< double > &  F,
const size_t  w 
)
inline
double FFLAS::Protected::computeFactorWino ( const FFPACK::ModularBalanced< float > &  F,
const size_t  w 
)
inline
double FFLAS::Protected::computeFactorClassic ( const FFPACK::ModularBalanced< double > &  F)
inline
FFLAS_BASE FFLAS::Protected::BaseCompute ( const FFPACK::Modular< double > &  ,
const size_t   
)
inline
FFLAS_BASE FFLAS::Protected::BaseCompute ( const FFPACK::Modular< float > &  ,
const size_t   
)
inline
FFLAS_BASE FFLAS::Protected::BaseCompute ( const FFPACK::ModularBalanced< double > &  ,
const size_t   
)
inline
FFLAS_BASE FFLAS::Protected::BaseCompute ( const FFPACK::ModularBalanced< float > &  ,
const size_t   
)
inline
size_t FFLAS::Protected::TRSMBound ( const FFPACK::Modular< double > &  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]

size_t FFLAS::Protected::TRSMBound ( const FFPACK::Modular< float > &  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 See [Dumas Giorgi Pernet 06, arXiv:cs/0601133]

size_t FFLAS::Protected::TRSMBound ( const FFPACK::ModularBalanced< double > &  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
size_t FFLAS::Protected::TRSMBound ( const FFPACK::ModularBalanced< float > &  F)
inline

Specialization for balanced modular representation over float Computes nmax s.t.

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

void FFLAS::Protected::ClassicMatmul ( const DoubleDomain &  ,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const DoubleDomain::Element  alpha,
const DoubleDomain::Element *  Ad,
const size_t  lda,
const DoubleDomain::Element *  Bd,
const size_t  ldb,
const DoubleDomain::Element  beta,
DoubleDomain::Element *  Cd,
const size_t  ldc,
const size_t  kmax,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::ClassicMatmul ( const FloatDomain &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const FloatDomain::Element  alpha,
const FloatDomain::Element *  Ad,
const size_t  lda,
const FloatDomain::Element *  Bd,
const size_t  ldb,
const FloatDomain::Element  beta,
FloatDomain::Element *  Cd,
const size_t  ldc,
const size_t  kmax,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::ClassicMatmul ( const FFPACK::ModularBalanced< double > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const double  alpha,
const double *  A,
const size_t  lda,
const double *  B,
const size_t  ldb,
const double  beta,
double *  C,
const size_t  ldc,
const size_t  kmax,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::ClassicMatmul ( const FFPACK::ModularBalanced< float > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const float  alpha,
const float *  A,
const size_t  lda,
const float *  B,
const size_t  ldb,
const float  beta,
float *  C,
const size_t  ldc,
const size_t  kmax,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::ClassicMatmul ( const FFPACK::Modular< double > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const double  alpha,
const double *  A,
const size_t  lda,
const double *  B,
const size_t  ldb,
const double  beta,
double *  C,
const size_t  ldc,
const size_t  kmax,
const FFLAS_BASE  base 
)
inline
Todo:
init only if remblock!=0 and _beta == 0
void FFLAS::Protected::ClassicMatmul ( const FFPACK::Modular< float > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const float  alpha,
const float *  A,
const size_t  lda,
const float *  B,
const size_t  ldb,
const float  beta,
float *  C,
const size_t  ldc,
const size_t  kmax,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::WinoMain ( const DoubleDomain &  D,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const DoubleDomain::Element  alpha,
const DoubleDomain::Element *  A,
const size_t  lda,
const DoubleDomain::Element *  B,
const size_t  ldb,
const DoubleDomain::Element  beta,
DoubleDomain::Element *  C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::WinoMain ( const FloatDomain &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const FloatDomain::Element  alpha,
const FloatDomain::Element *  A,
const size_t  lda,
const FloatDomain::Element *  B,
const size_t  ldb,
const FloatDomain::Element  beta,
FloatDomain::Element *  C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::WinoMain ( const FFPACK::ModularBalanced< double > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const double  alpha,
const double *  A,
const size_t  lda,
const double *  B,
const size_t  ldb,
const double  beta,
double *  C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::WinoMain ( const FFPACK::ModularBalanced< float > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const float  alpha,
const float *  A,
const size_t  lda,
const float *  B,
const size_t  ldb,
const float  beta,
float *  C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::WinoMain ( const FFPACK::Modular< double > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const double  alpha,
const double *  A,
const size_t  lda,
const double *  B,
const size_t  ldb,
const double  beta,
double *  C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::WinoMain ( const FFPACK::Modular< float > &  F,
const FFLAS_TRANSPOSE  ta,
const FFLAS_TRANSPOSE  tb,
const size_t  m,
const size_t  n,
const size_t  k,
const float  alpha,
const float *  A,
const size_t  lda,
const float *  B,
const size_t  ldb,
const float  beta,
float *  C,
const size_t  ldc,
const size_t  kmax,
const size_t  w,
const FFLAS_BASE  base 
)
inline
void FFLAS::Protected::MatVectProd ( const FFPACK::ModularBalanced< double > &  F,
const FFLAS_TRANSPOSE  TransA,
const size_t  M,
const size_t  N,
const double  alpha,
const double *  A,
const size_t  lda,
const double *  X,
const size_t  incX,
const double  beta,
double *  Y,
const size_t  incY 
)
inline
void FFLAS::Protected::MatVectProd ( const FFPACK::ModularBalanced< float > &  F,
const FFLAS_TRANSPOSE  TransA,
const size_t  M,
const size_t  N,
const float  alpha,
const float *  A,
const size_t  lda,
const float *  X,
const size_t  incX,
const float  beta,
float *  Y,
const size_t  incY 
)
inline
void FFLAS::Protected::MatVectProd ( const FFPACK::Modular< double > &  F,
const FFLAS_TRANSPOSE  TransA,
const size_t  M,
const size_t  N,
const double  alpha,
const double *  A,
const size_t  lda,
const double *  X,
const size_t  incX,
const double  beta,
double *  Y,
const size_t  incY 
)
inline
void FFLAS::Protected::MatVectProd ( const FFPACK::Modular< float > &  F,
const FFLAS_TRANSPOSE  TransA,
const size_t  M,
const size_t  N,
const float  alpha,
const float *  A,
const size_t  lda,
const float *  X,
const size_t  incX,
const float  beta,
float *  Y,
const size_t  incY 
)
inline