#include #include #define NUM_ROWS 8 typedef int (*init_fn_t)(int rows, int cols, int dim); int A_value(int i, int j, int n) { return 1 + (i + j) % n; } int Result_value(int i, int j, int n) { return n * (n + 1)/ 2; } int B_value(int i, int j, int n) { return 1; } void init_matrix(int **A, init_fn_t f, int n) { int i,j; for(i=0;i j ? i : j) #define min(i,j) (i < j ? i : j) int A_value2(int i,int j, int n) { return max(0, j-i+1); } int B_value2(int i, int j, int n) { return max(0, i-j+1); } int Result_value2(int i, int j, int n) { int ni = n - i; if (i == j) return (ni * (ni + 1)*(2*ni+1))/6; int l = max(i,j); int s = min(i,j); int ns = n - l; int sigma_n2 = (ns*(ns+1)*(2*ns+1))/6; int sigma_n = (ns*(ns+1))/2; return sigma_n2 + (l-s)*sigma_n; } void print_matrix(int **A) { int i,j; printf("\n Printing the result \n"); for(i=0;i