01: SUBROUTINE CAXPY(N,CA,CX,INCX,CY,INCY) 02: * .. Scalar Arguments .. 03: COMPLEX CA 04: INTEGER INCX,INCY,N 05: * .. 06: * .. Array Arguments .. 07: COMPLEX CX(*),CY(*) 08: * .. 09: * 10: * Purpose 11: * ======= 12: * 13: * CAXPY constant times a vector plus a vector. 14: * 15: * Further Details 16: * =============== 17: * 18: * jack dongarra, linpack, 3/11/78. 19: * modified 12/3/93, array(1) declarations changed to array(*) 20: * 21: * ===================================================================== 22: * 23: * .. Local Scalars .. 24: INTEGER I,IX,IY 25: * .. 26: * .. External Functions .. 27: REAL SCABS1 28: EXTERNAL SCABS1 29: * .. 30: IF (N.LE.0) RETURN 31: IF (SCABS1(CA).EQ.0.0E+0) RETURN 32: IF (INCX.EQ.1 .AND. INCY.EQ.1) GO TO 20 33: * 34: * code for unequal increments or equal increments 35: * not equal to 1 36: * 37: IX = 1 38: IY = 1 39: IF (INCX.LT.0) IX = (-N+1)*INCX + 1 40: IF (INCY.LT.0) IY = (-N+1)*INCY + 1 41: DO 10 I = 1,N 42: CY(IY) = CY(IY) + CA*CX(IX) 43: IX = IX + INCX 44: IY = IY + INCY 45: 10 CONTINUE 46: RETURN 47: * 48: * code for both increments equal to 1 49: * 50: 20 DO 30 I = 1,N 51: CY(I) = CY(I) + CA*CX(I) 52: 30 CONTINUE 53: RETURN 54: END 55: