121 SUBROUTINE zgelqs( M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK,
130 INTEGER info, lda, ldb, lwork, m, n, nrhs
133 COMPLEX*16 a( lda, * ),
b( ldb, * ), tau( * ),
140 COMPLEX*16 czero, cone
141 parameter( czero = ( 0.0d+0, 0.0d+0 ),
142 $ cone = ( 1.0d+0, 0.0d+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(
'ZGELQS', -info )
176 IF( n.EQ.0 .OR. nrhs.EQ.0 .OR. m.EQ.0 )
181 CALL
ztrsm(
'Left',
'Lower',
'No transpose',
'Non-unit', m, nrhs,
182 $ cone, a, lda,
b, ldb )
187 $ CALL
zlaset(
'Full', n-m, nrhs, czero, czero,
b( m+1, 1 ),
192 CALL
zunmlq(
'Left',
'Conjugate transpose', n, nrhs, m, a, lda,
193 $ tau,
b, ldb, work, lwork, info )
subroutine zunmlq(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMLQ
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM
subroutine xerbla(SRNAME, INFO)
XERBLA
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real b(3) integer i
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 zgelqs(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGELQS