diff options
Diffstat (limited to 'BLAS/SRC/srot.f')
-rw-r--r-- | BLAS/SRC/srot.f | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/BLAS/SRC/srot.f b/BLAS/SRC/srot.f index 5903b561..b53b0fdb 100644 --- a/BLAS/SRC/srot.f +++ b/BLAS/SRC/srot.f @@ -25,30 +25,31 @@ INTEGER I,IX,IY * .. 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 +* code for both increments 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 - STEMP = C*SX(IX) + S*SY(IY) - SY(IY) = C*SY(IY) - S*SX(IX) - SX(IX) = STEMP - IX = IX + INCX - IY = IY + INCY - 10 CONTINUE - RETURN + DO I = 1,N + STEMP = C*SX(I) + S*SY(I) + SY(I) = C*SY(I) - S*SX(I) + SX(I) = STEMP + END DO + ELSE * -* code for both increments equal to 1 +* code for unequal increments or equal increments not equal +* to 1 * - 20 DO 30 I = 1,N - STEMP = C*SX(I) + S*SY(I) - SY(I) = C*SY(I) - S*SX(I) - SX(I) = STEMP - 30 CONTINUE + 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 + STEMP = C*SX(IX) + S*SY(IY) + SY(IY) = C*SY(IY) - S*SX(IX) + SX(IX) = STEMP + IX = IX + INCX + IY = IY + INCY + END DO + END IF RETURN END |