Computer Organization and Design assignements
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

40 lignes
1.9 KiB

  1. /*!
  2. \file matmul.h
  3. \brief Matrix multiplication implementation.
  4. \author Nikos Pitsianis
  5. \author Dimitris Floros
  6. \author Christos Choutouridis 8997 <cchoutou@ece.auth.gr>
  7. \date 2020-05-05
  8. */
  9. #ifndef SRC_MATMUL_H_
  10. #define SRC_MATMUL_H_
  11. #include <stdlib.h>
  12. #define MAX_ITER 10
  13. #define sub2ind(i,j,n) (j) + (i)*(n)
  14. //! Function pointer type to matrix multiplication back-end.
  15. typedef void (*mMult_ft)(float * const, float const * const, float const * const, int const);
  16. typedef void (*mMultBlock_ft)(float * const, float const * const, float const * const, int const, int const);
  17. void matrixMult_ijk(float * const C, float const * const A, float const * const B, int const n);
  18. void matrixMult_ikj(float * const C, float const * const A, float const * const B, int const n);
  19. void matrixMult_jik(float * const C, float const * const A, float const * const B, int const n);
  20. void matrixMult_jki(float * const C, float const * const A, float const * const B, int const n);
  21. void matrixMult_kij(float * const C, float const * const A, float const * const B, int const n);
  22. void matrixMult_kji(float * const C, float const * const A, float const * const B, int const n);
  23. void matrixMult_ijk_block(float * const C, float const * const A, float const * const B, int const n, int const s);
  24. void matrixMult_ikj_block(float * const C, float const * const A, float const * const B, int const n, int const s);
  25. void matrixMult_jik_block(float * const C, float const * const A, float const * const B, int const n, int const s);
  26. void matrixMult_jki_block(float * const C, float const * const A, float const * const B, int const n, int const s);
  27. void matrixMult_kij_block(float * const C, float const * const A, float const * const B, int const n, int const s);
  28. void matrixMult_kji_block(float * const C, float const * const A, float const * const B, int const n, int const s);
  29. float* matrixInit(int const n);
  30. #endif /* SRC_MATMUL_H_ */