【问题标题】:A * B computation when B is a symmetric matrix in armadillo当 B 是犰狳中的对称矩阵时的 A * B 计算
【发布时间】:2018-05-24 18:31:37
【问题描述】:

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

【问题讨论】:

  • 犰狳内部使用 BLAS 进行矩阵乘法。在构建可执行文件时,如果将其与适当的库链接,它应该利用矩阵之一在进行乘法时是对称的这一事实。

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


【解决方案1】:

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

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

【讨论】:

  • 太好了,非常感谢。
猜你喜欢
  • 2017-09-26
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 1970-01-01
相关资源
最近更新 更多