#include #include #include static volatile int fiboValues[MAX_ENTRIES] = {-1}; void OutputFiboArray(const char * title, int size) { printf("%s:\n---------------------------\n n => f(n)\n---------------------------\n", title); int entry = 0; for (; entry < size; entry++) { printf("%3d => %d\n", entry, fiboValues[entry]); } } int RunFiboTest(const char * title, fiboFunction func, int passes) { int n; Timer_Start(); for ( n= 0; n <= passes ; n++ ) { fiboValues[n] = func(n); } unsigned int timeSpent = Timer_Stop(); OutputFiboArray(title, passes); Timer_Output(); return timeSpent / CLOCKS_PER_SEC; } int RunFiboTestUntil(const char * title, fiboFunction func, unsigned int secondsToRun) { int n = 0; unsigned int secondsRunning = 0; Timer_Start(); do { fiboValues[n] = func(n++); secondsRunning = Timer_Stop() / CLOCKS_PER_SEC; } while (secondsRunning < secondsToRun && n < MAX_ENTRIES); if (n > 100) { OutputFiboArray(title, 100); printf("... list cut at 100 entries (%d total entries)\n", n); } else { OutputFiboArray(title, n); } Timer_Output(); return n; }