<分区>
我试图理解这段代码,但我不能: n x n 矩阵按列保存。我区分完整 (F)、上 (U) 和下 (L) 矩阵。 n是矩阵的维数
int sum(int k){
int s = 0;
for (int i = 1; i<=k; i++)
s += i;
return s;}
double getentry(int j, int k){
j--;k--;
assert(typ == 'F' || typ == 'U' || typ == 'L');
assert(k<n && j<n);
if(typ == 'F') return mat[k*n+j];
if(typ == 'L') return (k>j)?(0.0):(mat[k*n+j-sum(k)]);
if(typ == 'U') return (j>k)?(0.0):( mat[k*n+j-sum(n-1)+sum(n-(k+1))]);
}
我特别不明白这一行:
if(typ == 'L') return (k>j)?(0.0):(mat[k*n+j-sum(k)]);
if(typ == 'U') return (j>k)?(0.0):( mat[k*n+j-sum(n-1)+sum(n-(k+1))]);
但如果您也能解释一下这一行,我将不胜感激:
if(typ == 'F') return mat[k*n+j];