135 SUBROUTINE ctzrqf( M, N, A, LDA, TAU, INFO )
142 INTEGER INFO, LDA, M, N
145 COMPLEX A( LDA, * ), TAU( * )
152 parameter( cone = ( 1.0e+0, 0.0e+0 ),
153 $ czero = ( 0.0e+0, 0.0e+0 ) )
160 INTRINSIC conjg, max, min
173 ELSE IF( n.LT.m )
THEN
175 ELSE IF( lda.LT.max( 1, m ) )
THEN
179 CALL xerbla(
'CTZRQF', -info )
198 a( k, k ) = conjg( a( k, k ) )
199 CALL clacgv( n-m, a( k, m1 ), lda )
201 CALL clarfg( n-m+1, alpha, a( k, m1 ), lda, tau( k ) )
203 tau( k ) = conjg( tau( k ) )
205 IF( tau( k ).NE.czero .AND. k.GT.1 )
THEN
214 CALL ccopy( k-1, a( 1, k ), 1, tau, 1 )
218 CALL cgemv(
'No transpose', k-1, n-m, cone,
219 $ a( 1, m1 ), lda, a( k, m1 ), lda, cone,
225 CALL caxpy( k-1, -conjg( tau( k ) ), tau, 1,
227 CALL cgerc( k-1, n-m, -conjg( tau( k ) ), tau, 1,
228 $ a( k, m1 ), lda, a( 1, m1 ), lda )
subroutine cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
CGEMV
subroutine cgerc(m, n, alpha, x, incx, y, incy, a, lda)
CGERC
subroutine clarfg(n, alpha, x, incx, tau)
CLARFG generates an elementary reflector (Householder matrix).