1*> \brief \b SROT 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8* Definition: 9* =========== 10* 11* SUBROUTINE SROT(N,SX,INCX,SY,INCY,C,S) 12* 13* .. Scalar Arguments .. 14* REAL C,S 15* INTEGER INCX,INCY,N 16* .. 17* .. Array Arguments .. 18* REAL SX(*),SY(*) 19* .. 20* 21* 22*> \par Purpose: 23* ============= 24*> 25*> \verbatim 26*> 27*> applies a plane rotation. 28*> \endverbatim 29* 30* Authors: 31* ======== 32* 33*> \author Univ. of Tennessee 34*> \author Univ. of California Berkeley 35*> \author Univ. of Colorado Denver 36*> \author NAG Ltd. 37* 38*> \date November 2011 39* 40*> \ingroup single_blas_level1 41* 42*> \par Further Details: 43* ===================== 44*> 45*> \verbatim 46*> 47*> jack dongarra, linpack, 3/11/78. 48*> modified 12/3/93, array(1) declarations changed to array(*) 49*> \endverbatim 50*> 51* ===================================================================== 52 SUBROUTINE SROT(N,SX,INCX,SY,INCY,C,S) 53* 54* -- Reference BLAS level1 routine (version 3.4.0) -- 55* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- 56* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 57* November 2011 58* 59* .. Scalar Arguments .. 60 REAL C,S 61 INTEGER INCX,INCY,N 62* .. 63* .. Array Arguments .. 64 REAL SX(*),SY(*) 65* .. 66* 67* ===================================================================== 68* 69* .. Local Scalars .. 70 REAL STEMP 71 INTEGER I,IX,IY 72* .. 73 IF (N.LE.0) RETURN 74 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN 75* 76* code for both increments equal to 1 77* 78 DO I = 1,N 79 STEMP = C*SX(I) + S*SY(I) 80 SY(I) = C*SY(I) - S*SX(I) 81 SX(I) = STEMP 82 END DO 83 ELSE 84* 85* code for unequal increments or equal increments not equal 86* to 1 87* 88 IX = 1 89 IY = 1 90 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 91 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 92 DO I = 1,N 93 STEMP = C*SX(IX) + S*SY(IY) 94 SY(IY) = C*SY(IY) - S*SX(IX) 95 SX(IX) = STEMP 96 IX = IX + INCX 97 IY = IY + INCY 98 END DO 99 END IF 100 RETURN 101 END 102c $Id$ 103