Scale vector |
| SSCAL/DSCAL/CSCAL/CSSCAL/CSCALC/ZSCAL/ZDSCAL/ZSCALC |
|
| and ZSCALC and in unconjugated form by the other |
|
| subprograms. Refer to “Purpose.” |
| incx | Increment for the array x, incx ≠ 0. x is stored forward |
|
| in array x with increment incx; that is, xi is stored in |
|
| x((i−1)⋅incx+1). |
|
| Use incx = 1 if the vector x is stored contiguously in |
|
| array x; that is, if xi is stored in x(i). Refer to “BLAS |
|
| Indexing Conventions” in the introduction to this |
|
| chapter. |
Output | x | If n ≤ 0, then x is unchanged. Otherwise, ax replaces |
|
| the input. |
Notes | The result is unspecified if incx = 0. | |
Fortran |
| SUBROUTINE SSCAL (N,A, X,INCX) |
Equivalent |
| REAL*4 A,X(*) |
IF ( N .LE. 0 ) RETURN
IX = 1
INCXA = ABS ( INCX )
DO 10 I = 1, N
X(IX) = A * X(IX)
IX = IX + INCXA
10CONTINUE RETURN END
Example Scale the REAL*8 vector x by 2, where x is a vector 10 elements long stored in a
INTEGER*4 | N,INCX | |
REAL*8 | A,X(20) | |
N = | 10 |
|
INCX = 1 |
| |
A = | 2.0D0 |
|
CALL DSCAL (N,A,X,INCX)
Chapter 2 Basic Vector Operations 135