1 #include "matrix3x3.hpp" 2 3 void tajny_algoritmus(void *r, const void *a, const void *b, long element_size, binop op_plus, binop op_krat) { 4 int i, j, k; 5 6 auto A = [a, element_size](int i, int j) { 7 return (void *) ((char *) a + element_size*(i*3+j)); 8 }; 9 auto B = [b, element_size](int i, int j) { 10 return (void *) ((char *) b + element_size*(i*3+j)); 11 }; 12 auto R = [r, element_size](int i, int j) { 13 return (void *) ((char *) r + element_size*(i*3+j)); 14 }; 15 16 char _[element_size]; 17 void *tmp = (void *) _; 18 19 for (i = 0; i < 3; ++i) { 20 for (j = 0; j < 3; ++j) { 21 for (k = 0; k < 3; ++k) { 22 op_krat(tmp, A(i,k), B(k,j)); 23 op_plus(R(i,j), R(i,j), tmp); 24 } 25 } 26 } 27 }