 LAPACK  3.10.0 LAPACK: Linear Algebra PACKage

## ◆ csrot()

 subroutine csrot ( integer N, complex, dimension( * ) CX, integer INCX, complex, dimension( * ) CY, integer INCY, real C, real S )

CSROT

Purpose:
``` CSROT applies a plane rotation, where the cos and sin (c and s) are real
and the vectors cx and cy are complex.
jack dongarra, linpack, 3/11/78.```
Parameters
 [in] N ``` N is INTEGER On entry, N specifies the order of the vectors cx and cy. N must be at least zero.``` [in,out] CX ``` CX is COMPLEX array, dimension at least ( 1 + ( N - 1 )*abs( INCX ) ). Before entry, the incremented array CX must contain the n element vector cx. On exit, CX is overwritten by the updated vector cx.``` [in] INCX ``` INCX is INTEGER On entry, INCX specifies the increment for the elements of CX. INCX must not be zero.``` [in,out] CY ``` CY is COMPLEX array, dimension at least ( 1 + ( N - 1 )*abs( INCY ) ). Before entry, the incremented array CY must contain the n element vector cy. On exit, CY is overwritten by the updated vector cy.``` [in] INCY ``` INCY is INTEGER On entry, INCY specifies the increment for the elements of CY. INCY must not be zero.``` [in] C ``` C is REAL On entry, C specifies the cosine, cos.``` [in] S ``` S is REAL On entry, S specifies the sine, sin.```

Definition at line 97 of file csrot.f.

98 *
99 * -- Reference BLAS level1 routine --
100 * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
101 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
102 *
103 * .. Scalar Arguments ..
104  INTEGER INCX, INCY, N
105  REAL C, S
106 * ..
107 * .. Array Arguments ..
108  COMPLEX CX( * ), CY( * )
109 * ..
110 *
111 * =====================================================================
112 *
113 * .. Local Scalars ..
114  INTEGER I, IX, IY
115  COMPLEX CTEMP
116 * ..
117 * .. Executable Statements ..
118 *
119  IF( n.LE.0 )
120  \$ RETURN
121  IF( incx.EQ.1 .AND. incy.EQ.1 ) THEN
122 *
123 * code for both increments equal to 1
124 *
125  DO i = 1, n
126  ctemp = c*cx( i ) + s*cy( i )
127  cy( i ) = c*cy( i ) - s*cx( i )
128  cx( i ) = ctemp
129  END DO
130  ELSE
131 *
132 * code for unequal increments or equal increments not equal
133 * to 1
134 *
135  ix = 1
136  iy = 1
137  IF( incx.LT.0 )
138  \$ ix = ( -n+1 )*incx + 1
139  IF( incy.LT.0 )
140  \$ iy = ( -n+1 )*incy + 1
141  DO i = 1, n
142  ctemp = c*cx( ix ) + s*cy( iy )
143  cy( iy ) = c*cy( iy ) - s*cx( ix )
144  cx( ix ) = ctemp
145  ix = ix + incx
146  iy = iy + incy
147  END DO
148  END IF
149  RETURN
150 *
151 * End of CSROT
152 *
Here is the caller graph for this function: