?axpy
向量缩放后的乘积与另一向量的加和,即。
alpha是乘法系数,x和y是长度为n的向量。
接口定义
C interface:
void cblas_saxpy(const BLASINT n, const float alpha, const float *x, const BLASINT incx, float *y, const BLASINT incy);
void cblas_daxpy(const BLASINT n, const double alpha, const double *x, const BLASINT incx, double *y, const BLASINT incy);
void cblas_caxpy(const BLASINT n, const void *alpha, const void *x, const BLASINT incx, void *y, const BLASINT incy);
void cblas_zaxpy(const BLASINT n, const void *alpha, const void *x, const BLASINT incx, void *y, const BLASINT incy);
Fortran interface:
CALL SAXPY(N, ALPHA, X, INCX, Y, INCY)
CALL DAXPY(N, ALPHA, X, INCX, Y, INCY)
CALL CAXPY(N, ALPHA, X, INCX, Y, INCY)
CALL ZAXPY(N, ALPHA, X, INCX, Y, INCY)
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
n |
整型数 |
表示x向量的元素个数。 |
输入 |
alpha |
|
表示乘法系数。 |
输入 |
x |
|
向量x,向量规模至少是(1+(n-1)*abs(incx))。 |
输入 |
incx |
整型数 |
表示x向量增长步长。 |
输入 |
y |
|
向量y,向量规模至少是(1+(n-1)*abs(incy))。 |
输入/输出 |
incy |
整型数 |
表示y向量增长步长。 |
输入 |
依赖
#include "kblas.h"
示例
C interface:
float alpha = 2.0; int n = 5, incx = 1, incy = 1; /** * X:f 0.340188, -0.105617, 0.283099, 0.298440, 0.411647 * Y: -0.302449, -0.164777, 0.268230, -0.222225, 0.053970 */ float x[5] = {0.340188, -0.105617, 0.283099, 0.298440, 0.411647}; float y[5] = {-0.302449, -0.164777, 0.268230, -0.222225, 0.053970}; cblas_saxpy(n, alpha, x, incx, y, incy); /** * Output Y: 0.377927, -0.376011, 0.834428, 0.374655, 0.877264 */
Fortran interface:
REAL(4) :: ALPHA=2.0 INTEGER :: N=5 INTEGER :: INCX=1 INTEGER :: INCY=1 REAL(4) :: X(5) DATA X /0.340188, -0.105617, 0.283099, 0.298440, 0.411647/ REAL(4) :: Y(5) DATA Y /-0.302449, -0.164777, 0.268230, -0.222225, 0.053970/ CALL SAXPY(N, ALPHA, X, INCX, Y, INCY) * Output Y : 0.377927, -0.376011, 0.834428, 0.374655, 0.877264