Diff for /rpl/lapack/blas/zdotc.f between versions 1.4 and 1.15

version 1.4, 2010/08/07 13:22:10 version 1.15, 2018/05/29 06:55:15
Line 1 Line 1
       DOUBLE COMPLEX FUNCTION ZDOTC(N,ZX,INCX,ZY,INCY)  *> \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 REAL 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 REAL 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.
   *
   *> \date November 2017
   *
   *> \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 ZDOTC(N,ZX,INCX,ZY,INCY)
   *
   *  -- Reference BLAS level1 routine (version 3.8.0) --
   *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
   *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   *     November 2017
   *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER INCX,INCY,N        INTEGER INCX,INCY,N
 *     ..  *     ..
 *     .. Array Arguments ..  *     .. Array Arguments ..
       DOUBLE COMPLEX ZX(*),ZY(*)        COMPLEX*16 ZX(*),ZY(*)
 *     ..  *     ..
 *  *
 *  Purpose  
 *  =======  
 *  
 *  ZDOTC forms the dot product of a vector.  
 *  
 *  Further Details  
 *  ===============  
 *  
 *     jack dongarra, 3/11/78.  
 *     modified 12/3/93, array(1) declarations changed to array(*)  
 *  
 *  =====================================================================  *  =====================================================================
 *  *
 *     .. Local Scalars ..  *     .. Local Scalars ..
       DOUBLE COMPLEX ZTEMP        COMPLEX*16 ZTEMP
       INTEGER I,IX,IY        INTEGER I,IX,IY
 *     ..  *     ..
 *     .. Intrinsic Functions ..  *     .. Intrinsic Functions ..
Line 29 Line 107
       ZTEMP = (0.0d0,0.0d0)        ZTEMP = (0.0d0,0.0d0)
       ZDOTC = (0.0d0,0.0d0)        ZDOTC = (0.0d0,0.0d0)
       IF (N.LE.0) RETURN        IF (N.LE.0) RETURN
       IF (INCX.EQ.1 .AND. INCY.EQ.1) GO TO 20        IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
 *  *
 *        code for unequal increments or equal increments  *        code for both increments equal to 1
 *          not equal to 1  
 *  *
       IX = 1           DO I = 1,N
       IY = 1              ZTEMP = ZTEMP + DCONJG(ZX(I))*ZY(I)
       IF (INCX.LT.0) IX = (-N+1)*INCX + 1           END DO
       IF (INCY.LT.0) IY = (-N+1)*INCY + 1        ELSE
       DO 10 I = 1,N  
           ZTEMP = ZTEMP + DCONJG(ZX(IX))*ZY(IY)  
           IX = IX + INCX  
           IY = IY + INCY  
    10 CONTINUE  
       ZDOTC = ZTEMP  
       RETURN  
 *  *
 *        code for both increments equal to 1  *        code for unequal increments or equal increments
   *          not equal to 1
 *  *
    20 DO 30 I = 1,N           IX = 1
           ZTEMP = ZTEMP + DCONJG(ZX(I))*ZY(I)           IY = 1
    30 CONTINUE           IF (INCX.LT.0) IX = (-N+1)*INCX + 1
            IF (INCY.LT.0) IY = (-N+1)*INCY + 1
            DO I = 1,N
               ZTEMP = ZTEMP + DCONJG(ZX(IX))*ZY(IY)
               IX = IX + INCX
               IY = IY + INCY
            END DO
         END IF
       ZDOTC = ZTEMP        ZDOTC = ZTEMP
       RETURN        RETURN
       END        END

Removed from v.1.4  
changed lines
  Added in v.1.15


CVSweb interface <joel.bertrand@systella.fr>