1 *> \brief \b CLACRT performs a linear transformation of a pair of complex vectors.
3 * =========== DOCUMENTATION ===========
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
9 *> Download CLACRT + dependencies
10 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/clacrt.f">
12 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/clacrt.f">
14 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clacrt.f">
21 * SUBROUTINE CLACRT( N, CX, INCX, CY, INCY, C, S )
23 * .. Scalar Arguments ..
24 * INTEGER INCX, INCY, N
27 * .. Array Arguments ..
28 * COMPLEX CX( * ), CY( * )
37 *> CLACRT performs the operation
39 *> ( c s )( x ) ==> ( x )
40 *> ( -s c )( y ) ( y )
42 *> where c and s are complex and the vectors x and y are complex.
51 *> The number of elements in the vectors CX and CY.
56 *> CX is COMPLEX array, dimension (N)
57 *> On input, the vector x.
58 *> On output, CX is overwritten with c*x + s*y.
64 *> The increment between successive values of CX. INCX <> 0.
69 *> CY is COMPLEX array, dimension (N)
70 *> On input, the vector y.
71 *> On output, CY is overwritten with -s*x + c*y.
77 *> The increment between successive values of CY. INCY <> 0.
88 *> C and S define the matrix
96 *> \author Univ. of Tennessee
97 *> \author Univ. of California Berkeley
98 *> \author Univ. of Colorado Denver
101 *> \date September 2012
103 *> \ingroup complexOTHERauxiliary
105 * =====================================================================
106 SUBROUTINE CLACRT( N, CX, INCX, CY, INCY, C, S )
108 * -- LAPACK auxiliary routine (version 3.4.2) --
109 * -- LAPACK is a software package provided by Univ. of Tennessee, --
110 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
113 * .. Scalar Arguments ..
114 INTEGER INCX, INCY, N
117 * .. Array Arguments ..
118 COMPLEX CX( * ), CY( * )
121 * =====================================================================
123 * .. Local Scalars ..
127 * .. Executable Statements ..
131 IF( INCX.EQ.1 .AND. INCY.EQ.1 )
134 * Code for unequal increments or equal increments not equal to 1
139 $ IX = ( -N+1 )*INCX + 1
141 $ IY = ( -N+1 )*INCY + 1
143 CTEMP = C*CX( IX ) + S*CY( IY )
144 CY( IY ) = C*CY( IY ) - S*CX( IX )
151 * Code for both increments equal to 1
155 CTEMP = C*CX( I ) + S*CY( I )
156 CY( I ) = C*CY( I ) - S*CX( I )