122 SUBROUTINE zgerqs( M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK,
131 INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS
134 COMPLEX*16 A( lda, * ), B( ldb, * ), TAU( * ),
141 COMPLEX*16 CZERO, CONE
142 parameter( czero = ( 0.0d+0, 0.0d+0 ),
143 $ cone = ( 1.0d+0, 0.0d+0 ) )
158 ELSE IF( n.LT.0 .OR. m.GT.n )
THEN
160 ELSE IF( nrhs.LT.0 )
THEN
162 ELSE IF( lda.LT.max( 1, m ) )
THEN
164 ELSE IF( ldb.LT.max( 1, n ) )
THEN
166 ELSE IF( lwork.LT.1 .OR. lwork.LT.nrhs .AND. m.GT.0 .AND. n.GT.0 )
171 CALL
xerbla(
'ZGERQS', -info )
177 IF( n.EQ.0 .OR. nrhs.EQ.0 .OR. m.EQ.0 )
182 CALL
ztrsm(
'Left',
'Upper',
'No transpose',
'Non-unit', m, nrhs,
183 $ cone, a( 1, n-m+1 ), lda, b( n-m+1, 1 ), ldb )
187 CALL
zlaset(
'Full', n-m, nrhs, czero, czero, b, ldb )
191 CALL
zunmrq(
'Left',
'Conjugate transpose', n, nrhs, m, a, lda,
192 $ tau, b, ldb, work, lwork, info )
subroutine zunmrq(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMRQ
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
subroutine zgerqs(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGERQS