|
| 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) |
| |