#include #include #include #define SIZE 10000 void sum_rows1(int* a, int* b, long n){ long i,j; for (i = 0; i < n; i++){ b[i] = 0; for (j =0; j < n; j++){ b[i] += a[i*SIZE + j]; } } } void sum_rows2(int* a, int* b, long n){ long i,j; for (i = 0; i < n; i++){ int val = 0; for (j =0; j < n; j++){ val += a[i*SIZE + j]; } b[i] = val; } } void sum_rows3(int* a, int* b, long n){ long i,j,row; for (i = 0; i < n; i++){ int val = 0; row = i*SIZE; for (j =0; j < n; j++){ val += a[row + j]; } b[i] = val; } } int main(int argc, char * argv[]){ int *a; int *b; a = (int *) calloc(SIZE*SIZE, sizeof(int)); b = (int *) calloc(SIZE, sizeof(int)); memset(a,1,SIZE*SIZE); printf("Start\n"); sum_rows1(a,b,SIZE); printf("End part 1\n"); sum_rows2(a,b,SIZE); printf("End part 2\n"); sum_rows3(a,b,SIZE); printf("End part 3\n"); }