Toto je starší verze dokumentu!


Obsah

Cvičení 6

1.

Bez záruky, ale zdá se, že funguje…

#include <stdio.h>
#include <omp.h>
 
int main (int argc, char* argv[]) {
	int A[4][6] = {{1, 2, 3, 1, 2, 3}, {4, 5, 6, 4, 5, 6}, {1, 2, 3, 1, 2, 3}, {4, 5, 6, 4, 5, 6}};
	int B[6][4] = {{1, 2, 1, 2}, {3, 4, 3, 4}, {5, 6, 5, 6}, {1, 2, 1, 2}, {3, 4, 3, 4}, {5, 6, 5, 6}};
 
	int Ar = sizeof(A) / sizeof(A[0]); // A rows
	int Ac = sizeof(A[0]) / sizeof(A[0][0]); // A cols
 
	int Br = sizeof(B) / sizeof(B[0]); // B rows
	int Bc = sizeof(B[0]) / sizeof(B[0][0]); // B cols
 
	int C[Ar][Bc];
 
	int Cr = Ar;
	int Cc = Bc;
 
	int x, y;
	for (x = 0; x < Cr; x++) {
		for (y = 0; y < Cc; y++) {
			C[x][y] = 0;
		}
	}
 
	int i, j, k;
	#pragma omp parallel for private(i, j, k) shared(C) num_threads(4)
	for(i = 0; i < Ar; i++) {
		for( j = 0; j < Bc; j++) {
			for( k = 0; k < Ac; k++) { // or Br
				C[i][j] += A[i][k] * B[k][j];
			}
		}
	}
 
	printf("A radky %d, sloupce %d\nB radky %d, sloupce %d\nC radky %d, sloupce %d\n", Ar, Ac, Br, Bc, Cr, Cc);
 
	printf("\nMatice C:\n");
	for(i = 0; i < Cr; i++) {
		for( k = 0; k < Cc; k++) { // or Br
			printf("%d ", C[i][k]);
		}
		printf("\n");
	}
 
	return 0;
}

2.

kdyby někdo věděl jak na ty derivace, budu vděčný…

courses/a4m36pap/cviceni6.1289248429.txt.gz · Poslední úprava: 2025/01/03 18:25 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0