Diff for /rpl/lapack/blas/ddot.f between versions 1.6 and 1.7

version 1.6, 2010/12/21 13:51:24 version 1.7, 2011/07/22 07:38:01
Line 30 Line 30
       DDOT = 0.0d0        DDOT = 0.0d0
       DTEMP = 0.0d0        DTEMP = 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  
 *          not equal to 1  
 *  
       IX = 1  
       IY = 1  
       IF (INCX.LT.0) IX = (-N+1)*INCX + 1  
       IF (INCY.LT.0) IY = (-N+1)*INCY + 1  
       DO 10 I = 1,N  
           DTEMP = DTEMP + DX(IX)*DY(IY)  
           IX = IX + INCX  
           IY = IY + INCY  
    10 CONTINUE  
       DDOT = DTEMP  
       RETURN  
 *  *
 *        code for both increments equal to 1  *        code for both increments equal to 1
 *  *
 *  *
 *        clean-up loop  *        clean-up loop
 *  *
    20 M = MOD(N,5)           M = MOD(N,5)
       IF (M.EQ.0) GO TO 40           IF (M.NE.0) THEN
       DO 30 I = 1,M              DO I = 1,M
           DTEMP = DTEMP + DX(I)*DY(I)                 DTEMP = DTEMP + DX(I)*DY(I)
    30 CONTINUE              END DO
       IF (N.LT.5) GO TO 60              IF (N.LT.5) THEN
    40 MP1 = M + 1                 DDOT=DTEMP
       DO 50 I = MP1,N,5              RETURN
               END IF
            END IF
            MP1 = M + 1
            DO I = MP1,N,5
           DTEMP = DTEMP + DX(I)*DY(I) + DX(I+1)*DY(I+1) +            DTEMP = DTEMP + DX(I)*DY(I) + DX(I+1)*DY(I+1) +
      +            DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4)       $            DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4)
    50 CONTINUE           END DO
    60 DDOT = DTEMP        ELSE
   *
   *        code for unequal increments or equal increments
   *          not equal to 1
   *
            IX = 1
            IY = 1
            IF (INCX.LT.0) IX = (-N+1)*INCX + 1
            IF (INCY.LT.0) IY = (-N+1)*INCY + 1
            DO I = 1,N
               DTEMP = DTEMP + DX(IX)*DY(IY)
               IX = IX + INCX
               IY = IY + INCY
            END DO
         END IF
         DDOT = DTEMP
       RETURN        RETURN
       END        END

Removed from v.1.6  
changed lines
  Added in v.1.7


CVSweb interface <joel.bertrand@systella.fr>