#include #define NUMBER_OF_TEST_FUNCTIONS 17 #define NUMBER_OF_TESTS 2 char *message[] = { "x = y", "y = (int) x", "x + y", "x - y", "x * y", "x / y", "sqrt(x)", "exp(x)", "sin(x)", "asin(x)", "floor(x)", "ceil(x)", "modf(x, &iptr)", "log(x)", "pow(x, y)", "lb(x)", "atan(x)" }; int main(int argc, char **argv) { FILE *f; int i, n; char c; char file[20]; int measurements[NUMBER_OF_TESTS][2][NUMBER_OF_TEST_FUNCTIONS]; int results[2][NUMBER_OF_TEST_FUNCTIONS]; for(n = 0; n < NUMBER_OF_TEST_FUNCTIONS; n++) { results[0][n] = 0; results[1][n] = 0; } for(n = 0; n < NUMBER_OF_TESTS; n++) { for(i = 0; i < NUMBER_OF_TEST_FUNCTIONS; i++) { measurements[n][0][i] = 0; measurements[n][1][i] = 0; } } for(n = 0; n < NUMBER_OF_TESTS; n++) { sprintf(file, "measurements-%d.log", n); if((f = fopen(file, "r")) == NULL) { perror("can not open data file"); exit(1); } for(i = 0; i < NUMBER_OF_TEST_FUNCTIONS; i++) { fscanf(f, "%d", &measurements[n][0][i]); while((c = fgetc(f)) != '\n'); fscanf(f, "%d", &measurements[n][1][i]); while((c = fgetc(f)) != '\n'); } if(fclose(f)) { perror("can not close data file"); exit(1); } } for(n = 0; n < NUMBER_OF_TESTS; n++) { for(i = 0; i < NUMBER_OF_TEST_FUNCTIONS; i++) { results[0][i] += measurements[n][0][i]; results[1][i] += measurements[n][1][i]; } } for(i = 0; i < NUMBER_OF_TEST_FUNCTIONS; i++) { printf("%s => %5.2f", message[i], 100 * ((double) results[1][i] /(double)results[0][i])); printf(" %\n"); } }