Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

FFLAS Class Reference
[linbox/fflas]

#include <fflas.h>

Inheritance diagram for FFLAS:

FFPACK List of all members.

Detailed Description

BLAS for matrices over finite fields.

@doc This class only provides a set of static member functions. No instantiation is allowed.


Public Types

typedef UnparametricField<
double > 
DoubleDomain
enum  FFLAS_TRANSPOSE { FflasNoTrans = 111, FflasTrans = 112 }
enum  FFLAS_UPLO { FflasUpper = 121, FflasLower = 122 }
enum  FFLAS_DIAG { FflasNonUnit = 131, FflasUnit = 132 }
enum  FFLAS_SIDE { FflasLeft = 141, FflasRight = 142 }

Static Public Methods

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 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 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 fscal (const Field &F, const size_t n, const typename Field::Element alpha, typename Field::Element *X, const size_t incX)
template<class Field> void fcopy (const Field &F, const size_t N, typename Field::Element *X, const size_t incX, const typename Field::Element *Y, const size_t incY)
template<class Field> void faxpy (const Field &F, const size_t N, const typename Field::Element a, const typename Field::Element *X, const size_t incX, typename Field::Element *Y, const size_t incY)
template<class Field> Field::Element fdot (const Field &F, const size_t N, const typename Field::Element *X, const size_t incX, const typename Field::Element *Y, const size_t incY)
template<class Field> void fswap (const Field &F, const size_t N, typename Field::Element *X, const size_t incX, typename Field::Element *Y, const size_t incY)
template<class Field> void fgemv (const Field &F, const enum 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 fger (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *x, const size_t incx, const typename Field::Element *y, const size_t incy, typename Field::Element *A, const size_t lda)
template<class Field> void ftrsv (const Field &F, const enum FFLAS_UPLO Uplo, const enum FFLAS_TRANSPOSE TransA, const enum FFLAS_DIAG Diag, const size_t N, const typename Field::Element *A, const size_t lda, typename Field::Element *X, int incX)
template<class Field> void ftrsm (const Field &F, const enum FFLAS_SIDE Side, const enum FFLAS_UPLO Uplo, const enum FFLAS_TRANSPOSE TransA, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrmm (const Field &F, const enum FFLAS_SIDE Side, const enum FFLAS_UPLO Uplo, const enum FFLAS_TRANSPOSE TransA, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> Field::Elementfgemm (const Field &F, const enum FFLAS_TRANSPOSE ta, const enum 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 winostep)
 Field GEneral Matrix Multiply.

template<class Field> Field::Elementfgemm (const Field &F, const enum FFLAS_TRANSPOSE ta, const enum 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)
template<class Field> Field::Elementfsquare (const Field &F, const enum FFLAS_TRANSPOSE ta, const size_t n, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, const typename Field::Element beta, typename Field::Element *C, const size_t ldc)

Protected Methods

 FFLAS ()

Static Protected Methods

template<class Field> size_t FflasKmax (const Field &F, const size_t w, const typename Field::Element beta)
template<class Field> void DynamicPealing (const Field &F, const enum FFLAS_TRANSPOSE ta, const enum 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)
template<class Field> void MatVectProd (const Field &F, const enum 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 enum FFLAS_TRANSPOSE ta, const enum 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)
template<class Field> void WinoCalc (const Field &F, const enum FFLAS_TRANSPOSE ta, const enum 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)
template<class Field> void WinoMain (const Field &F, const enum FFLAS_TRANSPOSE ta, const enum 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)
template<class Field> void ftrsmLeftUpNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrsmLeftUpTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrsmLeftLowNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb, const size_t nmax)
template<class Field> void ftrsmLeftLowTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrsmRightUpNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb, const size_t nmax)
template<class Field> void ftrsmRightUpTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrsmRightLowNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrsmRightLowTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrmmLeftUpNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrmmLeftUpTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrmmLeftLowNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb, const size_t nmax)
template<class Field> void ftrmmLeftLowTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrmmRightUpNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb, const size_t nmax)
template<class Field> void ftrmmRightUpTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)
template<class Field> void ftrmmRightLowNoTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb, const size_t nmax)
template<class Field> void ftrmmRightLowTrans (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb)


Member Typedef Documentation

typedef UnparametricField<double> DoubleDomain
 


Member Enumeration Documentation

enum FFLAS_DIAG
 

Enumeration values:
FflasNonUnit 
FflasUnit 

enum FFLAS_SIDE
 

Enumeration values:
FflasLeft 
FflasRight 

enum FFLAS_TRANSPOSE
 

Enumeration values:
FflasNoTrans 
FflasTrans 

enum FFLAS_UPLO
 

Enumeration values:
FflasUpper 
FflasLower 


Constructor & Destructor Documentation

FFLAS   [inline, protected]
 


