|
FflasFfpack
|
FFLAS: Finite Field Linear Algebra Subroutines. More...
Namespaces | |
| namespace | Protected |
Typedefs | |
| typedef FFPACK::UnparametricField < float > | FloatDomain |
| typedef FFPACK::UnparametricField < double > | DoubleDomain |
Enumerations | |
| enum | FFLAS_TRANSPOSE { FflasNoTrans = 111, FflasTrans = 112 } |
| Is matrix transposed ? More... | |
| enum | FFLAS_UPLO { FflasUpper = 121, FflasLower = 122 } |
| Is triangular matrix's shape upper ? More... | |
| enum | FFLAS_DIAG { FflasNonUnit = 131, FflasUnit = 132 } |
| Is Matrix diagonal implicit ? More... | |
| enum | FFLAS_SIDE { FflasLeft = 141, FflasRight = 142 } |
| On what side ? More... | |
| enum | FFLAS_BASE { FflasDouble = 151, FflasFloat = 152, FflasGeneric = 153 } |
FFLAS_BASE determines the type of the element representation for Matrix Mult kernel. More... | |
Functions | |
| template<class Field > | |
| void | fzero (const Field &F, const size_t n, typename Field::Element *X, const size_t incX) |
fzero : . | |
| 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) |
fscal . | |
| 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) |
fcopy : . | |
| template<class Field > | |
| void | faxpy (const Field &F, const size_t N, const typename Field::Element alpha, const typename Field::Element *X, const size_t incX, typename Field::Element *Y, const size_t incY) |
faxpy : . | |
| 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) |
fdot: dot product . | |
| 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) |
fswap: . | |
| template<class Field > | |
| void | fcopy (const Field &F, const size_t m, const size_t n, typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb) |
fcopy : . | |
| template<class Field > | |
| void | fzero (const Field &F, const size_t m, const size_t n, typename Field::Element *A, const size_t lda) |
fzero : . | |
| template<class Field > | |
| void | fmove (const Field &F, const size_t m, const size_t n, typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb) |
fmove : and . | |
| template<class Field > | |
| void | fadd (const Field &F, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc) |
| fadd : matrix addition. | |
| template<class Field > | |
| void | fsub (const Field &F, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc) |
| fsub : matrix subtraction. | |
| template<class Field > | |
| void | fsubin (const Field &F, const size_t M, const size_t N, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc) |
| template<class Field > | |
| void | faddin (const Field &F, const size_t M, const size_t N, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc) |
| template<class Field > | |
| void | fgemv (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) |
| finite prime Field GEneral Matrix Vector multiplication. | |
| 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) |
| fger: GEneral ? | |
| template<class Field > | |
| void | ftrsv (const Field &F, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t N, const typename Field::Element *A, const size_t lda, typename Field::Element *X, int incX) |
ftrsv: TRiangular System solve with Vector Computes | |
| template<class Field > | |
| void | ftrsm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const 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) |
| ftrsm: TRiangular System solve with Matrix. | |
| template<class Field > | |
| void | ftrmm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const 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) |
| ftrmm: TRiangular Matrix Multiply. | |
| template<class Field > | |
| Field::Element * | fgemm (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 w) |
| fgemm: Field GEneral Matrix Multiply. | |
| template<class Field > | |
| Field::Element * | fgemm (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) |
| fgemm: Field GEneral Matrix Multiply. | |
| template<class Field > | |
| Field::Element * | fsquare (const Field &F, const 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) |
| fsquare: Squares a matrix. | |
| template<class Field > | |
| void | faddm (const Field &F, const FFLAS_TRANSPOSE transA, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb) |
| faddm A <- A+op(B) with op(B) = B or B^T | |
| template<class Field > | |
| void | faddm (const Field &F, const FFLAS_TRANSPOSE transA, const FFLAS_TRANSPOSE transB, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc) |
| faddm C <- op(A)+op(B) with op(B) = B or B^T | |
| template<class Field > | |
| void | fsubm (const Field &F, const FFLAS_TRANSPOSE transA, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda, typename Field::Element *B, const size_t ldb) |
| fsubm A <- A-op(B) with op(B) = B or B^T | |
| template<class Field > | |
| void | fsubm (const Field &F, const FFLAS_TRANSPOSE transA, const FFLAS_TRANSPOSE transB, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda, const typename Field::Element *B, const size_t ldb, typename Field::Element *C, const size_t ldc) |
| fsubm C <- op(A)-op(B) with op(B) = B or B^T | |
| template<class Field > | |
| Field::Element * | MatCopy (const Field &F, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda) |
| MatCopy makes a copy of the matrix M into a new allocated space. | |
| size_t | WinoSteps (const size_t m) |
| Winosteps. | |
| template<> | |
| void | faxpy (const DoubleDomain &, const size_t N, const DoubleDomain::Element a, const DoubleDomain::Element *x, const size_t incx, DoubleDomain::Element *y, const size_t incy) |
| template<> | |
| DoubleDomain::Element | fdot (const DoubleDomain &, const size_t N, const DoubleDomain::Element *x, const size_t incx, const DoubleDomain::Element *y, const size_t incy) |
| template<> | |
| double * | fgemm< FFPACK::UnparametricField< double > > (const FFPACK::UnparametricField< 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 w) |
| template<> | |
| float * | fgemm< FFPACK::UnparametricField< float > > (const FFPACK::UnparametricField< 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 w) |
| template<> | |
| double * | fgemm< FFPACK::UnparametricField< double > > (const FFPACK::UnparametricField< 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) |
| template<> | |
| float * | fgemm< FFPACK::UnparametricField< float > > (const FFPACK::UnparametricField< 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) |
| template<> | |
| double * | fsquare (const FFPACK::ModularBalanced< double > &F, const FFLAS_TRANSPOSE ta, const size_t n, const double alpha, const double *A, const size_t lda, const double beta, double *C, const size_t ldc) |
| template<> | |
| float * | fsquare (const FFPACK::ModularBalanced< float > &F, const FFLAS_TRANSPOSE ta, const size_t n, const float alpha, const float *A, const size_t lda, const float beta, float *C, const size_t ldc) |
| template<> | |
| double * | fsquare (const FFPACK::Modular< double > &F, const FFLAS_TRANSPOSE ta, const size_t n, const double alpha, const double *A, const size_t lda, const double beta, double *C, const size_t ldc) |
| template<> | |
| float * | fsquare (const FFPACK::Modular< float > &F, const FFLAS_TRANSPOSE ta, const size_t n, const float alpha, const float *A, const size_t lda, const float beta, float *C, const size_t ldc) |
| template<> | |
| void | fgemv (const DoubleDomain &, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const DoubleDomain::Element alpha, const DoubleDomain::Element *A, const size_t lda, const DoubleDomain::Element *X, const size_t incX, const DoubleDomain::Element beta, DoubleDomain::Element *Y, const size_t incY) |
| template<> | |
| void | fgemv (const FloatDomain &, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const FloatDomain::Element alpha, const FloatDomain::Element *A, const size_t lda, const FloatDomain::Element *X, const size_t incX, const FloatDomain::Element beta, FloatDomain::Element *Y, const size_t incY) |
| template<> | |
| void | fger (const DoubleDomain &, const size_t M, const size_t N, const DoubleDomain::Element alpha, const DoubleDomain::Element *x, const size_t incx, const DoubleDomain::Element *y, const size_t incy, DoubleDomain::Element *A, const size_t lda) |
FFLAS: Finite Field Linear Algebra Subroutines.
| typedef FFPACK::UnparametricField<float> FloatDomain |
| typedef FFPACK::UnparametricField<double> DoubleDomain |
| enum FFLAS_TRANSPOSE |
| enum FFLAS_UPLO |
| enum FFLAS_DIAG |
| enum FFLAS_SIDE |
| enum FFLAS_BASE |
| void FFLAS::fzero | ( | const Field & | F, |
| const size_t | n, | ||
| typename Field::Element * | X, | ||
| const size_t | incX | ||
| ) |
fzero :
.
| F | field |
| n | number of elements to zero |
| X | vector in F |
| incX | stride of X |
| void FFLAS::fscal | ( | const Field & | F, |
| const size_t | n, | ||
| const typename Field::Element | alpha, | ||
| typename Field::Element * | X, | ||
| const size_t | incX | ||
| ) |
fscal
.
| F | field |
| n | size of the vectors |
| alpha | homotéti scalar |
| X | vector in F |
| incX | stride of X |
| 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] |
fcopy :
.
| F | field |
| N | size of the vectors |
| X | vector in F |
| incX | stride of X |
| Y | vector in F |
| incY | stride of Y |
| void faxpy | ( | const Field & | F, |
| const size_t | N, | ||
| const typename Field::Element | alpha, | ||
| const typename Field::Element * | X, | ||
| const size_t | incX, | ||
| typename Field::Element * | Y, | ||
| const size_t | incY | ||
| ) | [inline] |
faxpy :
.
| F | field |
| N | size of the vectors |
| alpha | scalar |
| X | vector in F |
| incX | stride of X |
| Y | vector in F |
| incY | stride of Y |
| 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] |
fdot: dot product
.
| F | field |
| N | size of the vectors |
| X | vector in F |
| incX | stride of X |
| Y | vector in F |
| incY | stride of Y |
| void FFLAS::fswap | ( | const Field & | F, |
| const size_t | N, | ||
| typename Field::Element * | X, | ||
| const size_t | incX, | ||
| typename Field::Element * | Y, | ||
| const size_t | incY | ||
| ) |
fswap:
.
| F | field |
| N | size of the vectors |
| X | vector in F |
| incX | stride of X |
| Y | vector in F |
| incY | stride of Y |
| void fcopy | ( | const Field & | F, |
| const size_t | m, | ||
| const size_t | n, | ||
| typename Field::Element * | A, | ||
| const size_t | lda, | ||
| const typename Field::Element * | B, | ||
| const size_t | ldb | ||
| ) |
fcopy :
.
| F | field |
| m | number of rows to copy |
| n | number of cols to copy |
| A | matrix in F |
| lda | stride of A |
| B | vector in F |
| ldb | stride of B |
| void FFLAS::fzero | ( | const Field & | F, |
| const size_t | m, | ||
| const size_t | n, | ||
| typename Field::Element * | A, | ||
| const size_t | lda | ||
| ) |
fzero :
.
| F | field |
| m | number of rows to zero |
| n | number of cols to zero |
| A | matrix in F |
| lda | stride of A |
| void FFLAS::fmove | ( | const Field & | F, |
| const size_t | m, | ||
| const size_t | n, | ||
| typename Field::Element * | A, | ||
| const size_t | lda, | ||
| typename Field::Element * | B, | ||
| const size_t | ldb | ||
| ) |
fmove :
and
.
| F | field |
| m | number of rows to copy |
| n | number of cols to copy |
| A | matrix in F |
| lda | stride of A |
| B | vector in F |
| ldb | stride of B |
| void FFLAS::fadd | ( | const Field & | F, |
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda, | ||
| const typename Field::Element * | B, | ||
| const size_t | ldb, | ||
| typename Field::Element * | C, | ||
| const size_t | ldc | ||
| ) |
fadd : matrix addition.
Computes C = A + B.
| F | field |
| M | rows |
| N | cols |
| A | dense matrix of size MxN |
| lda | leading dimension of A |
| B | dense matrix of size MxN |
| ldb | leading dimension of B |
| C | dense matrix of size MxN |
| ldc | leading dimension of C |
| void FFLAS::fsub | ( | const Field & | F, |
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda, | ||
| const typename Field::Element * | B, | ||
| const size_t | ldb, | ||
| typename Field::Element * | C, | ||
| const size_t | ldc | ||
| ) |
fsub : matrix subtraction.
Computes C = A - B.
| F | field |
| M | rows |
| N | cols |
| A | dense matrix of size MxN |
| lda | leading dimension of A |
| B | dense matrix of size MxN |
| ldb | leading dimension of B |
| C | dense matrix of size MxN |
| ldc | leading dimension of C |
| void FFLAS::fsubin | ( | const Field & | F, |
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | B, | ||
| const size_t | ldb, | ||
| typename Field::Element * | C, | ||
| const size_t | ldc | ||
| ) |
| void FFLAS::faddin | ( | const Field & | F, |
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | B, | ||
| const size_t | ldb, | ||
| typename Field::Element * | C, | ||
| const size_t | ldc | ||
| ) |
| void fgemv | ( | 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] |
finite prime Field GEneral Matrix Vector multiplication.
Computes
.
| F | field | |
| TransA | if TransA==FflasTrans then . | |
| M | rows | |
| N | cols | |
| alpha | scalar | |
| A | dense matrix of size MxN | |
| lda | leading dimension of A | |
| X | dense vector of size N | |
| incX | stride of X | |
| beta | scalar | |
| [out] | Y | dense vector of size M |
| incY | stride of Y |
| 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] |
fger: GEneral ?
Computes
| F | field | |
| M | rows | |
| N | cols | |
| alpha | scalar | |
| [in,out] | A | dense matrix of size MxN and leading dimension lda |
| lda | leading dimension of A | |
| x | dense vector of size M | |
| incx | stride of X | |
| y | dense vector of size N | |
| incy | stride of Y |
| void ftrsv | ( | const Field & | F, |
| const FFLAS_UPLO | Uplo, | ||
| const FFLAS_TRANSPOSE | TransA, | ||
| const FFLAS_DIAG | Diag, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda, | ||
| typename Field::Element * | X, | ||
| int | incX | ||
| ) | [inline] |
ftrsv: TRiangular System solve with Vector Computes
| F | field |
| X | vector of size N on a field F |
| incX | stride of X |
| A | a matrix of leading dimension lda and size N |
| lda | leading dimension of A |
| N | number of rows or columns of A according to TransA |
| TransA | if TransA==FflasTrans then . |
| Diag | if Diag==FflasUnit then A is unit. |
| Uplo | if Uplo==FflasUpper then A is upper triangular |
| void ftrsm | ( | const Field & | F, |
| const FFLAS_SIDE | Side, | ||
| const FFLAS_UPLO | Uplo, | ||
| const FFLAS_TRANSPOSE | TransA, | ||
| const 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] |
ftrsm: TRiangular System solve with Matrix.
Computes
or
.
| F | field |
| Side | if Side==FflasLeft then is computed. |
| Uplo | if Uplo==FflasUpper then A is upper triangular |
| TransA | if TransA==FflasTrans then . |
| Diag | if Diag==FflasUnit then A is unit. |
| M | rows of B |
| N | cols of B |
| alpha | scalar |
| A | triangular invertible matrix. If Side==FflasLeft then A is , otherwise A is |
| lda | leading dim of A |
| B | matrix of size MxN |
| ldb | leading dim of B |
unsafe with Trans==FflasTrans (debugging in progress)
must be non zero.
| void ftrmm | ( | const Field & | F, |
| const FFLAS_SIDE | Side, | ||
| const FFLAS_UPLO | Uplo, | ||
| const FFLAS_TRANSPOSE | TransA, | ||
| const 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] |
ftrmm: TRiangular Matrix Multiply.
Computes
or
.
| F | field |
| Side | if Side==FflasLeft then is computed. |
| Uplo | if Uplo==FflasUpper then A is upper triangular |
| TransA | if TransA==FflasTrans then . |
| Diag | if Diag==FflasUnit then A is implicitly unit. |
| M | rows of B |
| N | cols of B |
| alpha | scalar |
| A | triangular matrix. If Side==FflasLeft then A is , otherwise A is |
| lda | leading dim of A |
| B | matrix of size MxN |
| ldb | leading dim of B |
Trans==FflasTrans (debugging in progress) | Field::Element* FFLAS::fgemm | ( | 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 | w | ||
| ) |
fgemm: Field GEneral Matrix Multiply.
Computes
| F | field. |
| ta | if ta==FflasTrans then , else , |
| tb | same for B |
| m | see A |
| k | see A |
| n | see B |
| alpha | scalar |
| beta | scalar |
| A | is |
| B | is |
| C | is |
| lda | leading dimension of A |
| ldb | leading dimension of B |
| ldc | leading dimension of C |
| w | recursive levels of Winograd's algorithm are used |
must be invertible | Field::Element* FFLAS::fgemm | ( | 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 | ||
| ) |
fgemm: Field GEneral Matrix Multiply.
Computes
. Automatically set Winograd recursion level
| F | field. |
| ta | if ta==FflasTrans then , else , |
| tb | same for matrix B |
| m | see A |
| k | see A |
| n | see B |
| alpha | scalar |
| beta | scalar |
| A | is |
| B | is |
| C | is |
| lda | leading dimension of A |
| ldb | leading dimension of B |
| ldc | leading dimension of C |
must be invertible | Field::Element * fsquare | ( | const Field & | F, |
| const 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] |
fsquare: Squares a matrix.
compute
over a Field F Avoid the conversion of B
| ta | if ta==FflasTrans, . |
| F | field |
| n | size of A |
| alpha | scalar |
| beta | scalar |
| A | dense matrix of size nxn |
| lda | leading dimension of A |
| C | dense matrix of size nxn |
| ldc | leading dimension of C |
| void faddm | ( | const Field & | F, |
| const FFLAS_TRANSPOSE | transA, | ||
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda, | ||
| typename Field::Element * | B, | ||
| const size_t | ldb | ||
| ) | [inline] |
faddm A <- A+op(B) with op(B) = B or B^T
| void faddm | ( | const Field & | F, |
| const FFLAS_TRANSPOSE | transA, | ||
| const FFLAS_TRANSPOSE | transB, | ||
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda, | ||
| const typename Field::Element * | B, | ||
| const size_t | ldb, | ||
| typename Field::Element * | C, | ||
| const size_t | ldc | ||
| ) | [inline] |
faddm C <- op(A)+op(B) with op(B) = B or B^T
| void fsubm | ( | const Field & | F, |
| const FFLAS_TRANSPOSE | transA, | ||
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda, | ||
| typename Field::Element * | B, | ||
| const size_t | ldb | ||
| ) | [inline] |
fsubm A <- A-op(B) with op(B) = B or B^T
| void fsubm | ( | const Field & | F, |
| const FFLAS_TRANSPOSE | transA, | ||
| const FFLAS_TRANSPOSE | transB, | ||
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda, | ||
| const typename Field::Element * | B, | ||
| const size_t | ldb, | ||
| typename Field::Element * | C, | ||
| const size_t | ldc | ||
| ) | [inline] |
fsubm C <- op(A)-op(B) with op(B) = B or B^T
| Field::Element* FFLAS::MatCopy | ( | const Field & | F, |
| const size_t | M, | ||
| const size_t | N, | ||
| const typename Field::Element * | A, | ||
| const size_t | lda | ||
| ) |
MatCopy makes a copy of the matrix M into a new allocated space.
| F | field |
| M | rows of A |
| N | cols of A |
| A | matrix to be copied |
| lda | leading dimension of A |
C of A with stride N A and C belong to the same field. | size_t WinoSteps | ( | const size_t | m | ) | [inline] |
Winosteps.
WinoSteps computes the number of recursive levels to perform.
Computes the number of recursive levels to perform
| m | the common dimension in the product AxB |
| m | the common dimension in the product AxB |
| void FFLAS::faxpy | ( | const DoubleDomain & | , |
| const size_t | N, | ||
| const DoubleDomain::Element | a, | ||
| const DoubleDomain::Element * | x, | ||
| const size_t | incx, | ||
| DoubleDomain::Element * | y, | ||
| const size_t | incy | ||
| ) | [inline] |
| DoubleDomain::Element FFLAS::fdot | ( | const DoubleDomain & | , |
| const size_t | N, | ||
| const DoubleDomain::Element * | x, | ||
| const size_t | incx, | ||
| const DoubleDomain::Element * | y, | ||
| const size_t | incy | ||
| ) | [inline] |
| double* FFLAS::fgemm< FFPACK::UnparametricField< double > > | ( | const FFPACK::UnparametricField< 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 | w | ||
| ) | [inline] |
| float* FFLAS::fgemm< FFPACK::UnparametricField< float > > | ( | const FFPACK::UnparametricField< 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 | w | ||
| ) | [inline] |
| double* FFLAS::fgemm< FFPACK::UnparametricField< double > > | ( | const FFPACK::UnparametricField< 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 | ||
| ) | [inline] |
| float* FFLAS::fgemm< FFPACK::UnparametricField< float > > | ( | const FFPACK::UnparametricField< 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 | ||
| ) | [inline] |
| double* FFLAS::fsquare | ( | const FFPACK::ModularBalanced< double > & | F, |
| const FFLAS_TRANSPOSE | ta, | ||
| const size_t | n, | ||
| const double | alpha, | ||
| const double * | A, | ||
| const size_t | lda, | ||
| const double | beta, | ||
| double * | C, | ||
| const size_t | ldc | ||
| ) | [inline] |
| float* FFLAS::fsquare | ( | const FFPACK::ModularBalanced< float > & | F, |
| const FFLAS_TRANSPOSE | ta, | ||
| const size_t | n, | ||
| const float | alpha, | ||
| const float * | A, | ||
| const size_t | lda, | ||
| const float | beta, | ||
| float * | C, | ||
| const size_t | ldc | ||
| ) | [inline] |
| double* FFLAS::fsquare | ( | const FFPACK::Modular< double > & | F, |
| const FFLAS_TRANSPOSE | ta, | ||
| const size_t | n, | ||
| const double | alpha, | ||
| const double * | A, | ||
| const size_t | lda, | ||
| const double | beta, | ||
| double * | C, | ||
| const size_t | ldc | ||
| ) | [inline] |
| float* FFLAS::fsquare | ( | const FFPACK::Modular< float > & | F, |
| const FFLAS_TRANSPOSE | ta, | ||
| const size_t | n, | ||
| const float | alpha, | ||
| const float * | A, | ||
| const size_t | lda, | ||
| const float | beta, | ||
| float * | C, | ||
| const size_t | ldc | ||
| ) | [inline] |
| void FFLAS::fgemv | ( | const DoubleDomain & | , |
| const FFLAS_TRANSPOSE | TransA, | ||
| const size_t | M, | ||
| const size_t | N, | ||
| const DoubleDomain::Element | alpha, | ||
| const DoubleDomain::Element * | A, | ||
| const size_t | lda, | ||
| const DoubleDomain::Element * | X, | ||
| const size_t | incX, | ||
| const DoubleDomain::Element | beta, | ||
| DoubleDomain::Element * | Y, | ||
| const size_t | incY | ||
| ) | [inline] |
| void FFLAS::fgemv | ( | const FloatDomain & | , |
| const FFLAS_TRANSPOSE | TransA, | ||
| const size_t | M, | ||
| const size_t | N, | ||
| const FloatDomain::Element | alpha, | ||
| const FloatDomain::Element * | A, | ||
| const size_t | lda, | ||
| const FloatDomain::Element * | X, | ||
| const size_t | incX, | ||
| const FloatDomain::Element | beta, | ||
| FloatDomain::Element * | Y, | ||
| const size_t | incY | ||
| ) | [inline] |
| void FFLAS::fger | ( | const DoubleDomain & | , |
| const size_t | M, | ||
| const size_t | N, | ||
| const DoubleDomain::Element | alpha, | ||
| const DoubleDomain::Element * | x, | ||
| const size_t | incx, | ||
| const DoubleDomain::Element * | y, | ||
| const size_t | incy, | ||
| DoubleDomain::Element * | A, | ||
| const size_t | lda | ||
| ) | [inline] |
1.8.0