Com'è possibile ottimizzare questa porzione di codice C?
for(k=0; k<5; k++){
D[k][k]+=dlam[k];
for(i=0; i<5; i++){
for(z=0; z<5; z++){
if(k<3 && z<3){
q[k][i]+=(T1vec[k][z])*(Q1[z][i]);
}
if(k>=3 && z>=3){
q[k][i]+=(T2vec[k-3][z-3])*(Q1[z][i]);
}
}
qT[i][k]=q[k][i];
}
}
for(j=0; j<5; j++){
for(k=0; k<5; k++){
for(i=0; i<5; i++){
for(z=0; z<5; z++){
Z[j][k]+=q[j][z]*D[z][i]*qT[i][k];
}
}
}
}
for(k=0; k<3; k++){
for(i=k+2; i<5; i++){
Z[k][i]=0;
Z[i][k]=0;
}
}
Z[2][3]=1;
Z[3][2]=1;