相关疑难解决方法(0)

有没有一种算法可以就地增加平方矩阵?

用于乘以4x4矩阵的朴素算法如下所示:

void matrix_mul(double out[4][4], double lhs[4][4], double rhs[4][4]) {
    for (int i = 0; i < 4; ++i) {
        for (int j = 0; j < 4; ++j) {
            out[i][j] = 0.0;
            for (int k = 0; k < 4; ++k) {
                out[i][j] += lhs[i][k] * rhs[k][j];
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

显然,这个算法给出了假结果,如果out == lhsout == rhs(这里==指的是参考相等).是否有允许这些案例中的一个或两个不仅仅复制矩阵的版本?如果有必要,我很高兴为每个案例提供不同的功能.

我发现了这篇论文,但它讨论了Strassen-Winograd算法,这对我的小矩阵来说太过分了.这个问题的答案似乎表明,如果out == lhs && out == rhs(即,我们试图对矩阵进行平方),那么它就无法在适当的位置完成,但即使在那里也没有令人信服的证据或证据.

language-agnostic algorithm graphics matrix linear-algebra

10
推荐指数
2
解决办法
2726
查看次数