int main(int argc, char* argv[]) { int i, j; int n = (SIZE); double A[(SIZE) * (SIZE)] = {0}; double *L = NULL; FILE *fp = NULL; char filename[150]; sprintf(filename, "%s/matrices/%d", PATH, SIZE); fp = fopen(filename, "r"); if (fp == NULL) { return 1; } for (i = 0; i < n * n; ++i) { fscanf(fp, "%lf", A + i); } start_clock(); start_papi(); L = cholesky(A, n); stop_papi(); stop_clock(); double checksum = 0.0; for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) { checksum += i + j + L[INDEX(i, j)]; } } printf("Size: %d\n", n); printf("Checksum: %lf\n", checksum); return 0; }
int main( int argc, const char* argv[] ) { int i,j,iret; double first[SIZE][SIZE]; double second[SIZE][SIZE]; double multiply[SIZE][SIZE]; double dtime; for (i = 0; i < SIZE; i++) { //rows in first for (j = 0; j < SIZE; j++) { //columns in first first[i][j]=i+j; second[i][j]=i-j; } } dtime = dclock(); start_papi(); iret=mm(first,second,multiply); stop_papi(); dtime = dclock()-dtime; printf( "Time: %le \n", dtime); fflush( stdout ); double check=0.0; for(i=0;i<SIZE;i++){ for(j=0;j<SIZE;j++){ check+=multiply[i][j]; } } printf("check %le \n",check); fflush( stdout ); return iret; }