 LAPACK  3.8.0 LAPACK: Linear Algebra PACKage

## ◆ zdrot()

 subroutine zdrot ( integer N, complex*16, dimension( * ) CX, integer INCX, complex*16, dimension( * ) CY, integer INCY, double precision C, double precision S )

ZDROT

Purpose:
``` 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*16 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*16 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 DOUBLE PRECISION On entry, C specifies the cosine, cos.``` [in] S ``` S is DOUBLE PRECISION On entry, S specifies the sine, sin.```
Date
December 2016

Definition at line 100 of file zdrot.f.

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