135 SUBROUTINE ztzrqf( M, N, A, LDA, TAU, INFO )
142 INTEGER INFO, LDA, M, N
145 COMPLEX*16 A( LDA, * ), TAU( * )
151 COMPLEX*16 CONE, CZERO
152 parameter( cone = ( 1.0d+0, 0.0d+0 ),
153 $ czero = ( 0.0d+0, 0.0d+0 ) )
160 INTRINSIC dconjg, max, min
173 ELSE IF( n.LT.m )
THEN
175 ELSE IF( lda.LT.max( 1, m ) )
THEN
179 CALL xerbla(
'ZTZRQF', -info )
198 a( k, k ) = dconjg( a( k, k ) )
199 CALL zlacgv( n-m, a( k, m1 ), lda )
201 CALL zlarfg( n-m+1, alpha, a( k, m1 ), lda, tau( k ) )
203 tau( k ) = dconjg( tau( k ) )
205 IF( tau( k ).NE.czero .AND. k.GT.1 )
THEN
214 CALL zcopy( k-1, a( 1, k ), 1, tau, 1 )
218 CALL zgemv(
'No transpose', k-1, n-m, cone,
219 $ a( 1, m1 ), lda, a( k, m1 ), lda, cone, tau,
225 CALL zaxpy( k-1, -dconjg( tau( k ) ), tau, 1,
227 CALL zgerc( k-1, n-m, -dconjg( tau( k ) ), tau, 1,
228 $ a( k, m1 ), lda, a( 1, m1 ), lda )
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zgerc(m, n, alpha, x, incx, y, incy, a, lda)
ZGERC
subroutine zlarfg(n, alpha, x, incx, tau)
ZLARFG generates an elementary reflector (Householder matrix).