#include #include /* struct timeval */ #include /* struct rusage */ /* returns user time only */ float print_times(struct rusage start, struct rusage stop, int iterations) { float start_user, stop_user, start_sys, stop_sys, u; start_user = start.ru_utime.tv_sec + (start.ru_utime.tv_usec / 1000000.0); stop_user = stop.ru_utime.tv_sec + ( stop.ru_utime.tv_usec / 1000000.0); start_sys = start.ru_stime.tv_sec + (start.ru_stime.tv_usec / 1000000.0); stop_sys = stop.ru_stime.tv_sec + ( stop.ru_stime.tv_usec / 1000000.0); u = (stop_user - start_user) / iterations; printf("[user: %f, sys: %f]\n", u, (stop_sys - start_sys) / iterations); return u; } void init_vector(float *a, int start, int stop) { int i; for(i = start; i < stop; i++) a[i] = 0.0; } void print_vector(float *a, int start, int stop) { int i; for(i = start; i < stop; i++) printf("%4.4f ", a[i]); printf("\n"); } void print_array(float a[10][10], int x_start, int x_stop, int y_start, int y_stop) { int i, j; for(i = x_start; i < x_stop; i++) for(j = y_start; j < y_stop; j++) printf("%4.4f ", a[i][j]); printf("\n"); }