125 SUBROUTINE ztrexc( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, INFO )
134 INTEGER IFST, ILST, INFO, LDQ, LDT, N
137 COMPLEX*16 Q( ldq, * ), T( ldt, * )
144 INTEGER K, M1, M2, M3
146 COMPLEX*16 SN, T11, T22, TEMP
156 INTRINSIC dconjg, max
163 wantq = lsame( compq,
'V' )
164 IF( .NOT.lsame( compq,
'N' ) .AND. .NOT.wantq )
THEN
166 ELSE IF( n.LT.0 )
THEN
168 ELSE IF( ldt.LT.max( 1, n ) )
THEN
170 ELSE IF( ldq.LT.1 .OR. ( wantq .AND. ldq.LT.max( 1, n ) ) )
THEN
172 ELSE IF( ifst.LT.1 .OR. ifst.GT.n )
THEN
174 ELSE IF( ilst.LT.1 .OR. ilst.GT.n )
THEN
178 CALL xerbla(
'ZTREXC', -info )
184 IF( n.EQ.1 .OR. ifst.EQ.ilst )
187 IF( ifst.LT.ilst )
THEN
203 DO 10 k = ifst + m1, ilst + m2, m3
212 CALL zlartg( t( k, k+1 ), t22-t11, cs, sn, temp )
217 $
CALL zrot( n-k-1, t( k, k+2 ), ldt, t( k+1, k+2 ), ldt, cs,
219 CALL zrot( k-1, t( 1, k ), 1, t( 1, k+1 ), 1, cs,
229 CALL zrot( n, q( 1, k ), 1, q( 1, k+1 ), 1, cs,
subroutine zlartg(F, G, CS, SN, R)
ZLARTG generates a plane rotation with real cosine and complex sine.
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztrexc(COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, INFO)
ZTREXC
subroutine zrot(N, CX, INCX, CY, INCY, C, S)
ZROT applies a plane rotation with real cosine and complex sine to a pair of complex vectors...