FflasFfpack
Data Structures | Functions
FFLAS::Protected Namespace Reference

Data Structures

class  AreEqual
class  AreEqual< X, X >

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.
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.
template<class Field >
double computeFactorWino (const Field &F, const size_t w)
 Internal function for the bound computation.
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.
template<class Field >
size_t TRSMBound (const Field &F)
 Computes the maximal size for delaying the modular reduction in a triangular system resolution.
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.
template<>
size_t TRSMBound (const FFPACK::Modular< float > &F)
 Specialization for positive modular representation over float.
template<>
size_t TRSMBound (const FFPACK::ModularBalanced< double > &F)
 Specialization for balanced modular representation over double.
template<>
size_t TRSMBound (const FFPACK::ModularBalanced< float > &F)
 Specialization for balanced modular representation over float Computes nmax s.t.
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