120 SUBROUTINE cgerqs( M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK,
128 INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS
131 COMPLEX A( LDA, * ), B( LDB, * ), TAU( * ),
139 parameter( czero = ( 0.0e+0, 0.0e+0 ),
140 $ cone = ( 1.0e+0, 0.0e+0 ) )
155 ELSE IF( n.LT.0 .OR. m.GT.n )
THEN
157 ELSE IF( nrhs.LT.0 )
THEN
159 ELSE IF( lda.LT.max( 1, m ) )
THEN
161 ELSE IF( ldb.LT.max( 1, n ) )
THEN
163 ELSE IF( lwork.LT.1 .OR. lwork.LT.nrhs .AND. m.GT.0 .AND. n.GT.0 )
168 CALL xerbla(
'CGERQS', -info )
174 IF( n.EQ.0 .OR. nrhs.EQ.0 .OR. m.EQ.0 )
179 CALL ctrsm(
'Left',
'Upper',
'No transpose',
'Non-unit', m, nrhs,
180 $ cone, a( 1, n-m+1 ), lda, b( n-m+1, 1 ), ldb )
184 CALL claset(
'Full', n-m, nrhs, czero, czero, b, ldb )
188 CALL cunmrq(
'Left',
'Conjugate transpose', n, nrhs, m, a, lda,
189 $ tau, b, ldb, work, lwork, info )
subroutine xerbla(srname, info)
subroutine cgerqs(m, n, nrhs, a, lda, tau, b, ldb, work, lwork, info)
CGERQS
subroutine claset(uplo, m, n, alpha, beta, a, lda)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine ctrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CTRSM
subroutine cunmrq(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
CUNMRQ