void speed_test (fractal_context * c, struct image *img) { //unsigned int sum; tl_timer *t; int time; unsigned int i; set_fractalc (c, img); t = tl_create_timer (); cfractalc.maxiter = 100; #ifdef SLOWFUNCPTR i = calculateswitch (0.0, 0.0, 0.0, 0.0, 0); #else (void) cfractalc.currentformula->calculate (0.0, 0.0, 0.0, 0.0); if (cfractalc.currentformula->calculate_periodicity != NULL) (void) cfractalc.currentformula->calculate_periodicity (0.0, 0.0, 0.0, 0.0); if (cfractalc.currentformula->smooth_calculate != NULL) (void) cfractalc.currentformula->smooth_calculate (0.0, 0.0, 0.0, 0.0); if (cfractalc.currentformula->smooth_calculate_periodicity != NULL) (void) cfractalc.currentformula->smooth_calculate_periodicity (0.0, 0.0, 0.0, 0.0); #endif cfractalc.maxiter = 20000000; tl_update_time (); tl_reset_timer (t); /*sum = rdtsc (); */ #ifdef SLOWFUNCPTR i = calculateswitch (0.0, 0.0, 0.0, 0.0, 0); #else i = cfractalc.currentformula->calculate (0.0, 0.0, 0.0, 0.0); #endif /*sum -= rdtsc (); printf ("%f\n", (double) (-sum) / cfractalc.maxiter); */ tl_update_time (); time = tl_lookup_timer (t); x_message ("Result:%i Formulaname:%s Time:%i Mloops per sec:%.2f", (int) i, cfractalc.currentformula->name[0], time, cfractalc.maxiter / (double) time); #ifndef SLOWFUNCPTR if (cfractalc.currentformula->smooth_calculate != NULL) { tl_update_time (); tl_reset_timer (t); i = cfractalc.currentformula->smooth_calculate (0.0, 0.0, 0.0, 0.0); tl_update_time (); time = tl_lookup_timer (t); x_message ("Result:%i Formulaname:%s Time:%i Mloops per sec:%.2f", (int) i, cfractalc.currentformula->name[0], time, cfractalc.maxiter / (double) time); } #endif tl_free_timer (t); }
void uih_printmessages (uih_context * c) { int i; for (i = 0; i < NMESSAGES && c->messg.message[i] != NULL; i++) x_message (c->messg.message[i], stderr); }
void x_warning (Widget parent, string s) { x_message (parent, concat (s, "."), NULL, 0); }