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];
}

外部链接[编辑]