这是确定矩阵是否具有正交列的代码。当我有n可被 4 整除时,代码运行正常,但是当n不能被 4 整除时,程序意外停止(代码中提到的位置)
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
sum = 0;
for(k=0;k<n-4;k+=4)
{
X=_mm_load_ps(&D[n*i+k]);
Y=_mm_load_ps(&D[n*j+k]);
printf("fff"); //not printing , program stops here
acc = _mm_add_ps(acc,_mm_mul_ps(X,Y));
}
_mm_store_ps(&temp[0],acc);
sum = temp[0]+temp[1]+temp[2]+temp[3];
for(;k<n;k++){
sum = sum + D[i*n+k]*D[j*n+k];
}
if(sum ==0)
return 1;
}
}
return 0;
}
可能的原因是什么?如何处理大小不能被 4 整除的数组?