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 xerbla(srname, info)
subroutine zaxpy(n, za, zx, incx, zy, incy)
ZAXPY
subroutine zcopy(n, zx, incx, zy, incy)
ZCOPY
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 zlacgv(n, x, incx)
ZLACGV conjugates a complex vector.
subroutine zlarfg(n, alpha, x, incx, tau)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine ztzrqf(m, n, a, lda, tau, info)
ZTZRQF