1 COMPLEX FUNCTION CDOTC(N,CX,INCX,CY,INCY) 2c Copyright (c) 1996 California Institute of Technology, Pasadena, CA. 3c ALL RIGHTS RESERVED. 4c Based on Government Sponsored Research NAS7-03001. 5C>> 1994-11-11 CDOTC Krogh Declared all vars. 6C>> 1985-08-02 CDOTC Lawson Initial code. 7C 8C RETURNS THE DOT PRODUCT FOR COMPLEX CX AND CY, USES CONJUGATE(CX) 9C CDOTC = SUM FOR I = 0 TO N-1 OF CONJ(CX(LX+I*INCX))*CY(LY+I*INCY), 10C WHERE LX = 1 IF INCX .GE. 0, ELSE LX = (-INCX)*N, AND LY IS 11C DEFINED IN A SIMILAR WAY USING INCY. 12C 13 INTEGER N, INCX, INCY, KX, KY, I, NS 14 COMPLEX CX(*),CY(*) 15C 16 CDOTC = (0.,0.) 17 IF(N .LE. 0)RETURN 18 IF(INCX.EQ.INCY.AND.INCX.GT.0) GO TO 20 19 KX = 1 20 KY = 1 21 IF(INCX.LT.0) KX = 1+(1-N)*INCX 22 IF(INCY.LT.0) KY = 1+(1-N)*INCY 23 DO 10 I = 1,N 24 CDOTC = CDOTC + CONJG(CX(KX))*CY(KY) 25 KX = KX + INCX 26 KY = KY + INCY 27 10 CONTINUE 28 RETURN 29 20 CONTINUE 30 NS = N*INCX 31 DO 30 I=1,NS,INCX 32 CDOTC = CONJG(CX(I))*CY(I) + CDOTC 33 30 CONTINUE 34 RETURN 35 END 36