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 zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine ztzrqf(M, N, A, LDA, TAU, INFO)
ZTZRQF
subroutine zgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERC
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.
subroutine zcopy(N, ZX, INCX, ZY, INCY)
ZCOPY
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).