Rev 85167 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
*> \brief \b ZDOTU** =========== DOCUMENTATION ===========** Online html documentation available at* http://www.netlib.org/lapack/explore-html/** Definition:* ===========** COMPLEX*16 FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY)** .. Scalar Arguments ..* INTEGER INCX,INCY,N* ..* .. Array Arguments ..* COMPLEX*16 ZX(*),ZY(*)* ..***> \par Purpose:* =============*>*> \verbatim*>*> ZDOTU forms the dot product of two complex vectors*> ZDOTU = X^T * Y*>*> \endverbatim** Arguments:* ==========**> \param[in] N*> \verbatim*> N is INTEGER*> number of elements in input vector(s)*> \endverbatim*>*> \param[in] ZX*> \verbatim*> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) )*> \endverbatim*>*> \param[in] INCX*> \verbatim*> INCX is INTEGER*> storage spacing between elements of ZX*> \endverbatim*>*> \param[in] ZY*> \verbatim*> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) )*> \endverbatim*>*> \param[in] INCY*> \verbatim*> INCY is INTEGER*> storage spacing between elements of ZY*> \endverbatim** Authors:* ========**> \author Univ. of Tennessee*> \author Univ. of California Berkeley*> \author Univ. of Colorado Denver*> \author NAG Ltd.**> \ingroup complex16_blas_level1**> \par Further Details:* =====================*>*> \verbatim*>*> jack dongarra, 3/11/78.*> modified 12/3/93, array(1) declarations changed to array(*)*> \endverbatim*>* =====================================================================COMPLEX*16 FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY)** -- Reference BLAS level1 routine --* -- Reference BLAS is a software package provided by Univ. of Tennessee, --* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--** .. Scalar Arguments ..INTEGER INCX,INCY,N* ..* .. Array Arguments ..COMPLEX*16 ZX(*),ZY(*)* ..** =====================================================================** .. Local Scalars ..COMPLEX*16 ZTEMPINTEGER I,IX,IY* ..ZTEMP = (0.0d0,0.0d0)ZDOTU = (0.0d0,0.0d0)IF (N.LE.0) RETURNIF (INCX.EQ.1 .AND. INCY.EQ.1) THEN** code for both increments equal to 1*DO I = 1,NZTEMP = ZTEMP + ZX(I)*ZY(I)END DOELSE** code for unequal increments or equal increments* not equal to 1*IX = 1IY = 1IF (INCX.LT.0) IX = (-N+1)*INCX + 1IF (INCY.LT.0) IY = (-N+1)*INCY + 1DO I = 1,NZTEMP = ZTEMP + ZX(IX)*ZY(IY)IX = IX + INCXIY = IY + INCYEND DOEND IFZDOTU = ZTEMPRETURN** End of ZDOTU*END