122 SUBROUTINE cgeqls( M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK,
131 INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS
134 COMPLEX A( lda, * ), B( ldb, * ), TAU( * ),
142 parameter ( one = ( 1.0e+0, 0.0e+0 ) )
157 ELSE IF( n.LT.0 .OR. n.GT.m )
THEN
159 ELSE IF( nrhs.LT.0 )
THEN
161 ELSE IF( lda.LT.max( 1, m ) )
THEN
163 ELSE IF( ldb.LT.max( 1, m ) )
THEN
165 ELSE IF( lwork.LT.1 .OR. lwork.LT.nrhs .AND. m.GT.0 .AND. n.GT.0 )
170 CALL xerbla(
'CGEQLS', -info )
176 IF( n.EQ.0 .OR. nrhs.EQ.0 .OR. m.EQ.0 )
181 CALL cunmql(
'Left',
'Conjugate transpose', m, nrhs, n, a, lda,
182 $ tau, b, ldb, work, lwork, info )
186 CALL ctrsm(
'Left',
'Lower',
'No transpose',
'Non-unit', n, nrhs,
187 $ one, a( m-n+1, 1 ), lda, b( m-n+1, 1 ), ldb )
subroutine cgeqls(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
CGEQLS
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRSM
subroutine cunmql(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMQL