首页 > 解决方案 > C99 递归矩阵乘法。如何访问索引?

问题描述

我正在尝试实现以下算法的一个版本: 算法

但是,我不想将问题减少到 1 次乘法,而是想将矩阵尺寸减少到 16*16 并将这些块相乘。

我已经有一个块大小为 1*1 的实现(与前面提到的算法相同)。我需要为更大的块(例如 16*16)扩展我的版本。

乘积块并不难。我的问题是访问我的块的索引,因为我必须使用我的 1*1 块版本的递归调用:

recursive_mult(n/2 , stride , &A[0+0*stride] , &B[0+0*stride] , &C[0+0*stride]) ;

...其中 n 是当前块的大小。我在矩阵中使用了一个跨步进行性能测试。

所以我只传递我的矩阵的引用。

有没有办法解决这个问题,而无需更改递归调用以传递块的起始索引?

标签: crecursionmatrix

解决方案


推荐阅读