Optimizarea algoritmului de inmultire a dua matrice..
Detectarea constantelor din bucle
Prima optimizare, consta in a observa ca c[i][j] este o constanta in
cadrul ciclului interior k. Totusi, pentru un compilator acest fapt nu
este neaparat evident deoarece c[i][j] este o referinta in cadrul unui
vector. Astfel, o prima optimizare va arata asa:
for (i=0;i<N;i++){
for (j=0;j<N;j++){
register double suma = 0.0;
for (k=0;k<N;k++) {
suma += a[i][k] * b[k][j];
}
c[i][j] = suma;
}
}
In acest mod, compilatorul va putea avea grija ca variabila suma sa fie
tinut intr-un registru, permitand astfel o utilizare optima a acestei
resurse.
...s