C++ 在C++;
我试图遵循Guassian消除算法来实现LU分解,并最终将其与openmp并行。以下算法是否正确,其中C++ 在C++;,c++,matrix,C++,Matrix,我试图遵循Guassian消除算法来实现LU分解,并最终将其与openmp并行。以下算法是否正确,其中l是乘数,m是矩阵 void decompose2(double **m) { begin =clock(); int i=0, j=0, k=0; for(k = 1; k < size - 1; k++) { for(i = k + 1; i < size; i++) { l[i][k] = m[i][k]
l
是乘数,m是矩阵
void decompose2(double **m) {
begin =clock();
int i=0, j=0, k=0;
for(k = 1; k < size - 1; k++)
{
for(i = k + 1; i < size; i++)
{
l[i][k] = m[i][k]/m[k][k];
}
for(j = k + 1; j < size; j++)
{
for(i = k + 1; k < size; k++)
{
m[i][j] = m[i][j] - (l[i][k]*m[k][j]);
}
}
}
end = clock();
}
void decomposition2(双**m){
开始=时钟();
int i=0,j=0,k=0;
对于(k=1;k
我不认为这是正确的,因为根据另一篇论文,我在相同数量的处理器上进行并行化后得到的时间完全不同。“以下算法看起来正确吗,…”——不,因为
(您可能正在使用)不能转换为double[size][size]
double**
不是迭代器的好类型(请改用int
)size\t
- 当您可能需要交换行时,您不会检查
是否(接近)为零m[k][k]