Blas daxpy 例程与矩阵

Blas daxpy routine with matrices

我正在用 C++ 处理一些与矩阵相关的问题。我想解题:Y = aX + Y,其中X和Y是矩阵,a是常数。我考虑过使用 daxpy BLAS 例程,但是,根据文档,DAXPY 是一个矢量例程,我没有得到与在 matlab 中解决相同问题时相同的结果。

我目前运行这个:

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

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

因此,如果您在单个指针中分配矩阵 double A[] = new[] (M*N);,那么您可以通过将向量的维度定义为 M*N

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

堆栈二维矩阵double A[3][2];也是如此,因为此内存是按顺序分配的。

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