FflasFfpack
Data Structures | Functions
FFLAS::Protected Namespace Reference

Data Structures

class  AreEqual
class  AreEqual< X, X >

Functions

template<>
double computeFactorWino (const FFPACK::ModularBalanced< double > &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

double FFLAS::Protected::computeFactorWino ( const FFPACK::ModularBalanced< double > &  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:
See [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]