139 SUBROUTINE ztzrqf( M, N, A, LDA, TAU, INFO )
147 INTEGER INFO, LDA, M, N
150 COMPLEX*16 A( lda, * ), TAU( * )
156 COMPLEX*16 CONE, CZERO
157 parameter ( cone = ( 1.0d+0, 0.0d+0 ),
158 $ czero = ( 0.0d+0, 0.0d+0 ) )
165 INTRINSIC dconjg, max, min
178 ELSE IF( n.LT.m )
THEN
180 ELSE IF( lda.LT.max( 1, m ) )
THEN
184 CALL xerbla(
'ZTZRQF', -info )
203 a( k, k ) = dconjg( a( k, k ) )
204 CALL zlacgv( n-m, a( k, m1 ), lda )
206 CALL zlarfg( n-m+1, alpha, a( k, m1 ), lda, tau( k ) )
208 tau( k ) = dconjg( tau( k ) )
210 IF( tau( k ).NE.czero .AND. k.GT.1 )
THEN
219 CALL zcopy( k-1, a( 1, k ), 1, tau, 1 )
223 CALL zgemv(
'No transpose', k-1, n-m, cone, a( 1, m1 ),
224 $ lda, a( k, m1 ), lda, cone, tau, 1 )
229 CALL zaxpy( k-1, -dconjg( tau( k ) ), tau, 1, a( 1, k ),
231 CALL zgerc( k-1, n-m, -dconjg( tau( k ) ), tau, 1,
232 $ a( k, m1 ), lda, a( 1, m1 ), lda )
subroutine zcopy(N, ZX, INCX, ZY, INCY)
ZCOPY
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine zgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERC
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztzrqf(M, N, A, LDA, TAU, INFO)
ZTZRQF
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.