LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
zdotc.f
Go to the documentation of this file.
00001 *> \brief \b ZDOTC
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *  Definition:
00009 *  ===========
00010 *
00011 *       COMPLEX*16 FUNCTION ZDOTC(N,ZX,INCX,ZY,INCY)
00012 * 
00013 *       .. Scalar Arguments ..
00014 *       INTEGER INCX,INCY,N
00015 *       ..
00016 *       .. Array Arguments ..
00017 *       COMPLEX*16 ZX(*),ZY(*)
00018 *       ..
00019 *  
00020 *
00021 *> \par Purpose:
00022 *  =============
00023 *>
00024 *> \verbatim
00025 *>
00026 *> ZDOTC forms the dot product of a vector.
00027 *> \endverbatim
00028 *
00029 *  Authors:
00030 *  ========
00031 *
00032 *> \author Univ. of Tennessee 
00033 *> \author Univ. of California Berkeley 
00034 *> \author Univ. of Colorado Denver 
00035 *> \author NAG Ltd. 
00036 *
00037 *> \date November 2011
00038 *
00039 *> \ingroup complex16_blas_level1
00040 *
00041 *> \par Further Details:
00042 *  =====================
00043 *>
00044 *> \verbatim
00045 *>
00046 *>     jack dongarra, 3/11/78.
00047 *>     modified 12/3/93, array(1) declarations changed to array(*)
00048 *> \endverbatim
00049 *>
00050 *  =====================================================================
00051       COMPLEX*16 FUNCTION ZDOTC(N,ZX,INCX,ZY,INCY)
00052 *
00053 *  -- Reference BLAS level1 routine (version 3.4.0) --
00054 *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
00055 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00056 *     November 2011
00057 *
00058 *     .. Scalar Arguments ..
00059       INTEGER INCX,INCY,N
00060 *     ..
00061 *     .. Array Arguments ..
00062       COMPLEX*16 ZX(*),ZY(*)
00063 *     ..
00064 *
00065 *  =====================================================================
00066 *
00067 *     .. Local Scalars ..
00068       COMPLEX*16 ZTEMP
00069       INTEGER I,IX,IY
00070 *     ..
00071 *     .. Intrinsic Functions ..
00072       INTRINSIC DCONJG
00073 *     ..
00074       ZTEMP = (0.0d0,0.0d0)
00075       ZDOTC = (0.0d0,0.0d0)
00076       IF (N.LE.0) RETURN
00077       IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
00078 *
00079 *        code for both increments equal to 1
00080 *
00081          DO I = 1,N
00082             ZTEMP = ZTEMP + DCONJG(ZX(I))*ZY(I)
00083          END DO
00084       ELSE
00085 *
00086 *        code for unequal increments or equal increments
00087 *          not equal to 1
00088 *
00089          IX = 1
00090          IY = 1
00091          IF (INCX.LT.0) IX = (-N+1)*INCX + 1
00092          IF (INCY.LT.0) IY = (-N+1)*INCY + 1
00093          DO I = 1,N
00094             ZTEMP = ZTEMP + DCONJG(ZX(IX))*ZY(IY)
00095             IX = IX + INCX
00096             IY = IY + INCY
00097          END DO
00098       END IF
00099       ZDOTC = ZTEMP
00100       RETURN
00101       END
 All Files Functions