122 SUBROUTINE sgerqs( M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK,
131 INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS
134 REAL A( lda, * ), B( ldb, * ), TAU( * ),
142 parameter( zero = 0.0e+0, one = 1.0e+0 )
157 ELSE IF( n.LT.0 .OR. m.GT.n )
THEN 159 ELSE IF( nrhs.LT.0 )
THEN 161 ELSE IF( lda.LT.max( 1, m ) )
THEN 163 ELSE IF( ldb.LT.max( 1, n ) )
THEN 165 ELSE IF( lwork.LT.1 .OR. lwork.LT.nrhs .AND. m.GT.0 .AND. n.GT.0 )
170 CALL xerbla(
'SGERQS', -info )
176 IF( n.EQ.0 .OR. nrhs.EQ.0 .OR. m.EQ.0 )
181 CALL strsm(
'Left',
'Upper',
'No transpose',
'Non-unit', m, nrhs,
182 $ one, a( 1, n-m+1 ), lda, b( n-m+1, 1 ), ldb )
186 CALL slaset(
'Full', n-m, nrhs, zero, zero, b, ldb )
190 CALL sormrq(
'Left',
'Transpose', n, nrhs, m, a, lda, tau, b, ldb,
191 $ work, lwork, info )
subroutine sormrq(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
SORMRQ
subroutine strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine slaset(UPLO, M, N, ALPHA, BETA, A, LDA)
SLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
subroutine sgerqs(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
SGERQS