Blas daxpy例程与矩阵

时间:2017-03-13 14:38:35

标签: matrix blas

我正在研究c ++中与矩阵相关的一些问题。我想解决这个问题:Y = aX + Y,其中X和Y是矩阵,a是常数。我想过使用daxpy BLAS例程,但是,DAXPY根据文档是一个向量例程,我得到的结果与在matlab中解决相同问题的结果不一样。

我目前正在运行:

F77NAME(daxpy)(N, a, X, 1, Y, 1);

1 个答案:

答案 0 :(得分:1)

当您需要执行操作Y=a*X+Y时,X', Y`是1D还是2D矩阵并不重要,因为操作是按元素完成的。

所以,如果你用单指针double A[] = new[] (M*N);分配矩阵,那么你可以通过将向量的维度定义为daxpy

来使用M*N
int MN = M*N;
int one = 1;
F77NAME(daxpy)(&MN, &a, &X, &one, &Y, &one);

与堆栈二维矩阵double A[3][2];相同,因为此内存按顺序分配。

否则,您需要使用for循环并分别添加每一行。