These subprograms perform the following computation, using the scalar alpha and vectors x, y, and z:
alpha, x, y, z | Subprogram |
Short-precision real | SZAXPY |
Long-precision real | DZAXPY |
Short-precision complex | CZAXPY |
Long-precision complex | ZZAXPY |
Fortran | CALL SZAXPY | DZAXPY | CZAXPY | ZZAXPY (n, alpha, x, incx, y, incy, z, incz) |
C and C++ | szaxpy | dzaxpy | czaxpy | zzaxpy (n, alpha, x, incx, y, incy, z, incz); |
PL/I | CALL SZAXPY | DZAXPY | CZAXPY | ZZAXPY (n, alpha, x, incx, y, incy, z, incz); |
The computation is expressed as follows:
See reference [79]. If n is 0, no computation is performed. For CZAXPY, intermediate results are accumulated in long precision.
None
n < 0
This example shows vectors x and y with positive strides.
N ALPHA X INCX Y INCY Z INCZ | | | | | | | | CALL SZAXPY( 5 , 2.0 , X , 1 , Y , 2 , Z , 1 ) X = (1.0, 2.0, 3.0, 4.0, 5.0) Y = (1.0, . , 1.0, . , 1.0, . , 1.0, . , 1.0)
Z = (3.0, 5.0, 7.0, 9.0, 11.0)
This example shows vectors x and y having strides of opposite sign, and an output vector z having a positive stride. For y, which has negative stride, processing begins at element Y(5), which is 1.0.
N ALPHA X INCX Y INCY Z INCZ | | | | | | | | CALL SZAXPY( 5 , 2.0 , X , 1 , Y , -1 , Z , 2 ) X = (1.0, 2.0, 3.0, 4.0, 5.0) Y = (5.0, 4.0, 3.0, 2.0, 1.0)
Z = (3.0, . , 6.0, . , 9.0, . , 12.0, . , 15.0)
This example shows a vector, x, with 0 stride, and a vector, z, with negative stride. x is treated like a vector of length n, all of whose elements are the same as the single element in x. For vector z, results are stored beginning in element Z(5).
N ALPHA X INCX Y INCY Z INCZ | | | | | | | | CALL SZAXPY( 5 , 2.0 , X , 0 , Y , 1 , Z , -1 ) X = (1.0) Y = (5.0, 4.0, 3.0, 2.0, 1.0)
Z = (3.0, 4.0, 5.0, 6.0, 7.0)
This example shows a vector, y, with 0 stride. y is treated like a vector of length n, all of whose elements are the same as the single element in y.
N ALPHA X INCX Y INCY Z INCZ | | | | | | | | CALL SZAXPY( 5 , 2.0 , X , 1 , Y , 0 , Z , 1 ) X = (1.0, 2.0, 3.0, 4.0, 5.0) Y = (5.0)
Z = (7.0, 9.0, 11.0, 13.0, 15.0)
This example shows how SZAXPY can be used to compute a scalar value. In this case, vectors x and y contain scalar values. The strides of all vectors, x, y, and z, are 0. The number of elements to be processed, n, is 1.
N ALPHA X INCX Y INCY Z INCZ | | | | | | | | CALL SZAXPY( 1 , 2.0 , X , 0 , Y , 0 , Z , 0 ) X = (1.0) Y = (5.0)
Z = (7.0)
This example shows vectors x and y, containing complex numbers and having positive strides.
N ALPHA X INCX Y INCY Z INCZ | | | | | | | | CALL CZAXPY( 3 ,ALPHA, X , 1 , Y , 2 , Z , 1 ) ALPHA = (2.0, 3.0) X = ((1.0, 2.0), (2.0, 0.0), (3.0, 5.0)) Y = ((1.0, 1.0), . , (0.0, 2.0), . , (5.0, 4.0))
Z = ((-3.0, 8.0), (4.0, 8.0), (-4.0, 23.0))