#include #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) static int *mat, *vect; static int li; static int n = 16, m = 16; /* Size of the matrice: n lines, m columns */ void init_calc(void) { int i; srand(42); mat = (int *) malloc(n * m * sizeof(int)); vect = (int *) malloc(m * sizeof(int)); for (i = 0; i < n * m; i++) mat[i] = rand(); li = 0; } void *do_calc(void) { int co, p = 0; for (co = 0; co < m; co++) p += mat[li * m + co] * vect[li]; mat[li * m] = p; if (unlikely(++li >= n)) li = 0; return &mat[li * m]; } void end_calc(void) { free(mat); free(vect); }