Come si può ottimizzare la seguente porzione di codice C?
Il seguente codice calcola la trasposta delle matrici T1vec e T2vec e poi esegue la seguente operazione:
v={{T1vecT,0},{0, T2vecT}}*u
codice:#include <stdio.h> #include <stdlib.h> #include <math.h> int u[5]={0, 0, 1, 1, 0}; double T1vec[3][3]={{-0.4787, 0.7923, -0.3783}, {-0.3296, 0.2372, 0.9139},{-0.8138, -0.5621, -0.1476}}; double T2vec[2][2]={{-0.8361, 0.5485}, {0.5485, 0.83061}}; double T1vecT[3][3], T2vecT[2][2]; double v[5]={0, 0, 0, 0, 0}; for(k=0; k<3; k++){ for(i=0; i<3; i++){ T1vecT[i][k]=T1vec[k][i]; } } for(k=0; k<2; k++){ for(i=0; i<2; i++){ T2vecT[i][k]=T2vec[k][i]; } } for(k=0; k<5; k++){ for(i=0; i<5; i++){ if(k<3 && i<3){ v[k]=v[k]+T1vecT[k][i]*u[i]; } if(k>=3 && i>=3){ v[k]=v[k]+T2vecT[k-3][i-3]*u[i]; } } }

Rispondi quotando