c - 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 是当前块的大小。我在矩阵中使用了一个跨步进行性能测试。
所以我只传递我的矩阵的引用。
有没有办法解决这个问题,而无需更改递归调用以传递块的起始索引?
解决方案
推荐阅读
- javascript - 在操作帖子 url 中设置参数并更改它 asp.net
- git - 如何在 gitflow 中为“更新/升级第三方包”命名分支?
- amazon-web-services - 按 IP 限制(拒绝)存储桶列表
- html - 为什么表的列这么宽?
- oracle - 在 RDLC 和 Visual Studio 2012 的查询生成器中使用 ROWNUM 伪列
- reactjs - 在 Github 上部署 React 应用程序部署了新应用程序并且我的文件丢失了
- node.js - 为什么在谷歌云函数上启动的ffmpeg会抛出“错误:输出流错误:超出最大调用堆栈大小”?
- html - 旋转表头
- node.js - 如何在 package.json 中链接自定义脚本来调用 prestart mongod?
- docker - Hue 访问 HDFS:绕过默认的 hue.ini?