matmul.c 817 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <stdio.h>
  2. #define MAT_SIZE 10
  3. int A[MAT_SIZE][MAT_SIZE] = {
  4. [0 ... MAT_SIZE - 1] = {[0 ... MAT_SIZE - 1] = 2}};
  5. int B[MAT_SIZE][MAT_SIZE] = {
  6. [0 ... MAT_SIZE - 1] = {[0 ... MAT_SIZE - 1] = 2}};
  7. void vMatMul() {
  8. int IMC_REPEAT = 50;
  9. int C[MAT_SIZE * MAT_SIZE] = { 0 };
  10. for(int imc=0; imc<IMC_REPEAT; imc++) {
  11. for(int _i=0; _i<MAT_SIZE*MAT_SIZE; _i++) {
  12. int sum = 0;
  13. int i = _i / MAT_SIZE;
  14. int j = _i % MAT_SIZE;
  15. for(int k=0; k<MAT_SIZE; k++) {
  16. sum += A[i][k] * B[k][j];
  17. }
  18. C[_i] = sum;
  19. }
  20. }
  21. for (int _i = 0; _i < MAT_SIZE * MAT_SIZE; _i++)
  22. {
  23. if(_i % MAT_SIZE == 0) {
  24. printf("\r\n");
  25. }
  26. printf("%d ", C[_i]);
  27. }
  28. printf("\r\n");
  29. }