137 SUBROUTINE ctzrqf( M, N, A, LDA, TAU, INFO )
144 INTEGER INFO, LDA, M, N
147 COMPLEX A( LDA, * ), TAU( * )
154 parameter( cone = ( 1.0e+0, 0.0e+0 ),
155 $ czero = ( 0.0e+0, 0.0e+0 ) )
175 ELSE IF( n.LT.m )
THEN
177 ELSE IF( lda.LT.
max( 1, m ) )
THEN
181 CALL xerbla(
'CTZRQF', -info )
200 a( k, k ) = conjg( a( k, k ) )
201 CALL clacgv( n-m, a( k, m1 ), lda )
203 CALL clarfg( n-m+1, alpha, a( k, m1 ), lda, tau( k ) )
205 tau( k ) = conjg( tau( k ) )
207 IF( tau( k ).NE.czero .AND. k.GT.1 )
THEN
216 CALL ccopy( k-1, a( 1, k ), 1, tau, 1 )
220 CALL cgemv(
'No transpose', k-1, n-m, cone, a( 1, m1 ),
221 $ lda, a( k, m1 ), lda, cone, tau, 1 )
226 CALL caxpy( k-1, -conjg( tau( k ) ), tau, 1, a( 1, k ),
228 CALL cgerc( k-1, n-m, -conjg( tau( k ) ), tau, 1,
229 $ a( k, m1 ), lda, a( 1, m1 ), lda )
subroutine clarfg(n, alpha, x, incx, tau)
CLARFG generates an elementary reflector (Householder matrix).
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