Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
void
x_warning (Widget parent, string s)
{
  x_message (parent, concat (s, "."), NULL, 0);
}