Member Function Documentation

void ClassicMatmul const Field   F,
const enum FFLAS_TRANSPOSE    ta,
const enum 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
[static, protected]
 

void DynamicPealing const Field   F,
const enum FFLAS_TRANSPOSE    ta,
const enum 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, static, protected]
 

void faxpy const Field   F,
const size_t    N,
const typename Field::Element    a,
const typename Field::Element   X,
const size_t    incX,
typename Field::Element   Y,
const size_t    incY
[inline, static]
 

void fcopy const Field   F,
const size_t    N,
typename Field::Element   X,
const size_t    incX,
const typename Field::Element   Y,
const size_t    incY
[inline, static]
 

Field::Element fdot const Field   F,
const size_t    N,
const typename Field::Element   X,
const size_t    incX,
const typename Field::Element   Y,
const size_t    incY
[inline, static]
 

size_t FflasKmax const Field   F,
const size_t    w,
const typename Field::Element    beta
[inline, static, protected]
 

Field::Element* fgemm const Field   F,
const enum FFLAS_TRANSPOSE    ta,
const enum 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
[inline, static]
 

Field::Element * fgemm const Field   F,
const enum FFLAS_TRANSPOSE    ta,
const enum 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    winostep
[inline, static]
 

Field GEneral Matrix Multiply.

Computes C = alpha.op(A)*op(B) + beta.C , op(A) = A, AT Winograd's fast algorithm is used

void fgemv const Field   F,
const enum 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, static]
 

@doc fgemv: GEneral Matrix Vector multiplication

Computes Y <- alpha op(A).X + beta.Y \ A is m*n

void fger const Field   F,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   x,
const size_t    incx,
const typename Field::Element   y,
const size_t    incy,
typename Field::Element   A,
const size_t    lda
[inline, static]
 

@doc fger: GEneral ?

Computes A <- alpha x . y^T + A \ A is m*n, x and y are vectors of size m and n

void fscal const Field   F,
const size_t    n,
const typename Field::Element    alpha,
typename Field::Element   X,
const size_t    incX
[inline, static]
 

Field::Element * fsquare const Field   F,
const enum FFLAS_TRANSPOSE    ta,
const size_t    n,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
const typename Field::Element    beta,
typename Field::Element   C,
const size_t    ldc
[inline, static]
 

void fswap const Field   F,
const size_t    N,
typename Field::Element   X,
const size_t    incX,
typename Field::Element   Y,
const size_t    incY
[inline, static]
 

void ftrmm const Field   F,
const enum FFLAS_SIDE    Side,
const enum FFLAS_UPLO    Uplo,
const enum FFLAS_TRANSPOSE    TransA,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static]
 

void ftrmmLeftLowNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb,
const size_t    nmax
[inline, static, protected]
 

void ftrmmLeftLowTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrmmLeftUpNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrmmLeftUpTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrmmRightLowNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb,
const size_t    nmax
[inline, static, protected]
 

void ftrmmRightLowTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrmmRightUpNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb,
const size_t    nmax
[inline, static, protected]
 

void ftrmmRightUpTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrsm const Field   F,
const enum FFLAS_SIDE    Side,
const enum FFLAS_UPLO    Uplo,
const enum FFLAS_TRANSPOSE    TransA,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static]
 

void ftrsmLeftLowNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb,
const size_t    nmax
[inline, static, protected]
 

void ftrsmLeftLowTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrsmLeftUpNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrsmLeftUpTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrsmRightLowNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrsmRightLowTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrsmRightUpNoTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb,
const size_t    nmax
[inline, static, protected]
 

void ftrsmRightUpTrans const Field   F,
const enum FFLAS_DIAG    Diag,
const size_t    M,
const size_t    N,
const typename Field::Element    alpha,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   B,
const size_t    ldb
[inline, static, protected]
 

void ftrsv const Field   F,
const enum FFLAS_UPLO    Uplo,
const enum FFLAS_TRANSPOSE    TransA,
const enum FFLAS_DIAG    Diag,
const size_t    N,
const typename Field::Element   A,
const size_t    lda,
typename Field::Element   X,
int    incX
[inline, static]
 

@memo ftrsv: TRiangular System solve with Vector @doc Computes X <- op(A^-1).X\ size of X is m

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
[inline, static]
 

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
[inline, static]
 

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
[inline, static]
 

void MatVectProd const Field   F,
const enum 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, static, protected]
 

void WinoCalc const Field   F,
const enum FFLAS_TRANSPOSE    ta,
const enum 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
[inline, static, protected]
 

void WinoMain const Field   F,
const enum FFLAS_TRANSPOSE    ta,
const enum 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
[inline, static, protected]
 


Generated on Mon Jun 20 09:16:53 2005 for linbox by doxygen1.2.18