Guest User

Untitled

a guest
Jun 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <pthread.h>
  4. #define DIM 10
  5.  
  6. int a[DIM][DIM];
  7. int b[DIM][DIM];
  8. int c[DIM][DIM];
  9.  
  10. struct argumenten {
  11. int dim;
  12. int rij;
  13. };
  14.  
  15. void * bepaal_rij_van_resultaten_matrix(void * arg){
  16. struct argumenten * args = (struct argumenten *) arg;
  17. int dim = args->dim;
  18. int rij = args->rij;
  19.  
  20. int i,j;
  21. for (i=0;i<dim;i++){
  22. for (j=0;j<dim;j++){
  23. c[rij][i]+=a[rij][j]*b[j][i];
  24. }
  25. }
  26. }
  27.  
  28. void bepaal_product_matrices(int ** matrixA,int ** matrixB,int ** matrixC,int dim){
  29. int i;
  30. pthread_t threads[dim];
  31.  
  32. for (i = 0; i < dim; i++) {
  33. struct argumenten args;
  34. args.dim = dim;
  35. args.rij = i;
  36. pthread_create(&threads[i], NULL, &bepaal_rij_van_resultaten_matrix, &args);
  37. }
  38.  
  39. for (i = 0; i < dim; i++) {
  40. pthread_join(threads[i], NULL);
  41. }
  42. }
  43.  
  44. void schrijf_matrix(){
  45. int i,j;
  46. for (i=0;i<DIM;i++){
  47. for (j=0;j<DIM;j++){
  48. printf("%-5d ",c[i][j]);
  49. }
  50. printf("\n");
  51. }
  52. }
  53.  
  54. void init_matrix(){
  55. int i,j;
  56. for (i=0;i<DIM;i++){
  57. for (j=0;j<DIM;j++){
  58. a[i][j]=i+j;
  59. b[i][j]=i+j;
  60. c[i][j]=0;
  61. }
  62. }
  63. }
  64.  
  65. main(){
  66. init_matrix();
  67. bepaal_product_matrices(a,b,c,DIM);
  68. schrijf_matrix();
  69. }
Add Comment
Please, Sign In to add comment