|
template<class wide_T , class pack_T , int Nb> |
void | pack_word (pack_T *packed, const wide_T *words, int32_t stride, Packer< pack_T, Nb > &packer) |
|
template<class wide_T > |
void | pack_word (double *packed, const wide_T *words, int32_t stride, Packer< double, 2 > &packer) |
|
template<class wide_T , class pack_T , int Nb> |
void | pack_word_part (pack_T *packed, int32_t nb, const wide_T *words, int32_t stride, Packer< pack_T, Nb > &packer) |
|
template<class wide_T > |
void | pack_word_part (double *packed, int32_t nb, const wide_T *words, int32_t stride, Packer< double, 2 > &packer) |
|
template<class wide_T , class pack_T , int Nb> |
void | unpack_word (wide_T *words, int32_t stride, const pack_T *packed, Packer< pack_T, Nb > &packer) |
|
template<class wide_T > |
void | unpack_word (wide_T *words, int32_t stride, const double *packed, Packer< double, 2 > &packer) |
|
template<class wide_T , class pack_T , int Nb> |
void | unpack_word_part (wide_T *words, int32_t stride, const pack_T *packed, int32_t nb, Packer< pack_T, Nb > &packer) |
|
template<class wide_T > |
void | unpack_word_part (wide_T *words, int32_t stride, const double *packed, int32_t nb, Packer< double, 2 > &packer) |
|
template<class wide_T , class pack_T , int Nb, bool row_packed> |
void | pack_matrix (pack_T *packed, int32_t row_p, int32_t col_p, int32_t ldm_p, const wide_T *elemts, int32_t row_e, int32_t col_e, int32_t ldm_e, Packer< pack_T, Nb > &packer) |
|
template<class wide_T , class pack_T , int Nb, bool row_packed> |
void | unpack_matrix (wide_T *elemts, int32_t row_e, int32_t col_e, int32_t ldm_e, const pack_T *packed, int32_t row_p, int32_t col_p, int32_t ldm_p, Packer< pack_T, Nb > &packer) |
|
template<class Field , bool left_compress> |
void | fgemm_compressed (const Field &F, int m, int n, int k, const typename Field::Element *A, int lda, const typename Field::Element *B, int ldb, typename Field::Element *C, int ldc) |
|
template<class Field > |
void | finit_fuzzy (Field &F, size_t m, size_t n, double *C, size_t ldc) |
|
void | add (const size_t m, const size_t n, double a, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc) |
|
void | subadd (const size_t m, const size_t n, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc) |
|
void | negadd (const size_t m, const size_t n, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc) |
|
void | addsub (const size_t m, const size_t n, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc) |
|
template<class Field > |
void | addscalinf (const Field &F, const size_t m, const size_t n, const double *B, const size_t ldb, double e, double *C, const size_t ldc) |
|
template<class Field > |
void | subscalinf (const Field &F, const size_t m, const size_t n, const double *B, const size_t ldb, double e, double *C, const size_t ldc) |
|
template<class Field > |
void | subscal (const Field &F, const size_t m, const size_t n, const double *D, const size_t ldd, const double *B, const size_t ldb, double e, double *C, const size_t ldc) |
|
template<class Field > |
void | addscal (const Field &F, const size_t m, const size_t n, const double *D, const size_t ldd, const double *B, const size_t ldb, double e, double *C, const size_t ldc) |
|
template<class Field > |
void | subscalacc (const Field &F, const size_t m, const size_t n, const double *D, const size_t ldd, const double *B, const size_t ldb, double e, double *C, const size_t ldc) |
|
template<class Field > |
double * | gemm_fflas (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, size_t lda, const double *B, size_t ldb, double *C, size_t ldc, int rec=0) |
|
template<class Field > |
double * | gemm_bini_322_0 (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc, int rec, const double &epsilon) |
|
template<class Field > |
double * | gemm_bini_322_mem (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc, int rec, const double &epsilon) |
|
template<class Field > |
double * | gemm_bini_223_mem (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc, int rec, const double &epsilon) |
|
template<class Field > |
double * | gemm_bini_322_2 (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc, int rec, const double &epsilon) |
|
template<class Field > |
double * | gemm_bini_232_2 (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc, int rec, const double &epsilon) |
|
template<class Field > |
double * | gemm_bini_232_3_acc (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc, int rec, const double &epsilon) |
|
template<class Field > |
double * | gemm_bini_232_3 (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc, int rec, const double &epsilon) |
|
template<class Field > |
Field::Element * | gemm_bini_p (const Field &F, const size_t m, const size_t n, const size_t k, 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, int rec, size_t algo) |
|
template<class Field > |
Field::Element * | gemm_bini_e (const Field &F, const size_t m, const size_t n, const size_t k, 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, int rec, size_t algo) |
|
template<class Field > |
Field::Element * | gemm_compress (const Field &F, const size_t m, const size_t n, const size_t k, 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, int rec, size_t algo) |
|
template<class Field > |
void | check_equal (const Field &F, int m, int n, typename Field::Element *D, int ldd, typename Field::Element *E, int lde, const char *nomalgo, const char *madescr, int &ok_p) |
|
template<class Field > |
void | test_algos (const Field &F, int m, int n, int k, const typename Field::Element *A, int lda, const typename Field::Element *B, int ldb, int r, time_v &tim_k, time_v &tim_e, time_v &tim_p, int_v &ok_k, int_v &ok_e, int_v &ok_p, FFLAS::Timer &tim_wd, int &nb_wd, bool with_e, bool with_k) |
|
double | descrip (int algo, int_v &ok_e, time_v &tim_e, int iters, const char **madescr, const char *nom) |
|
template<class Field > |
void | test (int m, int k, int n, int p, int r, bool with_e, bool with_k, int iters=4, uint64_t seed=0) |
|
int | main (int ac, char **av) |
|