140 SUBROUTINE zgeqrt( M, N, NB, A, LDA, T, LDT, WORK, INFO )
147 INTEGER INFO, LDA, LDT, M, N, NB
150 COMPLEX*16 A( LDA, * ), T( LDT, * ), WORK( * )
157 INTEGER I, IB, IINFO, K
158 LOGICAL USE_RECURSIVE_QR
159 parameter( use_recursive_qr=.true. )
171 ELSE IF( n.LT.0 )
THEN
173 ELSE IF( nb.LT.1 .OR. ( nb.GT.min(m,n) .AND. min(m,n).GT.0 ) )
THEN
175 ELSE IF( lda.LT.max( 1, m ) )
THEN
177 ELSE IF( ldt.LT.nb )
THEN
181 CALL xerbla(
'ZGEQRT', -info )
193 ib = min( k-i+1, nb )
197 IF( use_recursive_qr )
THEN
198 CALL zgeqrt3( m-i+1, ib, a(i,i), lda, t(1,i), ldt, iinfo )
200 CALL zgeqrt2( m-i+1, ib, a(i,i), lda, t(1,i), ldt, iinfo )
206 CALL zlarfb(
'L',
'C',
'F',
'C', m-i+1, n-i-ib+1, ib,
207 $ a( i, i ), lda, t( 1, i ), ldt,
208 $ a( i, i+ib ), lda, work , n-i-ib+1 )
subroutine xerbla(srname, info)
subroutine zgeqrt2(m, n, a, lda, t, ldt, info)
ZGEQRT2 computes a QR factorization of a general real or complex matrix using the compact WY represen...
recursive subroutine zgeqrt3(m, n, a, lda, t, ldt, info)
ZGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact...
subroutine zgeqrt(m, n, nb, a, lda, t, ldt, work, info)
ZGEQRT
subroutine zlarfb(side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
ZLARFB applies a block reflector or its conjugate-transpose to a general rectangular matrix.