137 SUBROUTINE ztzrqf( M, N, A, LDA, TAU, INFO )
144 INTEGER info, lda, m, n
147 COMPLEX*16 a( lda, * ), tau( * )
153 COMPLEX*16 cone, czero
154 parameter( cone = ( 1.0d+0, 0.0d+0 ),
155 $ czero = ( 0.0d+0, 0.0d+0 ) )
162 INTRINSIC dconjg, max, min
175 ELSE IF( n.LT.m )
THEN 177 ELSE IF( lda.LT.max( 1, m ) )
THEN 181 CALL xerbla(
'ZTZRQF', -info )
200 a( k, k ) = dconjg( a( k, k ) )
201 CALL zlacgv( n-m, a( k, m1 ), lda )
203 CALL zlarfg( n-m+1, alpha, a( k, m1 ), lda, tau( k ) )
205 tau( k ) = dconjg( tau( k ) )
207 IF( tau( k ).NE.czero .AND. k.GT.1 )
THEN 216 CALL zcopy( k-1, a( 1, k ), 1, tau, 1 )
220 CALL zgemv(
'No transpose', k-1, n-m, cone, a( 1, m1 ),
221 $ lda, a( k, m1 ), lda, cone, tau, 1 )
226 CALL zaxpy( k-1, -dconjg( tau( k ) ), tau, 1, a( 1, k ),
228 CALL zgerc( k-1, n-m, -dconjg( tau( k ) ), tau, 1,
229 $ a( k, m1 ), lda, a( 1, m1 ), lda )
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERC
subroutine zcopy(N, ZX, INCX, ZY, INCY)
ZCOPY
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV