c++ - B为 Armadillo 中对称矩阵时的A * B计算

标签 c++ performance visual-c++ armadillo blas

在 Armadillo 中有什么方法可以将对称矩阵乘以稠密矩阵(并利用我们有一个对称矩阵这一事实)?我知道 BLAS 中的 DSYMM 例程,但我正在处理的矩阵是 mat 类型(它们不是数组),所以我想知道 Armadillo 中是否有一些东西使用来自 BLAS 的 DSYMM 例程。 我在 Armadillo 文档中找不到任何内容。

最佳答案

源码中的文件include/armadillo_bits/def_blas.hpp(BLAS接口(interface))和include/armadillo_bits/glue_times_meat.hpp(实现乘法)没有引用dsymm(与 dgemm 对比)因此即使您的矩阵可能是对称的,乘法也不会利用这一点。

但是,如果您需要使用 dsymm,您可以使用 memptr()矩阵的方法来获取对原始连续内存的访问并自己直接调用 dsymm...

关于c++ - B为 Armadillo 中对称矩阵时的A * B计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50515957/

相关文章:

c++ - LabVIEW 和 C++ DLL

c++ - boolean 复合赋值中的隐式转换?

php - 执行多个 IF 的更有效方式

c++线程划分为微处理器

c++ - 为什么 Microsoft std::vector::insert 使用 rotate()?

c++ - 通过libstdc++调试

c++ - QListWidget 自动移动到列表末尾

c++ - 比较两个 vector ,使其更有效

python - 如何使用 Python 提高我在填补时间序列和数据列表空白方面的表现

c++ - if-else 和三元运算符的不同行为