当 B 是犰狳中的对称矩阵时的 A * B 计算
Posted
技术标签:
【中文标题】当 B 是犰狳中的对称矩阵时的 A * B 计算【英文标题】:A * B computation when B is a symmetric matrix in armadillo 【发布时间】:2018-05-24 18:31:37 【问题描述】:在犰狳中有什么方法可以将一个对称矩阵乘以一个密集矩阵(并利用我们有一个对称矩阵的事实)?我知道 BLAS 中的 DSYMM
例程,但我正在处理的矩阵是 mat
类型(它们不是数组),所以我想知道犰狳中是否有一些东西使用来自 BLAS 的 DSYMM
例程。
我在犰狳文档中找不到任何东西。
【问题讨论】:
犰狳内部使用 BLAS 进行矩阵乘法。在构建可执行文件时,如果将其与适当的库链接,它应该利用矩阵之一在进行乘法时是对称的这一事实。 【参考方案1】:源代码分发中的文件include/armadillo_bits/def_blas.hpp
(BLAS 接口)和include/armadillo_bits/glue_times_meat.hpp
(实现乘法)根本不引用dsymm
(与dgemm
相比),因此即使您的矩阵可能是对称的,乘法不会利用这一点。
但是,如果您需要使用dsymm
,您可以使用矩阵的memptr()
方法来获取对原始连续内存的访问权限并自己直接调用dsymm
...
【讨论】:
太好了,非常感谢。以上是关于当 B 是犰狳中的对称矩阵时的 A * B 计算的主要内容,如果未能解决你的问题,请参考以下文章