1 DOUBLE COMPLEX FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY)
2 * .. Scalar Arguments ..
3 INTEGER INCX,INCY,N
4 * ..
5 * .. Array Arguments ..
6 DOUBLE COMPLEX ZX(*),ZY(*)
7 * ..
8 *
9 * Purpose
10 * =======
11 *
12 * ZDOTU forms the dot product of two vectors.
13 *
14 * Further Details
15 * ===============
16 *
17 * jack dongarra, 3/11/78.
18 * modified 12/3/93, array(1) declarations changed to array(*)
19 *
20 * =====================================================================
21 *
22 * .. Local Scalars ..
23 DOUBLE COMPLEX ZTEMP
24 INTEGER I,IX,IY
25 * ..
26 ZTEMP = (0.0d0,0.0d0)
27 ZDOTU = (0.0d0,0.0d0)
28 IF (N.LE.0) RETURN
29 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
30 *
31 * code for both increments equal to 1
32 *
33 DO I = 1,N
34 ZTEMP = ZTEMP + ZX(I)*ZY(I)
35 END DO
36 ELSE
37 *
38 * code for unequal increments or equal increments
39 * not equal to 1
40 *
41 IX = 1
42 IY = 1
43 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
44 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
45 DO I = 1,N
46 ZTEMP = ZTEMP + ZX(IX)*ZY(IY)
47 IX = IX + INCX
48 IY = IY + INCY
49 END DO
50 END IF
51 ZDOTU = ZTEMP
52 RETURN
53 END
2 * .. Scalar Arguments ..
3 INTEGER INCX,INCY,N
4 * ..
5 * .. Array Arguments ..
6 DOUBLE COMPLEX ZX(*),ZY(*)
7 * ..
8 *
9 * Purpose
10 * =======
11 *
12 * ZDOTU forms the dot product of two vectors.
13 *
14 * Further Details
15 * ===============
16 *
17 * jack dongarra, 3/11/78.
18 * modified 12/3/93, array(1) declarations changed to array(*)
19 *
20 * =====================================================================
21 *
22 * .. Local Scalars ..
23 DOUBLE COMPLEX ZTEMP
24 INTEGER I,IX,IY
25 * ..
26 ZTEMP = (0.0d0,0.0d0)
27 ZDOTU = (0.0d0,0.0d0)
28 IF (N.LE.0) RETURN
29 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
30 *
31 * code for both increments equal to 1
32 *
33 DO I = 1,N
34 ZTEMP = ZTEMP + ZX(I)*ZY(I)
35 END DO
36 ELSE
37 *
38 * code for unequal increments or equal increments
39 * not equal to 1
40 *
41 IX = 1
42 IY = 1
43 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
44 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
45 DO I = 1,N
46 ZTEMP = ZTEMP + ZX(IX)*ZY(IY)
47 IX = IX + INCX
48 IY = IY + INCY
49 END DO
50 END IF
51 ZDOTU = ZTEMP
52 RETURN
53 END