SAXPY

SAXPYScalar Alpha X Plus Y)是一个在 Basic Linear Algebra Subprograms(BLAS)数据包中的函数,并且是一个并行向量处理机(vector processor)中常用的计算操作指令。SAXPY是标量乘法和矢量加法的组合:

:\mathbf{y} = \alpha \mathbf{x} + \mathbf{y}, \,

其中\alpha是标量,\mathbf{x}和\mathbf{y}是矢量。对於大多数函数,BLAS数据包中都存在四种的SAXPY的变体,分别是SAXPYDAXPYCAXPYZAXPY,这些变体的区别仅在於标量\alpha的数据类型不同。例程的说明在外部链接中可以找到。

不同数据类型
SAXPY
SAXPY不仅是标量乘法加矢量加法运算的组合的通称,而且是特定的变体,其中标量\alpha和矢量\mathbf{x}、\mathbf{y}是单精度的。

DAXPY
DAXPY以双精度的\alpha、\mathbf{x}和\mathbf{y}表示SAXPY。

CAXPY
CAXPY以複數\alpha、\mathbf{x}和\mathbf{y}表示SAXPY。

ZAXPY
ZAXPY以双精度複數\alpha、\mathbf{x}和\mathbf{y}表示SAXPY。

泛型实现
SAXPY最简单的泛型实现如下:

for (int i = m; i < n; i++) {
y[i] = a * x[i] + y[i];
}

外部链接

评论 (0)

  • 还没有评论,来抢沙发吧。