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 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
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM