#include "math.h" #include "stdio.h" #include "time.h" #include "../include/clapack.h" #define M 16 /*No of blocks*/ #define N 10 /*No of iterations*/ void print(double a[M][N], char * blocks[M]) { int i, j; for (i = 0; i < M; ++i) { printf("%s [", blocks[i]); for (j = 0; j < N; ++j) printf("%12.4f ", a[i][j]); printf("]\n"); } } void printToFile(double a[M][N], char * blocks[M], FILE *fptr) { int i, j; for (i = 0; i < M; ++i) { fprintf(fptr, "%s = [", blocks[i]); for (j = 0; j < N; ++j) fprintf(fptr, "%12.4f ", a[i][j]); fprintf(fptr, "];\n"); } } int main(int argc, char *args[]) { /* Collect statistics */ clock_t start, end; start = clock(); double elapsed; double result[M][N]; /*result*/ char * labels[M] = { "ic3", "sINT", "CircleTestResult", "ic33", "delta" , "yt_dt3", "cb15", "xtdt", "ic", "yt_dt" , "delta3", "xtdt3", "ic2", "fINT", "yt_dtPxtdt3" , "yt_dtPxtdt" }; /* 0:ic3 1:sINT 2:CircleTestResult 3:ic33 4:delta 5:yt_dt3 6:cb15 7:xtdt 8:ic 9:yt_dt 10:delta3 11:xtdt3 12:ic2 13:fINT 14:yt_dtPxtdt3 15:yt_dtPxtdt */ result[0][0] = 1.0; result[1][0] = 1.0; result[2][0] = -result[1][0]; result[3][0] = 1.0; result[4][0] = 0.01; result[5][0] = 1.0; result[6][0] = -result[5][0]; result[7][0] = result[6][0]*0.01; result[8][0] = 0.0; result[9][0] = 0.0; result[10][0] = 0.01; result[11][0] = result[9][0]*0.01; result[12][0] = 0.0; result[13][0] = 0.0; result[14][0] = result[11][0]+result[5][0]; result[15][0] = result[7][0]+result[9][0]; int i; for (i = 1; i < N; ++i) { result[0][i] = 1.0; result[1][i] = result[1][i-1] + result[13][i-1] *0.01; result[2][i] = -result[1][i]; result[3][i] = 1.0; result[4][i] = 0.01; result[5][i] = result[14][i-1]; result[6][i] = -result[5][i]; result[7][i] = result[6][i]*0.01; result[8][i] = 0.0; result[9][i] = result[15][i-1]; result[10][i] = 0.01; result[11][i] = result[9][i]*0.01; result[12][i] = 0.0; result[13][i] = result[13][i-1] + result[2][i-1] *0.01; result[14][i] = result[11][i]+result[5][i]; result[15][i] = result[7][i]+result[9][i]; } if (argc > 1) { FILE *fptr = fopen(args[1],"w"); printToFile(result, labels, fptr); fclose(fptr); } else print(result, labels); /*print the results*/ end = clock(); elapsed = (double)(end - start) / CLOCKS_PER_SEC; printf("elasped time: %12.4f secs\n", elapsed); return 0; }