6

如何使用 Blas 将实数矩阵与复数向量相乘?当我使用 ccsrgemv() 之类的函数时,会出现类型不匹配错误?

error: argument of type "float *" is incompatible with parameter of type "std::complex<float> *"
4

1 回答 1

5

使用两个矩阵向量乘法 (A * (x + iy) = A * x + i A * y)。更准确地说,将您的复向量视为步幅为 2 的两个纠缠实向量。BLAS 让您可以做到这一点。

更新:实际上,我没有注意到你在做 Sparse BLAS。因为dgemv我的把戏有效,但csrgemv它没有。恐怕您必须分别维护实部和虚部。

于 2011-10-01T09:54:48.507 回答