## Exercise: General code optimization

Which optimization strategies would you suggest for the piece of code below? Write down what you expect to give the best performance. You may test your work by performing benchmark runs. A sequential example code can be found in the directory OPT.

double mat[N][N], s[N][N], val;
int i, j, v[N];
//
// ... v[] and s[][] may be assumed to contain valid data
//
for(i=0; i<N ; ++i) {
for(j=0; j<N; ++j) {
val = (double)(v[i] % 256);
mat[j][i] = s[j][i]*(sin(val)*sin(val)-cos(val)*cos(val));
}
}

No assumptions about the size of N may be made. You may however assume that the code is part of a function that gets called very frequently. s[][] and v[] may change between calls, and all entries of v[] are positive.