File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11
2+ func create_matrix(rows, cols) {
3+ let m = [];
4+ for (let i = 0; i < rows; i = i + 1) {
5+ let row = [];
6+ for (let j = 0; j < cols; j = j + 1) {
7+ list_push(row, 0);
8+ }
9+ list_push(m, row);
10+ }
11+ return m;
12+ }
13+
14+ func multiply(a, b) {
15+ let rowsA = len(a);
16+ let colsA = len(a[0]);
17+ let rowsB = len(b);
18+ let colsB = len(b[0]);
19+
20+ if (colsA != rowsB) return null;
21+
22+ let result = create_matrix(rowsA, colsB);
23+
24+ for (let i = 0; i < rowsA; i = i + 1) {
25+ for (let j = 0; j < colsB; j = j + 1) {
26+ let sum = 0;
27+ for (let k = 0; k < colsA; k = k + 1) {
28+ sum = sum + a[i][k] * b[k][j];
29+ }
30+ result[i][j] = sum;
31+ }
32+ }
33+ return result;
34+ }
35+
236func main() {
3- let start = time();
4- let size = 50;
5- let a = [];
6- let b = [];
7-
8- // Init matrices
37+ let size = 30;
38+ let a = create_matrix(size, size);
39+ let b = create_matrix(size, size);
40+
41+ // Init values
942 for (let i = 0; i < size; i = i + 1) {
10- let row_a = [];
11- let row_b = [];
1243 for (let j = 0; j < size; j = j + 1) {
13- push(row_a, i + j) ;
14- push(row_b, i - j) ;
44+ a[i][j] = i + j;
45+ b[i][j] = i - j;
1546 }
16- push(a, row_a);
17- push(b, row_b);
1847 }
19-
20- // Multiply
21- let c = [];
22- for (let i = 0; i < size; i = i + 1) {
23- let row_c = [];
24- for (let j = 0; j < size; j = j + 1) {
25- let sum = 0;
26- for (let k = 0; k < size; k = k + 1) {
27- sum = sum + a[i][k] * b[k][j];
48+
2849 let start = clock();
2950 let c = multiply(a, b);
3051 let elapsed = clock() - start;
52+
3153 print("Time: " + to_string(elapsed));
3254 print("C[0][0]: " + to_string(c[0][0]));
3355}
You can’t perform that action at this time.
0 commit comments