Rev 85756 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
*> \brief \b ZDOTC** =========== DOCUMENTATION ===========** Online html documentation available at* http://www.netlib.org/lapack/explore-html/** Definition:* ===========** COMPLEX*16 FUNCTION ZDOTC(N,ZX,INCX,ZY,INCY)** .. Scalar Arguments ..* INTEGER INCX,INCY,N* ..* .. Array Arguments ..* COMPLEX*16 ZX(*),ZY(*)* ..***> \par Purpose:* =============*>*> \verbatim*>*> ZDOTC forms the dot product of two complex vectors*> ZDOTC = X^H * 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 dot**> \par Further Details:* =====================*>*> \verbatim*>*> jack dongarra, 3/11/78.*> modified 12/3/93, array(1) declarations changed to array(*)*> \endverbatim*>* =====================================================================COMPLEX*16 FUNCTION ZDOTC(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* ..* .. Intrinsic Functions ..INTRINSIC DCONJG* ..ZTEMP = (0.0d0,0.0d0)ZDOTC = (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 + DCONJG(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 + DCONJG(ZX(IX))*ZY(IY)IX = IX + INCXIY = IY + INCYEND DOEND IFZDOTC = ZTEMPRETURN** End of ZDOTC*END