1: *> \brief \b ZDOTU
2: *
3: * =========== DOCUMENTATION ===========
4: *
5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
7: *
8: * Definition:
9: * ===========
10: *
11: * COMPLEX*16 FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY)
12: *
13: * .. Scalar Arguments ..
14: * INTEGER INCX,INCY,N
15: * ..
16: * .. Array Arguments ..
17: * COMPLEX*16 ZX(*),ZY(*)
18: * ..
19: *
20: *
21: *> \par Purpose:
22: * =============
23: *>
24: *> \verbatim
25: *>
26: *> ZDOTU forms the dot product of two complex vectors
27: *> ZDOTU = X^T * Y
28: *>
29: *> \endverbatim
30: *
31: * Arguments:
32: * ==========
33: *
34: *> \param[in] N
35: *> \verbatim
36: *> N is INTEGER
37: *> number of elements in input vector(s)
38: *> \endverbatim
39: *>
40: *> \param[in] ZX
41: *> \verbatim
42: *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
43: *> \endverbatim
44: *>
45: *> \param[in] INCX
46: *> \verbatim
47: *> INCX is INTEGER
48: *> storage spacing between elements of ZX
49: *> \endverbatim
50: *>
51: *> \param[in] ZY
52: *> \verbatim
53: *> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
54: *> \endverbatim
55: *>
56: *> \param[in] INCY
57: *> \verbatim
58: *> INCY is INTEGER
59: *> storage spacing between elements of ZY
60: *> \endverbatim
61: *
62: * Authors:
63: * ========
64: *
65: *> \author Univ. of Tennessee
66: *> \author Univ. of California Berkeley
67: *> \author Univ. of Colorado Denver
68: *> \author NAG Ltd.
69: *
70: *> \ingroup complex16_blas_level1
71: *
72: *> \par Further Details:
73: * =====================
74: *>
75: *> \verbatim
76: *>
77: *> jack dongarra, 3/11/78.
78: *> modified 12/3/93, array(1) declarations changed to array(*)
79: *> \endverbatim
80: *>
81: * =====================================================================
82: COMPLEX*16 FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY)
83: *
84: * -- Reference BLAS level1 routine --
85: * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
86: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
87: *
88: * .. Scalar Arguments ..
89: INTEGER INCX,INCY,N
90: * ..
91: * .. Array Arguments ..
92: COMPLEX*16 ZX(*),ZY(*)
93: * ..
94: *
95: * =====================================================================
96: *
97: * .. Local Scalars ..
98: COMPLEX*16 ZTEMP
99: INTEGER I,IX,IY
100: * ..
101: ZTEMP = (0.0d0,0.0d0)
102: ZDOTU = (0.0d0,0.0d0)
103: IF (N.LE.0) RETURN
104: IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
105: *
106: * code for both increments equal to 1
107: *
108: DO I = 1,N
109: ZTEMP = ZTEMP + ZX(I)*ZY(I)
110: END DO
111: ELSE
112: *
113: * code for unequal increments or equal increments
114: * not equal to 1
115: *
116: IX = 1
117: IY = 1
118: IF (INCX.LT.0) IX = (-N+1)*INCX + 1
119: IF (INCY.LT.0) IY = (-N+1)*INCY + 1
120: DO I = 1,N
121: ZTEMP = ZTEMP + ZX(IX)*ZY(IY)
122: IX = IX + INCX
123: IY = IY + INCY
124: END DO
125: END IF
126: ZDOTU = ZTEMP
127: RETURN
128: *
129: * End of ZDOTU
130: *
131: END
CVSweb interface <joel.bertrand@systella.fr>